UNPKG

@cyber-rom/nestjs-scylladb

Version:

Based on https://www.npmjs.com/package/@ouato/nestjs-express-cassandra With support columns name mapping

37 lines 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformFrom = exports.transformTo = void 0; const decorator_utils_1 = require("./decorator.utils"); function assignWithMapper(dst, src, mapper) { if (!mapper) { return Object.assign(dst, src); } for (const key of Object.keys(src)) { const dstKey = mapper[key] || key; dst[dstKey] = src[key]; } return dst; } function transformTo(target, entity) { if (!target || !(target && typeof target === 'function') || !entity) { return entity; } const mapper = (0, decorator_utils_1.getColumnsMapper)(new target()); if (Array.isArray(entity)) { return entity.map((entity) => assignWithMapper(new target(), entity, mapper)); } return assignWithMapper(new target(), entity, mapper); } exports.transformTo = transformTo; function transformFrom(target, entity) { if (!target || !(target && typeof target === 'function') || !entity) { return entity; } const mapper = (0, decorator_utils_1.getPropertiesMapper)(new target()); if (Array.isArray(entity)) { return entity.map((entity) => assignWithMapper(new target(), entity, mapper)); } return assignWithMapper(new target(), entity, mapper); } exports.transformFrom = transformFrom; //# sourceMappingURL=transform-entity.utils.js.map