ts-ioc-container
Version:
Typescript IoC container
29 lines (28 loc) • 1.33 kB
TypeScript
import { DependencyKey } from './container/IContainer';
import { IInjectFnResolver } from './injector/IInjector';
import { DepKey } from './DepKey';
export type constructor<T> = new (...args: any[]) => T;
export interface InstanceOfClass<T = unknown> {
new (...args: unknown[]): T;
}
export type MapFn<T> = (value: T) => T;
export declare const pipe: <T>(...mappers: MapFn<T>[]) => MapFn<T>;
export declare function fillEmptyIndexes<T>(baseArr: (T | undefined)[], insertArr: T[]): T[];
export declare const constant: <T>(value: T) => () => T;
export declare function lazyProxy<T>(resolveInstance: () => T): T;
export declare function toLazyIf<T>(resolveInstance: () => T, isLazy?: boolean): T;
export declare const promisify: <T>(arg: T | Promise<T>) => Promise<T>;
export declare const List: {
lastOf: <T>(arr: T[]) => T;
};
export declare const Filter: {
exclude: <T>(arr: Set<T> | T[]) => (v: T) => boolean;
};
export declare const Is: {
object: (target: unknown) => target is object;
instance: (target: unknown) => target is InstanceOfClass;
constructor: (target: unknown) => target is constructor<unknown>;
dependencyKey: (target: unknown) => target is DependencyKey;
injectBuilder: (target: unknown) => target is IInjectFnResolver<unknown>;
DepKey: <T>(key: unknown) => key is DepKey<T>;
};