@berish/orm
Version:
ORM
22 lines (21 loc) • 1.13 kB
TypeScript
import { QueryData, QueryDataSchema } from './query';
export interface IBaseDBItem {
id: string;
createdAt?: number;
updatedAt?: number;
[key: string]: any;
}
export declare const baseDBMethods: string[];
export declare abstract class BaseDBAdapter<IInitializeParams> {
params: IInitializeParams;
abstract initialize(params: IInitializeParams): Promise<void>;
abstract close(): Promise<void>;
abstract create(table: string, items: IBaseDBItem[]): Promise<void>;
abstract update(table: string, items: IBaseDBItem[]): Promise<void>;
abstract index(table: string, indexName: string, keys?: string[]): void;
abstract count(data: QueryData<QueryDataSchema>): Promise<number>;
abstract get(data: QueryData<QueryDataSchema>): Promise<IBaseDBItem>;
abstract delete(data: QueryData<QueryDataSchema>): Promise<void>;
abstract find(data: QueryData<QueryDataSchema>): Promise<IBaseDBItem[]>;
abstract subscribe(data: QueryData<QueryDataSchema>, callback: (oldValue: IBaseDBItem, newValue: IBaseDBItem) => any, onError: (reason: any) => any): (() => any) | Promise<() => any>;
}