@baizey/dependency-injection
Version:
A simple typescript dependency injection
12 lines (11 loc) • 502 B
TypeScript
import { DependencyInformation, Key, Selector } from './ServiceCollection';
export type PropertyOf<E> = Required<{
[key in keyof E]: key & Key<E>;
}>;
export declare const propertyOf: <T>() => PropertyOf<T>;
export declare function extractSelector<T, E>(options: Selector<T, E>): Key<E>;
type DependencyFromInformation<X> = X extends DependencyInformation<infer T, any> ? T : never;
export type DependenciesOf<X> = Required<{
[key in keyof X]: DependencyFromInformation<X[key]>;
}>;
export {};