UNPKG

@mos-connection/helper

Version:

Helper functions for the MOS-connection library

62 lines 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stringifyMosObject = void 0; const model_1 = require("@mos-connection/model"); /** * Converts a MOS data object, * replacing Mos-centric types with their stringified equivalents */ function stringifyMosObject(o, strict) { const mosTypes = (0, model_1.getMosTypes)(strict); const stringified = stringifyMosObjectInner(o, mosTypes); if (stringified.modified) return stringified.value; else return o; } exports.stringifyMosObject = stringifyMosObject; function stringifyMosObjectInner(o, mosTypes) { { const stringified = (0, model_1.stringifyMosType)(o, mosTypes); if (stringified.isMosType) return { modified: true, value: stringified.stringValue }; } if (Array.isArray(o)) { let anythingModified = false; const stringifiedArray = o.map((value) => { const stringified = stringifyMosObjectInner(value, mosTypes); if (stringified.modified) { anythingModified = true; return stringified.value; } else return value; }); if (anythingModified) return { modified: true, value: stringifiedArray }; return { modified: false }; } else if (o === null) { return { modified: false }; } else if (typeof o === 'object') { let anythingModified = false; const o2 = {}; for (const [key, value] of Object.entries(o)) { const stringified = stringifyMosObjectInner(value, mosTypes); if (stringified.modified) { anythingModified = true; o2[key] = stringified.value; } else if (value !== undefined) o2[key] = value; // Omit undefined values } if (anythingModified) return { modified: true, value: o2 }; return { modified: false }; } else { return { modified: false }; } } //# sourceMappingURL=stringifyMosObject.js.map