@vert/core
Version:
Library to build OOP applications which are based on Vue.
55 lines (54 loc) • 1.44 kB
TypeScript
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 };