@openhps/core
Version:
Open Hybrid Positioning System - Core component
25 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SerializableObject = void 0;
const typedjson_1 = require("typedjson");
const DataSerializer_1 = require("../DataSerializer");
const DataSerializerUtils_1 = require("../DataSerializerUtils");
/**
* Serializable object
* @param {SerializableObjectOptions} [options] Object serialization options
* @returns {ClassDecorator} Class decorator
*/
function SerializableObject(options) {
return (target) => {
DataSerializerUtils_1.DataSerializerUtils.createMetadata(target.prototype);
(0, typedjson_1.jsonObject)(options)(target);
DataSerializer_1.DataSerializer['eventEmitter'].emit('updateSerializableObject', target, options);
const ownMeta = DataSerializerUtils_1.DataSerializerUtils.getMetadata(target);
const rootMeta = DataSerializerUtils_1.DataSerializerUtils.getRootMetadata(target.prototype);
DataSerializerUtils_1.DataSerializerUtils.updateObjectMetadata(target, options, ownMeta, rootMeta);
// (Re)register type
DataSerializer_1.DataSerializer.registerType(target);
};
}
exports.SerializableObject = SerializableObject;
//# sourceMappingURL=SerializableObject.js.map