conditional-love
Version:
Programmatically construct conditional expressions
9 lines (8 loc) • 504 B
TypeScript
export interface Resolver<ARGS extends any[], OUTPUT> {
(...args: ARGS): Iterable<OUTPUT>;
}
export declare type ResolverResolver<ARGS extends any[], OUTPUT> = Resolver<ARGS, Resolver<ARGS, OUTPUT>>;
export interface CompositeResolver<ARGS extends any[], OUTPUT> extends Resolver<ARGS, OUTPUT> {
getResolvers: ResolverResolver<ARGS, OUTPUT>;
}
export declare function DepthFirstResolver<ARGS extends any[], OUTPUT>(getResolvers?: ResolverResolver<ARGS, OUTPUT>): CompositeResolver<ARGS, OUTPUT>;