UNPKG

context-tree

Version:

Simple hierarchical dependency injection library, as the part of Fractal Architecture

32 lines (31 loc) 1.2 kB
type Resolver<T> = () => T; export declare class ContextResolver<T> { readonly context: Context<T>; readonly resolver: Resolver<T>; constructor(context: Context<T>, resolver: Resolver<T>); } export interface IContext { context: IContext | IContext[] | null | undefined; contextType?: Context<any>; contextResolvers?: ContextResolvers; } export declare class ContextResolvers { private resolvers; addResolver(resolver: ContextResolver<any>): void; removeResolver(context: Context<any>): void; findResolver<T>(_context: Context<T>): Resolver<T> | null; } export declare class Context<T> { readonly parent: Context<any> | null; readonly name: string; constructor(name: string, parent?: Context<any> | null); static resolvers(resolvers: Array<ContextResolver<any>>): ContextResolvers; static checkRequired(instance: any): void; partial<P extends Partial<T>>(name: string): Context<P>; resolvesTo(resolver: Resolver<T>): ContextResolver<T>; resolve(instance: IContext): T; resolveMaybe(instance: IContext): T | undefined; findResolver(startInstance: IContext): Resolver<T> | null; private contextTypeResolver; } export {};