newmax-utils
Version:
Utils & Libs for Newmax Tech
66 lines (65 loc) • 3.01 kB
TypeScript
type TData = {
attributes: Array<string> | Array<Array<string>>;
dateFrom?: string;
dateTo?: string;
limit?: number;
offset?: number;
filters?: Array<{
id: string;
value: string | number | boolean | Array<string | number | boolean>;
type?: 'LIKE' | 'NOT LIKE' | '=' | '!=' | 'NULL' | 'NOT NULL';
next?: 'AND' | 'OR';
}>;
sorting?: Array<{
id: string;
desc: boolean;
}>;
};
type TScriptSummary = (table: string, data: Pick<TData, 'attributes' | 'dateFrom' | 'dateTo' | 'filters'> & {
sumby: Array<string>;
}, columns: Record<'orig' | 'foreign', {
[N: string]: (el?: string) => {
orig: string;
as: string;
};
}>, leftjoinOn?: Array<string>) => string;
type TScriptDetails = (table: string, data: TData, columns: Record<'orig' | 'foreign', {
[N: string]: (el?: string) => {
orig: string;
as: string;
};
}>, leftjoinOn?: Array<string>) => string;
declare class Script {
private basicColumns;
private where;
private basicWhere;
private leftJoin;
private withAs;
/**
* Метод проверки атрибутов.
* @param {string | Array<string>} columns - Проверяющий список колонок
* @param {Array<string | Array<string>>} attrList - Проверяемый список колонок
* @returns {boolean} Возвращает флаг - существует ли аттрибут в списке
*/
isIncludeColumn: (columns: string | Array<string>, attrList: Array<string>) => boolean;
/**
* Метод получение SQL скрипта вывода данных.
* @param {string} table - Имя таблицы. (required)
* @param {Pick<TScriptDetails, "data">} data - Объект с атрибутами и QUERY параметрами запроса. (required)
* @param {object} columns - Проверяющий и переименовывающий колонки объект. (optional)
* @param {Array<string>} leftjoinOn - Тип таблиц связывания. (optional)
* @returns {string} Возвращает готовый для запроса SQL скрипт
*/
details: TScriptDetails;
/**
* Метод получение SQL скрипта для вывода сумм с группировкой.
* @param {string} table - Имя таблицы. (required)
* @param {Pick<TScriptSummary, "data">} data - Объект с атрибутами и QUERY параметрами запроса. (required)
* @param {object} columns - Проверяющий и переименовывающий колонки объект. (optional)
* @param {string} type - Тип таблиц связывания. (optional)
* @returns {string} Возвращает готовый для запроса SQL скрипт
*/
summary: TScriptSummary;
}
export declare const ScriptSQL: Script;
export {};