UNPKG

@bemedev/core

Version:

The core library of @bemedev

1 lines 2.42 kB
{"version":3,"file":"castings.cjs","sources":["../../../src/features/functions/castings.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type { Checker, Checker2, Fn } from '#types';\nimport { _unknown } from '#utils/_unknown';\nimport { castFn } from '#utils/castFn';\nimport { expandFn } from '#utils/expandFn';\nimport { identity } from '#utils/identity';\n\nexport const castings = castFn()({\n is: expandFn(\n (value: unknown): value is Fn => {\n return typeof value === 'function';\n },\n {\n strict: <T extends any[] = any[], R = any>(\n fn: Checker<Fn<T, R>>,\n ) => {\n return (value: unknown): value is Fn<T, R> =>\n typeof value === 'function' && fn(value);\n },\n },\n ),\n\n forceCast: <T extends any[], R = any>(value: unknown) => {\n return _unknown<Fn<T, R>>(value);\n },\n\n dynamic: <T extends any[], R = any>(..._: [...T, R]) =>\n identity<Fn<T, R>>,\n\n checker: castFn<Checker>()({\n /**\n * Very low\n * Checks if value is a function with one argument\n * @param value value to check\n * @returns true if value is a function with one argument\n */\n is: <T = unknown>(value: unknown): value is Checker2<T> => {\n return (\n typeof value === 'function' &&\n value.length === 1 &&\n !/^\\s*class\\s+/.test(value.toString())\n );\n },\n\n byType: expandFn(<T>(checker: Checker2<T>) => checker, {\n forceCast: <T>(value: Checker) => _unknown<Checker2<T>>(value),\n }),\n }),\n});\n"],"names":["castFn","expandFn","_unknown","identity"],"mappings":";;;;;;;AAOO,MAAM,QAAQ,GAAGA,2BAAM,EAAE,CAAC;AAC/B,IAAA,EAAE,EAAEC,+BAAQ,CACV,CAAC,KAAc,KAAiB;AAC9B,QAAA,OAAO,OAAO,KAAK,KAAK,UAAU;AACpC,IAAA,CAAC,EACD;AACE,QAAA,MAAM,EAAE,CACN,EAAqB,KACnB;AACF,YAAA,OAAO,CAAC,KAAc,KACpB,OAAO,KAAK,KAAK,UAAU,IAAI,EAAE,CAAC,KAAK,CAAC;QAC5C,CAAC;KACF,CACF;AAED,IAAA,SAAS,EAAE,CAA2B,KAAc,KAAI;AACtD,QAAA,OAAOC,+BAAQ,CAAW,KAAK,CAAC;IAClC,CAAC;AAED,IAAA,OAAO,EAAE,CAA2B,GAAG,CAAY,KACjDC,+BAAkB;IAEpB,OAAO,EAAEH,2BAAM,EAAW,CAAC;AACzB;;;;;AAKG;AACH,QAAA,EAAE,EAAE,CAAc,KAAc,KAA0B;AACxD,YAAA,QACE,OAAO,KAAK,KAAK,UAAU;gBAC3B,KAAK,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE1C,CAAC;QAED,MAAM,EAAEC,+BAAQ,CAAC,CAAI,OAAoB,KAAK,OAAO,EAAE;YACrD,SAAS,EAAE,CAAI,KAAc,KAAKC,+BAAQ,CAAc,KAAK,CAAC;SAC/D,CAAC;KACH,CAAC;AACH,CAAA;;;;"}