@openhps/core
Version:
Open Hybrid Positioning System - Core component
15 lines • 673 B
JavaScript
import { DataSerializerUtils } from '../DataSerializerUtils';
import { SerializableMember } from './SerializableMember';
/**
* @param {SerializableMemberOptions} [options] Member options
* @returns {PropertyDecorator} Property decorator
*/
export function SerializableMemberFunction(options = {}) {
return (target, propertyKey) => {
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);
};
}