typed-patterns
Version:
Basic design patterns
17 lines • 842 B
TypeScript
import { Callback, TypedFunction } from '../../util';
/**
* Next processor selection function
*/
export declare type Next = TypedFunction<[], void>;
/**
* Asynchronous processor for building chain-of-responsibility pattern
*/
export declare type AsyncProcessor<Context, Result extends any[] = any[], Exception extends Error = Error> = (context: Context, callback?: Callback<Result, Exception>, next?: Next) => void;
/**
* Chain of responsibility processor
*/
export interface IChainedProcessor<Context, Result extends any[] = any[], Exception extends Error = Error> {
(context: Context, callback?: Callback<Result, Exception>, next?: () => void): void;
__promisify__: (context: Context) => Result extends [] ? Promise<void> : Result extends [any] ? Promise<Result[0]> : Promise<Result>;
}
//# sourceMappingURL=interface.d.ts.map