@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 3.63 kB
Source Map (JSON)
{"version":3,"sources":["../../src/types/Parser.ts"],"sourcesContent":["import { Get, ofGet, Predicate } from './Get';\nimport { isDefined, isEmpty, isIn, isObject, isString, isTrue } from './Is';\nimport { isValid } from '../validation/Validate';\nimport { Constructor, on } from './Constructor';\nimport { toArray } from './Array';\n\nexport class Parser<T, V> {\n if = {\n equals: (pred?: Predicate<T>): this => this.evaluate(isTrue, pred),\n empty: <U>(pred?: Get<U, T>): this => this.evaluate(isEmpty, pred),\n defined: <U>(pred?: Get<U, T>): this => this.evaluate(isDefined, pred),\n valid: <U>(pred?: Get<U, T>): this => this.evaluate(isValid, pred),\n in: (...items: T[]): this => this.evaluate(() => isIn(this.value, toArray(...items))),\n is: {\n object: <U>(pred?: Get<U, T>): this => this.evaluate(isObject, pred),\n string: <U>(pred?: Get<U, T>): this => this.evaluate(isString, pred),\n instance: <U>(c: Constructor<U>, pred?: Get<U, T>): this => this.evaluate(() => this.value instanceof c, pred),\n },\n not: {\n empty: <U>(pred?: Get<U, T>): this => this.evaluateNot(isEmpty, pred),\n defined: <U>(pred?: Get<U, T>): this => this.evaluateNot(isDefined, pred),\n valid: <U>(pred?: Get<U, T>): this => this.evaluateNot(isValid, pred),\n isObject: <U>(pred?: Get<U, T>): this => this.evaluateNot(isObject, pred),\n in: (...items: T[]): this => this.evaluate(() => !isIn(this.value, toArray(...items))),\n is: {\n object: <U>(pred?: Get<U, T>): this => this.evaluateNot(isObject, pred),\n string: <U>(pred?: Get<U, T>): this => this.evaluateNot(isString, pred),\n instance: <U>(c: Constructor<U>, pred?: Get<U, T>): this => this.evaluate(() => !(this.value instanceof c), pred),\n },\n },\n };\n\n constructor(\n protected value: T,\n protected valid = true\n ) {}\n\n protected evaluate<U>(meta: Get<boolean>, pred?: Get<U, T>): this {\n return on(this, t => (t.valid = ofGet(meta, pred ? ofGet(pred, this.value) : this.value)));\n }\n\n protected evaluateNot<U>(meta: Get<boolean>, pred?: Get<U, T>): this {\n return on(this, t => (t.valid = !ofGet(meta, pred ? ofGet(pred, this.value) : this.value)));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,SAAN,MAAmB;AAAA,EA0BxB,YACY,OACA,QAAQ,MAClB;AAFU;AACA;AAAA,EACT;AAAA,EA5BH,KAAK;AAAA,IACH,QAAQ,CAAC,SAA8B,KAAK,SAAS,QAAQ,IAAI;AAAA,IACjE,OAAO,CAAI,SAA2B,KAAK,SAAS,SAAS,IAAI;AAAA,IACjE,SAAS,CAAI,SAA2B,KAAK,SAAS,WAAW,IAAI;AAAA,IACrE,OAAO,CAAI,SAA2B,KAAK,SAAS,SAAS,IAAI;AAAA,IACjE,IAAI,IAAI,UAAqB,KAAK,SAAS,MAAM,KAAK,KAAK,OAAO,QAAQ,GAAG,KAAK,CAAC,CAAC;AAAA,IACpF,IAAI;AAAA,MACF,QAAQ,CAAI,SAA2B,KAAK,SAAS,UAAU,IAAI;AAAA,MACnE,QAAQ,CAAI,SAA2B,KAAK,SAAS,UAAU,IAAI;AAAA,MACnE,UAAU,CAAI,GAAmB,SAA2B,KAAK,SAAS,MAAM,KAAK,iBAAiB,GAAG,IAAI;AAAA,IAC/G;AAAA,IACA,KAAK;AAAA,MACH,OAAO,CAAI,SAA2B,KAAK,YAAY,SAAS,IAAI;AAAA,MACpE,SAAS,CAAI,SAA2B,KAAK,YAAY,WAAW,IAAI;AAAA,MACxE,OAAO,CAAI,SAA2B,KAAK,YAAY,SAAS,IAAI;AAAA,MACpE,UAAU,CAAI,SAA2B,KAAK,YAAY,UAAU,IAAI;AAAA,MACxE,IAAI,IAAI,UAAqB,KAAK,SAAS,MAAM,CAAC,KAAK,KAAK,OAAO,QAAQ,GAAG,KAAK,CAAC,CAAC;AAAA,MACrF,IAAI;AAAA,QACF,QAAQ,CAAI,SAA2B,KAAK,YAAY,UAAU,IAAI;AAAA,QACtE,QAAQ,CAAI,SAA2B,KAAK,YAAY,UAAU,IAAI;AAAA,QACtE,UAAU,CAAI,GAAmB,SAA2B,KAAK,SAAS,MAAM,EAAE,KAAK,iBAAiB,IAAI,IAAI;AAAA,MAClH;AAAA,IACF;AAAA,EACF;AAAA,EAOU,SAAY,MAAoB,MAAwB;AAChE,WAAO,GAAG,MAAM,OAAM,EAAE,QAAQ,MAAM,MAAM,OAAO,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,CAAE;AAAA,EAC3F;AAAA,EAEU,YAAe,MAAoB,MAAwB;AACnE,WAAO,GAAG,MAAM,OAAM,EAAE,QAAQ,CAAC,MAAM,MAAM,OAAO,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,CAAE;AAAA,EAC5F;AACF;","names":[]}