UNPKG

@vert/core

Version:

Library to build OOP applications which are based on Vue.

55 lines (54 loc) 1.44 kB
import { TConstructor } from '../types'; /** * Standalone injector class. */ declare class Injector { /** * Create a new class injector. * * @return {Injector} */ static create(): Injector; /** * Check whether a class is injected. * * @param Provider */ private static checkIsInjected; /** * This map keeps singleton provider and its instance. */ private readonly singletonMap; /** * This map keeps transient provider. */ private readonly transient; /** * Register target as a singleton provider. * You will get the same instance in every single initialization. * * @param {TConstructor[]} Providers */ addSingleton(...Providers: TConstructor[]): this; /** * Register target as a transient provider. * You will get different instances in every single initialization. * * @param {TConstructor[]} Providers */ addTransient(...Providers: TConstructor[]): this; /** * Get target instance from injector by providing provider. * * @param {{new(...args): T}} Provider * @return {T} */ get<T>(Provider: new (...args: any[]) => T): T; /** * Check whether injector has registered this provider. * * @param target */ has(target: TConstructor): boolean; } export { Injector };