@baizey/dependency-injection
Version:
A simple typescript dependency injection
17 lines (16 loc) • 639 B
TypeScript
import { DependencyFactory, Key } from '../ServiceCollection';
import { Provider, ScopeContext } from '../ServiceProvider';
export interface DependencyInfo<E = any> {
readonly name: Key<E>;
readonly isSingleton: boolean;
}
export interface ILifetime<T, E> extends DependencyInfo<E> {
factory: DependencyFactory<T, void, E>;
provide(provider: Provider<E>, context: ScopeContext<E>): T;
validate(provider: Provider<E>, context: ScopeContext<E>): T;
clone(): ILifetime<T, E>;
}
export declare class Lifetime {
private constructor();
static dummy(name: Key<any>, isSingleton?: boolean): ILifetime<null, any>;
}