@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 2.45 kB
Source Map (JSON)
{"version":3,"sources":["../src/types/Constructor.ts"],"sourcesContent":["import { Get } from './Get';\nimport { isFunc } from './Func';\nimport { isDefined, isFunction } from './Is';\nimport { isPrimitive } from './Primitive';\nimport { Optional } from './Types';\n\nexport type Constructor<T = unknown> = { new (...args: any[]): T };\n\nexport type Construct<Out, In = any> = Get<Out, In> | Constructor<Out>;\n\nexport const isConstructor = <T>(c?: unknown): c is Constructor<T> => (isDefined(c) && isFunc<T, unknown>(c) && c.prototype && c.prototype.constructor) === c;\n\nexport const isInstance = <T>(ctor: Constructor<T>, o?: unknown): o is T => isFunction(ctor) && o instanceof ctor;\n\nexport const ofConstruct = <T>(c: Construct<T>, ...args: unknown[]): T => (isConstructor<T>(c) ? new c(...args) : isFunc<T, unknown>(c) ? c(...args) : c);\n\nexport const toName = (subject?: unknown, postfix = ''): string => (subject as any)?.constructor?.name?.replace(postfix, '').toLowerCase() ?? '';\n\nconst isPromise = <T>(value: unknown): value is Promise<T> => {\n return value instanceof Promise;\n};\n\nexport const on = <T, R>(t: T, f: (t: T) => R): R extends Promise<unknown> ? Promise<T> : T => {\n const result = f(t);\n return (isPromise(result) ? result.then(() => t) : t) as R extends Promise<unknown> ? Promise<T> : T;\n};\n\nexport const use = <T, Out>(t: T, f: (t: T) => Out): Out => f(t);\n\nexport const ifA = <T>(c: Constructor<T>, t?: unknown, alt?: unknown): Optional<T> => (!isPrimitive(t) && t instanceof c ? t : alt ? ifA(c, alt) : undefined);\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> &\n {\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;\n }[Keys];\n"],"mappings":";;;;;;;;;;;;AAUO,IAAM,gBAAgB,CAAI,OAAsC,UAAU,CAAC,KAAK,OAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,iBAAiB;AAErJ,IAAM,aAAa,CAAI,MAAsB,MAAwB,WAAW,IAAI,KAAK,aAAa;AAEtG,IAAM,cAAc,CAAI,MAAoB,SAAwB,cAAiB,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,OAAmB,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI;AAEhJ,IAAM,SAAS,CAAC,SAAmB,UAAU,OAAgB,SAAiB,aAAa,MAAM,QAAQ,SAAS,EAAE,EAAE,YAAY,KAAK;AAE9I,IAAM,YAAY,CAAI,UAAwC;AAC5D,SAAO,iBAAiB;AAC1B;AAEO,IAAM,KAAK,CAAO,GAAM,MAAgE;AAC7F,QAAM,SAAS,EAAE,CAAC;AAClB,SAAQ,UAAU,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI;AACrD;AAEO,IAAM,MAAM,CAAS,GAAM,MAA0B,EAAE,CAAC;AAExD,IAAM,MAAM,CAAI,GAAmB,GAAa,QAAgC,CAAC,YAAY,CAAC,KAAK,aAAa,IAAI,IAAI,MAAM,IAAI,GAAG,GAAG,IAAI;","names":[]}