UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

1 lines 912 B
{"version":3,"sources":["../src/types/Get.ts"],"sourcesContent":["import { Func, isFunc } from './Func';\n\nexport type Get<T = any, Args = any> = Func<T, Args> | T;\nexport type Predicate<Args = unknown> = Get<boolean, Args>;\nexport const ofGet = <T, Args = any>(g: Get<T, Args>, ...args: Args[]): T => (isFunc<T, Args>(g) ? g(...args) : g);\nexport const ifGet = <T>(pred: Get, valid: Get<T>, invalid: Get<T>): T => (ofGet(pred) ? ofGet(valid) : ofGet(invalid));\nexport type GetProperty<T, Prop> = keyof T | Func<Prop, T>;\nexport const ofProperty = <T, Prop>(t: T, p: GetProperty<T, Prop>): Prop => (isFunc<Prop, T>(p) ? p(t) : ((t as any)[p] as Prop));\n"],"mappings":";;;;;AAIO,IAAM,QAAQ,CAAgB,MAAoB,SAAqB,OAAgB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI;AACzG,IAAM,QAAQ,CAAI,MAAW,OAAe,YAAwB,MAAM,IAAI,IAAI,MAAM,KAAK,IAAI,MAAM,OAAO;AAE9G,IAAM,aAAa,CAAU,GAAM,MAAmC,OAAgB,CAAC,IAAI,EAAE,CAAC,IAAM,EAAU,CAAC;","names":[]}