inversify
Version:
A powerful and lightweight inversion of control container for JavaScript and Node.js apps powered by TypeScript.
37 lines (36 loc) • 1.83 kB
TypeScript
import interfaces from "../interfaces/interfaces";
declare class Kernel implements interfaces.Kernel {
guid: string;
private _planner;
private _resolver;
private _middleware;
private _bindingDictionary;
private _snapshots;
private _parentKernel;
constructor();
load(...modules: interfaces.KernelModule[]): void;
unload(...modules: interfaces.KernelModule[]): void;
bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
unbind(serviceIdentifier: interfaces.ServiceIdentifier<any>): void;
unbindAll(): void;
isBound(serviceIdentifier: interfaces.ServiceIdentifier<any>): boolean;
get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string): T;
getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string, value: any): T;
snapshot(): void;
restore(): void;
getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier<any>): string;
applyMiddleware(...middlewares: interfaces.Middleware[]): void;
getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[];
getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string): T[];
getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string, value: any): T[];
parent: interfaces.Kernel;
private _get<T>(args);
private _planAndResolve<T>(args);
private _getActiveBindings<T>(multiInject, serviceIdentifier, target);
private _plan<T>(multiInject, serviceIdentifier, target);
private _createContext<T>(binding, target);
private _resolve<T>(contexts, contextInterceptor);
private _listRegisteredBindingsForServiceIdentifier(serviceIdentifier);
}
export default Kernel;