UNPKG

containor

Version:

Simple DI container for Javascript with Typescript support

34 lines (33 loc) 1.51 kB
import { Creator, ProviderCallback, Module, Creates, Arguments } from "./types"; import { Token } from "./token"; declare class Container { private dependencies; private providers; private requests; constructor(); add<T extends Creator>(token: Token<Creates<T>>, creator: T, args?: Arguments<T>): void; addAsync<T extends Creator>(token: Token<Creates<T>>, asyncCreator: Promise<T>, args?: Arguments<T>): Promise<void>; share<T extends Creator>(token: Token<Creates<T>>, creator: T, args?: Arguments<T>): void; shareAsync<T extends Creator>(token: Token<Creates<T>>, asyncCreator: Promise<T>, args?: Arguments<T>): Promise<void>; constant<T>(token: Token<T>, value: T): void; constantAsync<T>(token: Token<T>, asyncValue: Promise<T>): Promise<void>; private register; private registerAsync; get<T>(token: Token<T>): T; getAsync<T>(token: Token<T>): Promise<T>; provide(tokens: Token[], provider: ProviderCallback): void; provideAsync(tokens: Token[], asyncProvider: Promise<ProviderCallback>): void; use(module: Creator<Module>): void; useAsync(asyncModule: Promise<Creator<Module>>): void; private instantiate; private instantiateAsync; private create; private createAsync; private createSingle; private createSingleAsync; private resolve; private resolveAsync; private construct; } declare function createContainer(): Container; export { Container, createContainer };