@itsmworkbench/utils
Version:
The usual utility functions
14 lines (13 loc) • 955 B
TypeScript
export interface PartialFunction<From, To> {
isDefinedAt: (from: From) => boolean;
apply: (from: From) => To;
}
export interface PartialFunction2<Opt, From, To> {
isDefinedAt: (from: Opt) => boolean;
apply: (from: From, opt: Opt) => To;
}
export declare const chainOfResponsibility2: <From, Opt, To>(defaultFn: (from: From, opt: Opt) => To, ...fns: PartialFunction2<Opt, From, To>[]) => (from: From, opt: Opt) => To;
export declare const chainOfResponsibility: <From, To>(defaultFn: (from: From) => To, ...fns: PartialFunction<From, To>[]) => (from: From) => To;
export type PartialFnFromUndefined<From, To> = (from: From | undefined) => To | undefined;
export declare const chainFromDoItOrUndefined: <From, To>(defaultFn: (from: From) => To, ...fns: PartialFnFromUndefined<From, To>[]) => (from: From) => To;
export declare const partial: (isDefinedAt: (from: any) => boolean) => (apply: (from: any) => any) => PartialFunction<any, any>;