@grandlinex/bundle-sqlight
Version:
> SQLight support GrandlineX using better-sqlite3
32 lines (31 loc) • 2.33 kB
TypeScript
import { ConfigType, CoreDBCon, CoreEntity, EntityConfig, EProperties, EUpDateProperties, ICoreCache, ICoreClient, ICoreKernel, ICoreKernelModule, ICorePresenter, IDataBase, IEntity, QueryInterface, RawQuery } from '@grandlinex/core';
import Database, { RunResult } from 'better-sqlite3';
export type DbType = Database.Database;
export default class SQLCon<K extends ICoreKernel<any> = ICoreKernel<any>, T extends IDataBase<any, any> | null = any, P extends ICoreClient | null = any, C extends ICoreCache | null = any, X extends ICorePresenter<any> | null = any> extends CoreDBCon<DbType, RunResult, K, T, P, C, X> implements IDataBase<DbType, RunResult, K, T, P, C, X> {
db: DbType | null;
printLog: boolean;
private readonly path;
constructor(module: ICoreKernelModule<any, any, any, any, any>, dbversion: string, printLog?: boolean);
createEntity<E extends CoreEntity>(config: EntityConfig<E>, entity: EProperties<E>): Promise<E>;
updateEntity<E extends CoreEntity>(config: EntityConfig<E>, e_id: string, entity: EUpDateProperties<E>): Promise<boolean>;
updateBulkEntity<E extends IEntity>(config: EntityConfig<E>, e_id: string[], entity: EUpDateProperties<E>): Promise<boolean>;
getEntityById<E extends CoreEntity>(config: EntityConfig<E>, id: string): Promise<E | null>;
getEntityBulkById<E extends CoreEntity>(config: EntityConfig<E>, e_id: string[]): Promise<E[]>;
findEntity<E extends CoreEntity>(config: EntityConfig<E>, search: {
[D in keyof E]?: E[D] | undefined;
}): Promise<E | null>;
deleteEntityById(className: string, id: string): Promise<boolean>;
deleteEntityBulkById(className: string, e_id: string[]): Promise<boolean>;
getEntityList<E extends CoreEntity>(q: QueryInterface<E>): Promise<E[]>;
initEntity<E extends CoreEntity>(className: string, entity: E): Promise<boolean>;
transformEntityKeys<E extends CoreEntity>(entity: E): string;
removeConfig(key: string): Promise<void>;
initNewDB(): Promise<void>;
connect(): Promise<boolean>;
getRawDBObject(): DbType | null;
configExist(key: string): Promise<boolean>;
setConfig(key: string, value: string): Promise<boolean>;
getConfig(key: string): Promise<ConfigType>;
execScripts(list: RawQuery[]): Promise<RunResult[]>;
disconnect(): Promise<boolean>;
}