UNPKG

@bemedev/types

Version:

Type definitions for Bemedev projects

62 lines (58 loc) 1.85 kB
'use strict'; var transform_constants = require('./constants.cjs'); /* eslint-disable @typescript-eslint/no-unused-vars */ const _transform = (object) => { let out; const isArray = Array.isArray(object); if (isArray) { out = object.map(_transform); return out; } const isObject = typeof object === 'object'; if (isObject) { out = {}; const entries = Object.entries(object).filter(([key]) => key !== transform_constants.PARTIAL); if (entries.length === 0) return out; const isCustom = Object.keys(object).every(key => key === transform_constants.CUSTOM); if (isCustom) return out; entries.forEach(([key, value]) => { out[key] = _transform(value); }); return out; } for (const primitive of transform_constants.PRIMITIVES) { if (object === primitive) return out; } for (const primitive of transform_constants.PRIMITIVE_OBJECTS.filter(value => value !== 'date')) { if (object === primitive) { out = {}; return out; } } return out; }; const transform = (object) => _transform(object); transform.const = (object) => { return _transform(object); }; transform.custom = (_) => { const out = {}; out[transform_constants.CUSTOM] = undefined; return out; }; transform.partial = (value) => { const entries = Object.entries(value).filter(([key]) => key !== transform_constants.PARTIAL); const out = {}; entries.forEach(([key, value]) => { out[key] = value; }); out[transform_constants.PARTIAL] = undefined; return out; }; transform.tuple = (...els) => transform(els); transform.union = (..._) => transform.custom(); exports.transform = transform; //# sourceMappingURL=functions.cjs.map