UNPKG

@roit/roit-model-mapper

Version:

ROIT model mapper makes it easy to convert any object or JSON to the model

25 lines (24 loc) 862 B
const jsonMetadataKey = "jsonProperty"; export function JsonProperty<T>(metadata?: IJsonMetaData<T> | string): any { if (metadata instanceof String || typeof metadata === "string") { return Reflect.metadata(jsonMetadataKey, { name: metadata, clazz: undefined, linear: false }); } else { let metadataObj = <IJsonMetaData<T>>metadata; return Reflect.metadata(jsonMetadataKey, { name: metadataObj ? metadataObj.name : undefined, clazz: metadataObj ? metadataObj.clazz : undefined, linear: metadataObj ? metadataObj.linear : false, alwaysArray: metadataObj ? metadataObj.alwaysArray : false }); } } export interface IJsonMetaData<T> { name?: string, clazz?: { new(): T }, linear?: boolean, alwaysArray?: boolean }