ivanovna.orm/src/app/storage.ts
2021-09-29 17:11:49 +03:00

33 lines
914 B
TypeScript

export interface StorageCursor {
limit(num: number): StorageCursor
sort(params: {}): StorageCursor
skip(offset: number): StorageCursor
toArray(): Promise<any[]>
}
export class ErrStorage extends Error {}
export class ErrNoSession extends ErrStorage {}
export abstract class Storage {
protected _dsn: string
constructor(dsn: string) {
this._dsn = dsn
}
abstract find(name: string, query: Object): Promise<StorageCursor>
abstract save(name: string, uniqKey: string, data: Object): Promise<string>
abstract createSession(): StorageSession
abstract count(name: string, query?: object): Promise<number>
abstract remove(collectionName: string, uniqKeyName: string, uniqKey: string): Promise<boolean>
}
export abstract class StorageSession {
abstract start(options?: {}): Promise<void>
abstract commit(fn: () => any, options?: {}): Promise<void>
}