{"version":3,"file":"index.mjs","sources":["../src/const.ts","../src/callbackCurry.ts","../src/errorNormalize.ts","../src/tryFunction.ts","../src/tryCallback.ts","../src/tryPromise.ts","../src/tryFlatten.ts"],"sourcesContent":["export const pkgName = PKG_NAME;\nexport const pkgVersion = PKG_VERSION;\n","export type Callback<T = void> = (err: null | undefined | void | Error, res: T) => unknown;\n\nexport type CallbackFunction0<T = void> = (callback: Callback<T>) => unknown;\nexport type CallbackFunction1<A, T = void> = (a: A, callback: Callback<T>) => unknown;\nexport type CallbackFunction2<A, B, T = void> = (a: A, b: B, callback: Callback<T>) => unknown;\nexport type CallbackFunction3<A, B, C, T = void> = (a: A, b: B, c: C, callback: Callback<T>) => unknown;\nexport type CallbackFunction4<A, B, C, D, T = void> = (a: A, b: B, c: C, d: D, callback: Callback<T>) => unknown;\nexport type CallbackFunction5<A, B, C, D, E, T = void> = (\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n    callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction6<A, B, C, D, E, F, T = void> = (\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n    f: F,\n    callback: Callback<T>,\n) => unknown;\n\nexport type CallbackCurried<T> = (callback: Callback<T>) => unknown;\n\nexport function callbackCurry<T = void>(cf: CallbackFunction0<T>): CallbackCurried<T>;\nexport function callbackCurry<A, T = void>(cf: CallbackFunction1<A, T>, a: A): CallbackCurried<T>;\nexport function callbackCurry<A, B, T = void>(cf: CallbackFunction2<A, B, T>, a: A, b: B): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, T = void>(\n    cf: CallbackFunction3<A, B, C, T>,\n    a: A,\n    b: B,\n    c: C,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, T = void>(\n    cf: CallbackFunction4<A, B, C, D, T>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, T = void>(\n    cf: CallbackFunction5<A, B, C, D, E, T>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, F, T = void>(\n    cf: CallbackFunction6<A, B, C, D, E, F, T>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n    f: F,\n): CallbackCurried<T>;\nexport function callbackCurry(cf: unknown, ...args: unknown[]): CallbackCurried<unknown> {\n    return function callbackCurried(callback: Callback<unknown>) {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        cf.apply(this, [...args, callback]);\n    };\n}\n","export function errorNormalize(error: unknown): Error {\n    if (error && error instanceof Error) return error;\n    return new Error(String(error ?? ''));\n}\n\nexport { errorNormalize as normalizeError };\n","import { errorNormalize } from './errorNormalize';\nimport type { FlattenReturn } from './types';\n\nexport type SyncFunction<T> = () => T;\n\nexport function tryFunction<T>(syncFn: () => T): FlattenReturn<T> {\n    try {\n        return [null, syncFn()] as const;\n    } catch (err) {\n        return [errorNormalize(err), undefined] as const;\n    }\n}\n","import type {\n    CallbackFunction0,\n    CallbackFunction1,\n    CallbackFunction2,\n    CallbackFunction3,\n    CallbackFunction4,\n    CallbackFunction5,\n    CallbackFunction6,\n} from './callbackCurry';\nimport { callbackCurry } from './callbackCurry';\nimport { errorNormalize } from './errorNormalize';\nimport type { FlattenReturn } from './types';\n\nexport function tryCallback(cf: CallbackFunction0): Promise<FlattenReturn>;\nexport function tryCallback<T = void>(cf: CallbackFunction0<T>): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, T = void>(cf: CallbackFunction1<A, T>, a: A): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, T = void>(cf: CallbackFunction2<A, B, T>, a: A, b: B): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, T = void>(\n    cf: CallbackFunction3<A, B, C, T>,\n    a: A,\n    b: B,\n    c: C,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, T = void>(\n    cf: CallbackFunction4<A, B, C, D>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, T = void>(\n    cf: CallbackFunction5<A, B, C, D, E, T>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, F, T = void>(\n    cf: CallbackFunction6<A, B, C, D, E, F, T>,\n    a: A,\n    b: B,\n    c: C,\n    d: D,\n    e: E,\n    f: F,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback(cf: unknown, ...args: unknown[]): Promise<FlattenReturn<unknown>> {\n    return new Promise((resolve) => {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        callbackCurry.apply(this, [cf, ...args])((err, res) => {\n            if (err) {\n                resolve([errorNormalize(err), undefined] as const);\n            } else {\n                resolve([null, res] as const);\n            }\n        });\n    });\n}\n","import { errorNormalize } from './errorNormalize';\nimport type { FlattenReturn } from './types';\n\nexport function tryPromise<T>(promise: PromiseLike<T>): PromiseLike<FlattenReturn<T>> {\n    return promise.then(\n        (res) => [null, res] as const,\n        (err) => [errorNormalize(err), undefined] as const,\n    );\n}\n","import type { CallbackFunction0 } from './callbackCurry';\nimport { tryCallback } from './tryCallback';\nimport { tryPromise } from './tryPromise';\nimport { tryFunction, type SyncFunction } from './tryFunction';\nimport type { FlattenReturn } from './types';\n\nexport type FlattenAble<T> = SyncFunction<T> | CallbackFunction0<T> | PromiseLike<T>;\n\nexport function tryFlatten<T>(flattenAble: SyncFunction<T>): FlattenReturn<T>;\nexport function tryFlatten<T>(flattenAble: CallbackFunction0<T> | PromiseLike<T>): Promise<FlattenReturn<T>>;\nexport function tryFlatten<T>(flattenAble: FlattenAble<T>): unknown {\n    if ('then' in flattenAble) {\n        return tryPromise<T>(flattenAble);\n    }\n\n    if (flattenAble.length === 0) {\n        return tryFunction<T>(flattenAble as SyncFunction<T>);\n    }\n\n    return tryCallback<T>(flattenAble);\n}\n"],"names":[],"mappings":"AAAO,MAAM,UAAU;AAChB,MAAM,aAAa;AC2DV,SAAA,cAAc,OAAgB,MAA2C;AAC9E,SAAA,SAAS,gBAAgB,UAA6B;AAGzD,OAAG,MAAM,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;AAAA,EAAA;AAE1C;AClEO,SAAS,eAAe,OAAuB;AAClD,MAAI,SAAS,iBAAiB;AAAc,WAAA;AAC5C,SAAO,IAAI,MAAM,OAAO,SAAS,EAAE,CAAC;AACxC;ACEO,SAAS,YAAe,QAAmC;AAC1D,MAAA;AACO,WAAA,CAAC,MAAM,OAAA,CAAQ;AAAA,WACjB,KAAK;AACV,WAAO,CAAC,eAAe,GAAG,GAAG,MAAS;AAAA,EAC1C;AACJ;ACoCgB,SAAA,YAAY,OAAgB,MAAkD;AACnF,SAAA,IAAI,QAAQ,CAAC,YAAY;AAGd,kBAAA,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,QAAQ;AACnD,UAAI,KAAK;AACL,gBAAQ,CAAC,eAAe,GAAG,GAAG,MAAS,CAAU;AAAA,MAAA,OAC9C;AACK,gBAAA,CAAC,MAAM,GAAG,CAAU;AAAA,MAChC;AAAA,IAAA,CACH;AAAA,EAAA,CACJ;AACL;ACxDO,SAAS,WAAc,SAAwD;AAClF,SAAO,QAAQ;AAAA,IACX,CAAC,QAAQ,CAAC,MAAM,GAAG;AAAA,IACnB,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,MAAS;AAAA,EAAA;AAEhD;ACEO,SAAS,WAAc,aAAsC;AAChE,MAAI,UAAU,aAAa;AACvB,WAAO,WAAc,WAAW;AAAA,EACpC;AAEI,MAAA,YAAY,WAAW,GAAG;AAC1B,WAAO,YAAe,WAA8B;AAAA,EACxD;AAEA,SAAO,YAAe,WAAW;AACrC;"}