graphql-modules
Version:
Create reusable, maintainable, testable and extendable GraphQL modules
25 lines (24 loc) • 1.01 kB
TypeScript
import { Injector, ReflectiveInjector } from '../di';
import { ResolvedProvider } from '../di/resolution';
import type { InternalAppContext, ModulesMap } from './application';
export type ExecutionContextBuilder<TContext extends {
[key: string]: any;
} = {}> = (context: TContext) => ExecutionContextEnv & {
runWithContext<TReturn = any>(cb: (env: ExecutionContextEnv) => TReturn): TReturn;
};
export type ExecutionContextEnv = {
context: InternalAppContext;
ɵdestroy(): void;
ɵinjector: Injector;
};
export declare function createContextBuilder({ appInjector, modulesMap, appLevelOperationProviders, singletonGlobalProvidersMap, operationGlobalProvidersMap, }: {
appInjector: ReflectiveInjector;
appLevelOperationProviders: ResolvedProvider[];
singletonGlobalProvidersMap: {
[key: string]: string;
};
operationGlobalProvidersMap: {
[key: string]: string;
};
modulesMap: ModulesMap;
}): ExecutionContextBuilder<GraphQLModules.GlobalContext>;