@openhps/core
Version:
Open Hybrid Positioning System - Core component
24 lines (22 loc) • 1.05 kB
text/typescript
import { jsonArrayMember, Serializable } from 'typedjson';
import { SerializableArrayMemberOptions } from './options';
import { DataSerializerUtils } from '../DataSerializerUtils';
export function SerializableArrayMember<T>(
elementConstructor: Serializable<T>,
options?: SerializableArrayMemberOptions,
): (target: unknown, propKey: string | symbol) => void;
/**
* @param {Serializable<any>} elementConstructor Element constructor
* @param {SerializableArrayMemberOptions} [options] Member options
* @returns {PropertyDecorator} Property decorator
*/
export function SerializableArrayMember<T>(
elementConstructor: Serializable<T>,
options?: SerializableArrayMemberOptions,
): PropertyDecorator {
return (target: unknown, propertyKey: string) => {
const finalOptions = DataSerializerUtils.mergeMemberOptions(target, propertyKey, options);
jsonArrayMember(elementConstructor, finalOptions)(target, propertyKey);
DataSerializerUtils.updateMemberOptions(target, propertyKey, finalOptions);
};
}