1 | type UnPromisify<T> = T extends Promise<infer I> ? UnPromisify<I> : T;
|
2 | type RegularFunction<T = any> = (...args: any[]) => T;
|
3 | type AsyncFunction<T = Promise<any>> = (...args: any[]) => T;
|
4 | type AnyFunction = RegularFunction | AsyncFunction;
|
5 | type Handled<Func extends AnyFunction> = [UnPromisify<ReturnType<Func>>, null] | [null, Error];
|
6 | export declare function e<Func extends AsyncFunction>(func: Func): Promise<Handled<Func>>;
|
7 | export declare function e<Func extends RegularFunction>(func: Func): Handled<Func>;
|
8 | export declare function func<Func extends AsyncFunction>(func: Func): (...args: Parameters<Func>) => Promise<Handled<Func>>;
|
9 | export declare function func<Func extends RegularFunction>(func: Func): (...args: Parameters<Func>) => Handled<Func>;
|
10 | export {};
|