UNPKG

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