39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
/** @public */
|
|
export interface StorageCursor {
|
|
limit(number_: number): StorageCursor
|
|
sort(parameters: Record<string, any>): StorageCursor
|
|
skip(offset: number): StorageCursor
|
|
toArray(): Promise<any[]>
|
|
}
|
|
|
|
/** @public */
|
|
export class ErrStorage extends Error {}
|
|
|
|
/** @public */
|
|
export class ErrNoSession extends ErrStorage {}
|
|
|
|
/** @public */
|
|
export abstract class Storage {
|
|
protected _dsn: string
|
|
|
|
constructor(dsn: string) {
|
|
this._dsn = dsn
|
|
}
|
|
|
|
abstract find(name: string, query: Record<string, any>): Promise<StorageCursor>
|
|
|
|
abstract save(name: string, uniqKey: string, data: Record<string, any>): Promise<string>
|
|
|
|
abstract createSession(): StorageSession
|
|
|
|
abstract count(name: string, query?: Record<string, any>): Promise<number>
|
|
|
|
abstract remove(collectionName: string, uniqKeyName: string, uniqKey: string): Promise<boolean>
|
|
}
|
|
|
|
/** @public */
|
|
export abstract class StorageSession {
|
|
abstract start(options?: Record<string, any>): Promise<void>
|
|
abstract commit(fn: () => any, options?: Record<string, any>): Promise<void>
|
|
}
|