@envelop/types
Version:
19 lines (18 loc) • 1.13 kB
TypeScript
import { Plugin } from './plugin.js';
import { ExecuteFunction, ExecutionResult, ParseFunction, SubscribeFunction, ValidateFunction } from './graphql.js';
import { ArbitraryObject, Spread, PromiseOrValue, AsyncIterableIteratorOrValue } from './utils.js';
import { PerformParams } from './hooks.js';
export { ArbitraryObject } from './utils.js';
export declare type EnvelopContextFnWrapper<TFunction extends Function, ContextType = unknown> = (context: ContextType) => TFunction;
export declare type GetEnvelopedFn<PluginsContext> = {
<InitialContext extends ArbitraryObject>(initialContext?: InitialContext): {
execute: ExecuteFunction;
validate: ValidateFunction;
subscribe: SubscribeFunction;
parse: ParseFunction;
contextFactory: <ContextExtension>(contextExtension?: ContextExtension) => PromiseOrValue<Spread<[InitialContext, PluginsContext, ContextExtension]>>;
schema: any;
perform: <ContextExtension = unknown>(params: PerformParams, contextExtension?: ContextExtension) => Promise<AsyncIterableIteratorOrValue<ExecutionResult>>;
};
_plugins: Plugin[];
};