umbot
Version:
Universal bot(vk, telegram, viber) or skills for Yandex.Alisa, Маруся and sber
27 lines (26 loc) • 1.1 kB
TypeScript
import { IModelRes, IModelRules } from './IModel';
import { IQueryData, QueryData } from '../db/QueryData';
import { Db, MongoClient } from 'mongodb';
export type TKey = string | number | null;
export interface IDbControllerResult<TValue = unknown> {
[keyStr: string]: TValue;
[keyInt: number]: TValue;
}
export type TQueryCb = (client: MongoClient, db: Db) => Promise<IModelRes>;
export type TStateData = Record<string | number, any>;
export interface IDbControllerModel {
tableName: string;
primaryKeyName: TKey;
setRules(rules: IModelRules[]): void;
getValue(res: IModelRes): IDbControllerResult | null;
select(select: IQueryData | null, isOne: boolean): Promise<IModelRes>;
insert(insertData: QueryData): any;
update(updateData: QueryData): any;
save(saveData: QueryData, isNew: boolean): Promise<any>;
remove(removeData: QueryData): any;
query(callback: TQueryCb): any;
selectOne(query: IQueryData | null): Promise<IModelRes | null>;
escapeString(str: string | number): string;
isConnected(): Promise<boolean>;
destroy(): void;
}