UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

20 lines 842 B
import { jsonObject } from 'typedjson'; import { DataSerializer } from '../DataSerializer'; import { DataSerializerUtils } from '../DataSerializerUtils'; /** * Serializable object * @param {SerializableObjectOptions} [options] Object serialization options * @returns {ClassDecorator} Class decorator */ export function SerializableObject(options) { return target => { DataSerializerUtils.createMetadata(target.prototype); jsonObject(options)(target); DataSerializer['eventEmitter'].emit('updateSerializableObject', target, options); const ownMeta = DataSerializerUtils.getMetadata(target); const rootMeta = DataSerializerUtils.getRootMetadata(target.prototype); DataSerializerUtils.updateObjectMetadata(target, options, ownMeta, rootMeta); // (Re)register type DataSerializer.registerType(target); }; }