ts-ioc-container
Version:
Typescript IoC container
21 lines (20 loc) • 1 kB
TypeScript
import { ArgsFn, IProvider, ProviderOptions, ResolveDependency, ScopeAccessFn, ScopeAccessOptions } from './IProvider';
import type { DependencyKey, IContainer } from '../container/IContainer';
import { constructor, MapFn } from '../utils';
import type { ProviderPipe } from './ProviderPipe';
export declare class Provider<T = any> implements IProvider<T> {
private readonly resolveDependency;
static fromClass<T>(Target: constructor<T>): IProvider<T>;
static fromValue<T>(value: T): IProvider<T>;
static fromKey<T>(key: DependencyKey): Provider<T>;
private argsFn;
private checkAccess;
private isLazy;
constructor(resolveDependency: ResolveDependency<T>);
pipe(...mappers: (MapFn<IProvider<T>> | ProviderPipe<T>)[]): IProvider<T>;
resolve(container: IContainer, { args, lazy }?: ProviderOptions): T;
setAccessPredicate(predicate: ScopeAccessFn): this;
lazy(): this;
setArgs(argsFn: ArgsFn): this;
hasAccess(options: ScopeAccessOptions): boolean;
}