UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

18 lines (16 loc) 821 B
import { DataSerializerUtils } from '../DataSerializerUtils'; import { SerializableMemberOptions } from './options'; import { SerializableMember } from './SerializableMember'; /** * @param {SerializableMemberOptions} [options] Member options * @returns {PropertyDecorator} Property decorator */ export function SerializableMemberFunction(options: SerializableMemberOptions = {}): PropertyDecorator { return (target: unknown, propertyKey: string) => { options.serializer = (fn) => fn.toString(); options.deserializer = (fnStr) => eval(fnStr); const finalOptions = DataSerializerUtils.mergeMemberOptions(target, propertyKey, options); SerializableMember(finalOptions)(target, propertyKey); DataSerializerUtils.updateMemberOptions(target, propertyKey, finalOptions); }; }