@baizey/dependency-injection
Version:
A simple typescript dependency injection
14 lines (13 loc) • 855 B
TypeScript
import { DependencyFactory, DependencyInformation, FactoryOption, Key, NormalConstructor } from '../ServiceCollection';
import { ILifetime } from './ILifetime';
import { ScopeContext, Provider } from '../ServiceProvider';
export declare class SingletonLifetime<T, E> implements ILifetime<T, E> {
readonly factory: DependencyFactory<T, void, E>;
readonly name: Key<E>;
readonly isSingleton = true;
constructor(name: Key<E>, factory: DependencyFactory<T, void, E>);
provide(provider: Provider<E>, context: ScopeContext<E>): Partial<{ [key in keyof E]: any; }>[Key<E>];
validate(provider: Provider<E>, context: ScopeContext<E>): Partial<{ [key in keyof E]: any; }>[Key<E>];
clone(): ILifetime<T, E>;
}
export declare function singleton<T, E>(dep: FactoryOption<T, void, E> | NormalConstructor<T, E>): DependencyInformation<T, E>;