graphql-modules
Version: 
Create reusable, maintainable, testable and extendable GraphQL modules
64 lines (63 loc) • 1.8 kB
TypeScript
import { Provider, ValueProvider, ClassProvider, FactoryProvider } from './providers';
import { Key } from './registry';
import { ReflectiveInjector } from './injector';
export declare type NormalizedProvider<T = any> = ValueProvider<T> | ClassProvider<T> | FactoryProvider<T>;
export declare type GlobalProviderMap = {
    has(key: Key['id']): boolean;
    get(key: Key['id']): ReflectiveInjector;
};
export declare class ResolvedProvider {
    key: Key;
    factory: ResolvedFactory;
    constructor(key: Key, factory: ResolvedFactory);
}
export declare class ResolvedFactory {
    /**
     * Factory function which can return an instance of an object represented by a key.
     */
    factory: Function;
    /**
     * Arguments (dependencies) to the `factory` function.
     */
    dependencies: Dependency[];
    /**
     * Methods invoked within ExecutionContext.
     */
    executionContextIn: Array<string | symbol>;
    /**
     * Has onDestroy hook
     */
    hasOnDestroyHook: boolean;
    /**
     * Is Global
     */
    isGlobal: boolean;
    constructor(
    /**
     * Factory function which can return an instance of an object represented by a key.
     */
    factory: Function, 
    /**
     * Arguments (dependencies) to the `factory` function.
     */
    dependencies: Dependency[], 
    /**
     * Methods invoked within ExecutionContext.
     */
    executionContextIn: Array<string | symbol>, 
    /**
     * Has onDestroy hook
     */
    hasOnDestroyHook: boolean, 
    /**
     * Is Global
     */
    isGlobal: boolean);
}
export declare class Dependency {
    key: Key;
    optional: boolean;
    constructor(key: Key, optional: boolean);
    static fromKey(key: Key): Dependency;
}
export declare function resolveProviders(providers: Provider[]): ResolvedProvider[];