UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

1 lines 1.27 kB
{"version":3,"sources":["../src/utils/Property.ts"],"sourcesContent":["import { convert, Convert } from './Convert';\nimport { Mapping } from './Mapper';\nimport { Get, ofGet } from '../types/Get';\nimport { Json, JsonValue } from '../types/Json';\n\nexport type PropertyOptions<T = unknown> = {\n convert?: Convert<any, any>;\n dflt?: Get<T>;\n format?: string;\n};\n\nexport class Property<T = unknown> implements Mapping {\n constructor(\n readonly property: string,\n readonly options?: PropertyOptions\n ) {\n this.options = { ...options, convert: options?.convert ?? convert.default };\n }\n\n in = (source: Json = {}): JsonValue => this.options?.convert?.to(source[this.property] ?? ofGet(this.options?.dflt));\n out = (source: Json = {}, key = ''): JsonValue => this.options?.convert?.from(source[key]);\n\n toString() {\n return this.property;\n }\n}\n"],"mappings":";;;;;;;;AAWO,IAAM,WAAN,MAA+C;AAAA,EACpD,YACW,UACA,SACT;AAFS;AACA;AAET,SAAK,UAAU,EAAE,GAAG,SAAS,SAAS,SAAS,WAAW,QAAQ,QAAQ;AAAA,EAC5E;AAAA,EAEA,KAAK,CAAC,SAAe,CAAC,MAAiB,KAAK,SAAS,SAAS,GAAG,OAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,IAAI,CAAC;AAAA,EACnH,MAAM,CAAC,SAAe,CAAC,GAAG,MAAM,OAAkB,KAAK,SAAS,SAAS,KAAK,OAAO,GAAG,CAAC;AAAA,EAEzF,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}