UNPKG

custom-automapper

Version:

A powerful, type-safe object mapping library for TypeScript and NestJS

54 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveValue = resolveValue; exports.mapFrom = mapFrom; exports.mapFromArray = mapFromArray; exports.condition = condition; exports.ignore = ignore; exports.transform = transform; exports.formatDate = formatDate; exports.nullToDefault = nullToDefault; exports.concat = concat; exports.compute = compute; const property_path_util_1 = require("./property-path.util"); const deep_clone_util_1 = require("./deep-clone.util"); function resolveValue(obj, path, deepCloneValue = false) { const value = (0, property_path_util_1.getPropertyByPath)(obj, path); return deepCloneValue ? (0, deep_clone_util_1.deepClone)(value) : value; } function mapFrom(sourcePath) { return (source) => resolveValue(source, sourcePath); } function mapFromArray(sourcePath) { return (source) => { const arr = resolveValue(source, sourcePath); return Array.isArray(arr) ? [...arr] : []; }; } function condition(predicate) { return (source, value) => (predicate(source) ? value : undefined); } function ignore() { return () => undefined; } function transform(transformFn) { return (source, value) => transformFn(value, source); } function formatDate(format) { return (value) => { if (!value) return value; const date = value instanceof Date ? value : new Date(value); return new Intl.DateTimeFormat(undefined, format).format(date); }; } function nullToDefault(defaultValue) { return (value) => (value == null ? defaultValue : value); } function concat(...args) { return () => args.join(''); } function compute(computeFn) { return (source) => computeFn(source); } //# sourceMappingURL=mapper-helpers.util.js.map