@graphql-tools/delegate
Version:
A set of utils for faster development of GraphQL tools
19 lines (18 loc) • 933 B
text/typescript
import { FieldNode } from 'graphql';
import { Subschema } from './Subschema.cjs';
import { ExternalObject } from './types.cjs';
export interface Deferred<T = unknown> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (error: unknown) => void;
}
export declare function createDeferred<T>(): Deferred<T>;
export interface DelegationPlanLeftOver {
unproxiableFieldNodes: Array<FieldNode>;
nonProxiableSubschemas: Array<Subschema>;
missingFieldsParentMap: Map<ExternalObject, Array<FieldNode>>;
missingFieldsParentDeferredMap: Map<ExternalObject, Map<string, Deferred>>;
}
export declare const leftOverByDelegationPlan: WeakMap<Map<Subschema<any, any, any, Record<string, any>>, import("graphql").SelectionSetNode>[], DelegationPlanLeftOver>;
export declare const PLAN_LEFT_OVER: unique symbol;
export declare function getPlanLeftOverFromParent(parent: unknown): DelegationPlanLeftOver | undefined;