@orchestrator/core
Version:
> Core package of Orchestrator library.
44 lines (43 loc) • 1.51 kB
TypeScript
import { InjectFlags, InjectionToken, Injector, Provider, Type } from '@angular/core';
import { InjectorMap } from '../types';
import * as i0 from "@angular/core";
export interface InjectorMapToken extends Array<InjectorMap> {
}
/**
* Multi-provider of {@link InjectorMap}
*/
export declare const INJECTOR_MAP_TOKEN: InjectionToken<InjectorMapToken>;
/**
* Helper to provide {@link INJECTOR_MAP_TOKEN}
*/
export declare function provideInjectorMap(map: InjectorMap): Provider;
/**
* Maps tokens to other tokens and then executes parent injector.
*
* NOT a Service!
* Use via {@link MappedInjectorFactory}
*/
export declare class MappedInjector implements Injector {
private parent;
private injectorMaps;
private injectorMap;
constructor(parent: Injector, injectorMaps: InjectorMapToken);
get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;
get(token: any, notFoundValue?: any, flags?: InjectFlags): any;
private mapToken;
private maybeInitInjectorMap;
private processToken;
}
/**
* Factory for {@link MappedInjector}
*/
export declare class MappedInjectorFactory {
private injectorMap;
constructor(injectorMap: InjectorMapToken);
/**
* Creates MappedInjector with parent injector and {@link INJECTOR_MAP_TOKEN} from DI
*/
create(parent: Injector): Injector;
static ɵfac: i0.ɵɵFactoryDeclaration<MappedInjectorFactory, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<MappedInjectorFactory>;
}