mana-syringe
Version:
IoC library for mana, easily to use.
28 lines (27 loc) • 1.5 kB
TypeScript
import type { interfaces } from 'inversify';
import type { InversifyContext } from './inversify/inversify-protocol';
import type { Disposable, Syringe } from './core';
export declare class Container implements Syringe.Container, InversifyContext {
static setContainer(key: interfaces.Container, value: Syringe.Container): Map<number, Syringe.Container>;
static getContainer(key: interfaces.Container): Syringe.Container;
static config(option: Syringe.InjectOption<void>): void;
protected loadedModules: number[];
container: interfaces.Container;
protected inversify: boolean;
parent?: Container;
constructor(inversifyContainer?: interfaces.Container);
load(module: Syringe.Module, force?: boolean): Disposable;
unload(module: Syringe.Module): void;
remove<T>(token: Syringe.Token<T>): void;
get<T>(token: Syringe.Token<T>): T;
getNamed<T>(token: Syringe.Token<T>, named: Syringe.Named): T;
getAll<T>(token: Syringe.Token<T>): T[];
getAllNamed<T>(token: Syringe.Token<T>, named: Syringe.Named): T[];
isBound<T>(token: Syringe.Token<T>): boolean;
isBoundNamed<T>(token: Syringe.Token<T>, named: Syringe.Named): boolean;
createChild(): Syringe.Container;
register<T = any>(tokenOrOption: Syringe.Token<T> | Syringe.InjectOption<T>): void;
register<T = any>(token: Syringe.Token<T>, options: Syringe.InjectOption<T>): void;
}
export declare const GlobalContainer: Container;
export declare const register: Syringe.Register;