import { IDebugger } from '@gongt/ts-stl-library/debug/create-logger'; import { inspect } from 'util'; import { RequestError } from '@gongt/ts-stl-library/request/request-error'; import { STATUS_CODE_BASE } from '@gongt/ts-stl-library/request/protocol'; import { DataModel } from './mongodb'; /** @internal */ export function debugStart(name: string, sill: IDebugger, ...args: any[]) { sill('{db-debug} .%s(%s)', name, args.map(e => inspect(e, false, 3, true)).join(', '), ); } /** @internal */ export function debugPromise(name: string, log: IDebugger, error: IDebugger, p: Promise) { p.then((data) => { log('\x1B[2m{db-debug} .%s -> success: %j\x1B[0m', name, data); }, (e) => { error('{db-debug} .%s -> failed: %s', name, e.message); }); } export function assertDataExists(query: any, model: DataModel, data: T): T { model.log.debug('data not found: ' + JSON.stringify(query)); throw new RequestError(STATUS_CODE_BASE.DATA_NOT_EXISTS, `在数据库 "${model.name}" 中进行查询 ${JSON.stringify(query)},没有找到数据`); }