proxydi
Version:
A typed hierarchical DI container that resolves circular dependencies via Proxy
28 lines (27 loc) • 1.21 kB
TypeScript
import { IProxyDiContainer as IProxyDiContainer, ContainerizedServiceInstance, ServiceInstanced, ServiceClass } from './types';
import { ProxyDiSettings, ServiceId } from './types';
export declare class ProxyDiContainer implements IProxyDiContainer {
private static idCounter;
readonly id: number;
readonly parent?: ProxyDiContainer;
private children;
/**
* Holds instances of services registered in particular this container
*/
private serviceInstances;
private parentInstanceProxies;
private settings;
constructor(settings?: ProxyDiSettings, parent?: ProxyDiContainer);
registerService<T>(serviceId: ServiceId, instance: ServiceInstanced<T>): void;
private registerInstanceImplementation;
createService<T>(serviceId: ServiceId, ServiceClass: ServiceClass<T>): void;
isKnown(serviceId: ServiceId): boolean;
resolve<T>(serviceId: ServiceId): T & ContainerizedServiceInstance;
injectDependencies(injectionsOwner: any): void;
createChildContainer(): ProxyDiContainer;
removeService(serviceId: ServiceId | ContainerizedServiceInstance): void;
destroy(): void;
private findInstance;
private addChild;
private removeChild;
}