@triviality/core
Version:
Purely typed service container
29 lines (28 loc) • 1.21 kB
TypeScript
import { ServiceFunctionReferenceContainerInterface } from './ServiceFunctionReferenceContainerInterface';
import { ServiceFactoryReference } from '../Value/ServiceFactoryReference';
import { Override } from '../Value/Override';
import { ImmutableServiceReferenceList } from '../Value/ImmutableServiceReferenceList';
export declare class MergeServiceFunctionReferenceContainer<Services = any> implements ServiceFunctionReferenceContainerInterface<Services> {
private parent;
getService: any;
private serviceReferences;
/**
* The global reference where all service functions are bound to, so
* the 'this' keyword keeps working.
*/
private servicesReferences;
constructor(parent: ServiceFunctionReferenceContainerInterface<Services>);
/**
* The services that are from the 'parent' that are passed to the merged feature.
*/
addMerged<TService>(reference: ServiceFactoryReference): () => TService;
/**
*/
add<TService>(reference: ServiceFactoryReference): () => TService;
build(): Promise<Services>;
references(): ImmutableServiceReferenceList;
/**
* If the service is
*/
override<T>(override: Override<T>): this;
}