Module
x/alosaur/src/injection/types/dependency-container.ts
Alosaur - Deno web framework with many decorators
Very Popular
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576import FactoryProvider from "../providers/factory-provider.ts";import InjectionToken from "../providers/injection-token.ts";import TokenProvider from "../providers/token-provider.ts";import ValueProvider from "../providers/value-provider.ts";import ClassProvider from "../providers/class-provider.ts";import constructor from "./constructor.ts";import RegistrationOptions from "./registration-options.ts";
export default interface DependencyContainer { register<T>( token: InjectionToken<T>, provider: ValueProvider<T>, ): DependencyContainer; register<T>( token: InjectionToken<T>, provider: FactoryProvider<T>, ): DependencyContainer; register<T>( token: InjectionToken<T>, provider: TokenProvider<T>, options?: RegistrationOptions, ): DependencyContainer; register<T>( token: InjectionToken<T>, provider: ClassProvider<T>, options?: RegistrationOptions, ): DependencyContainer; register<T>( token: InjectionToken<T>, provider: constructor<T>, options?: RegistrationOptions, ): DependencyContainer;
registerSingleton<T>( from: InjectionToken<T>, to: InjectionToken<T>, ): DependencyContainer; registerSingleton<T>(token: constructor<T>): DependencyContainer;
registerType<T>( from: InjectionToken<T>, to: InjectionToken<T>, ): DependencyContainer;
registerInstance<T>( token: InjectionToken<T>, instance: T, ): DependencyContainer;
/** * Resolve a token into an instance * * @param token The dependency token * @return An instance of the dependency */ resolve<T>(token: InjectionToken<T>): T; resolveAll<T>(token: InjectionToken<T>): T[];
/** * Check if the given dependency is registered * * @param token The token to check * @param recursive Should parent containers be checked? * @return Whether or not the token is registered */ isRegistered<T>(token: InjectionToken<T>, recursive?: boolean): boolean;
/** * Clears all registered tokens */ reset(): void;
clearInstances(): void; createChildContainer(): DependencyContainer;}