UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

37 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SerializableMapMember = void 0; const typedjson_1 = require("typedjson"); const DataSerializerUtils_1 = require("../DataSerializerUtils"); /** * @param {Serializable<any>} keyConstructor Map key constructor * @param {Serializable<any>} valueConstructor Map value constructor * @param {SerializableMapMemberOptions} [options] Member options * @returns {PropertyDecorator} Property decorator */ function SerializableMapMember(keyConstructor, valueConstructor, options) { return (target, propertyKey) => { if (valueConstructor === Object && options === undefined) { options = {}; options.deserializer = (json) => { const map = new Map(); Object.keys(json).forEach((key) => { map.set(key, JSON.parse(json[key])); }); return map; }; options.serializer = (map) => { const json = {}; map.forEach((value, key) => { json[key] = JSON.stringify(value); }); return json; }; } const finalOptions = DataSerializerUtils_1.DataSerializerUtils.mergeMemberOptions(target, propertyKey, options); (0, typedjson_1.jsonMapMember)(keyConstructor, valueConstructor, finalOptions)(target, propertyKey); DataSerializerUtils_1.DataSerializerUtils.updateMemberOptions(target, propertyKey, finalOptions); }; } exports.SerializableMapMember = SerializableMapMember; //# sourceMappingURL=SerializableMapMember.js.map