UNPKG

@63pokupki/nodejs-common

Version:
70 lines (69 loc) 3.08 kB
import { ModelValidatorSys, ErrorSys } from '@63pokupki/components/lib'; import { Knex } from 'knex'; import { RedisSys } from './RedisSys'; import { UserSys } from './UserSys'; import { CacheSys } from './CacheSys'; import { LogicSys } from './LogicSys'; import { P63Context } from './P63Context'; import { MonitoringSys } from '@63pokupki/monitoring.lib'; /** * SQL Запросы */ export default class BaseSQL { /** Единичный ведомая база данных */ protected db: Knex; /** Редис запросы - база данных для кеширования */ protected redisSys: RedisSys; /** Система валидации данных */ protected modelValidatorSys: ModelValidatorSys; /** Система ошибок */ protected errorSys: ErrorSys; protected userSys: UserSys; /** API context */ protected ctx: P63Context; /** система кеширования */ protected cacheSys: CacheSys; /** система мониторинга */ protected monitoringSys: MonitoringSys; protected logicSys: LogicSys; /** init */ constructor(ctx: P63Context); /** * TODO устаревший балансировщик запросов * Выполняем запрос */ protected dbExe<T = any>(vQueryBuilder: Knex.QueryBuilder | Knex.Raw): Promise<T>; /** * TODO устаревший балансировщик запросов * Получаем инстанс запроса Knex.Raw учитывая pool соединений */ protected dbRaw<T = any>(sql: string, param?: Record<string, any>): Promise<T>; protected exe<T>(key: string, cb: () => Promise<T>): Promise<void>; protected throwExe<T>(key: string, cb: () => Promise<T>): Promise<void>; /** * Авто кеширование для встраивания в функцию * @param sKey - Ключ кеша * @param iTimeSec - Время кеширования * @param callback - функция получающая данные из БД */ autoCache(sKey: string, iTimeSec: number, callback: any): Promise<any>; /** * Авто кеширование int переменной для встраивания в функцию * @param sKey - Ключ кеша * @param iTimeSec - Время кеширования * @param callback - функция получающая данные из БД */ autoCacheInt(sKey: string, iTimeSec: number, callback: any): Promise<number>; /** * Авто кеширование ID переменной для встраивания в функцию * @param sKey - Ключ кеша * @param iTimeSec - Время кеширования * @param callback - функция получающая данные из БД */ autoCacheID(sKey: string, iTimeSec: number, callback: any): Promise<number>; /** * Очистить кеш редиса * @param sKey */ clearCache(sKey: string): Promise<void>; }