@triviality/core
Version:
Purely typed service container
18 lines (17 loc) • 1.35 kB
TypeScript
import { InferListArgumentRegisters, RegisterListArguments, RegistryListContext } from './RegistryListContext';
import { InferMapArgumentsRegisters, RegistryMapContext } from './RegistryMapContext';
import { RegistrySetContext } from './RegistrySetContext';
import { ServiceFunctionReferenceContainerInterface } from '../../Container/ServiceFunctionReferenceContainerInterface';
export declare type InferRegisters<T> = InferListArgumentRegisters<T> & InferMapArgumentsRegisters<T>;
export interface RegistryContext<T> extends RegistryListContext<T>, RegistryMapContext<T>, RegistrySetContext<T> {
registers: InferRegisters<T>;
}
/**
* It overrides the existing list, keeping the list itself immutable.
*/
export declare const registerToListOrSet: <Services, T>(container: ServiceFunctionReferenceContainerInterface<any>, registry: string, ...items: RegisterListArguments<Services, T>) => void;
export declare const registersTo: (container: ServiceFunctionReferenceContainerInterface<any>, name: string) => (...args: any) => {};
export declare const createFeatureFactoryRegisterContext: (container: ServiceFunctionReferenceContainerInterface<any>) => {
[index: string]: (...args: any) => {};
};
export declare const createFeatureFactoryRegistryContext: <T>(container: ServiceFunctionReferenceContainerInterface<any>) => RegistryContext<T>;