@63pokupki/nodejs-common
Version:
Common nodejs functionality
66 lines (65 loc) • 2.82 kB
TypeScript
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';
import { DbClientSys } from '@63pokupki/proxy-db';
/**
* SQL Запросы
*/
export default class BaseProxySQLts {
protected dbProxy: DbClientSys;
/** Единичный ведомая база данных */
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);
/**
* Выполняем запрос
*/
protected dbExe<T = any>(vQueryBuilder: Knex.QueryBuilder | Knex.Raw): 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>;
}