import {Type} from '@nestjs/common'; import {FindQuery} from '../interfaces'; import {getColumnsMapper} from './decorator.utils'; export function transformKey(target: Type, key?: String | keyof T): any { if (!target || !(target && typeof target === 'function') || !key) { return key; } const mapper = getColumnsMapper(new target()); if (!mapper) { return key; } return mapper[key] || key; } export function transformQuerySelect(target: Type, select?: Array): any { if (!target || !(target && typeof target === 'function') || !select) { return select; } const mapper = getColumnsMapper(new target()); if (!mapper) { return select; } return select.map((key) => mapper[key] || key); } export function transformQuery(target: Type, query?: FindQuery): any { if (!target || !(target && typeof target === 'function') || !query) { return query; } const mapper = getColumnsMapper(new target()); if (!mapper) { return query; } for (const key of Object.keys(query)) { const column = mapper[key] || key; if (column === key) { continue; } query[column] = query[key]; delete query[key]; } return query; }