UNPKG

@graphql-tools/executor

Version:

Fork of GraphQL.js' execute function

37 lines (36 loc) 1.86 kB
import { Path } from '@graphql-tools/utils'; import { DeferUsage } from './collectFields.cjs'; import type { DeferredFragmentRecord, DeliveryGroup } from './DeferredFragments.cjs'; import { DeferredFragmentFactory } from './DeferredFragments.cjs'; import type { IncrementalDataRecord, IncrementalDataRecordResult, StreamRecord, SuccessfulExecutionGroup } from './types.cjs'; /** * @internal */ export declare class IncrementalGraph { private _rootNodes; private _deferredFragmentFactory; private _completedQueue; private _nextQueue; constructor(deferredFragmentFactory: DeferredFragmentFactory); getNewRootNodes(incrementalDataRecords: ReadonlyArray<IncrementalDataRecord>): ReadonlyArray<DeliveryGroup>; addCompletedSuccessfulExecutionGroup(successfulExecutionGroup: SuccessfulExecutionGroup): void; getDeepestDeferredFragmentAtRoot(initialDeferUsage: DeferUsage, deferUsages: ReadonlySet<DeferUsage>, path: Path | undefined): DeferredFragmentRecord; currentCompletedBatch(): Generator<IncrementalDataRecordResult>; nextCompletedBatch(): Promise<Iterable<IncrementalDataRecordResult> | undefined>; abort(): void; hasNext(): boolean; completeDeferredFragment(deferUsage: DeferUsage, path: Path | undefined): { deferredFragmentRecord: DeferredFragmentRecord; newRootNodes: ReadonlyArray<DeliveryGroup>; successfulExecutionGroups: ReadonlyArray<SuccessfulExecutionGroup>; } | undefined; removeDeferredFragment(deferUsage: DeferUsage, path: Path | undefined): DeferredFragmentRecord | undefined; removeStream(streamRecord: StreamRecord): void; private _addIncrementalDataRecords; private _promoteNonEmptyToRoot; private _completesRootNode; private _addDeferredFragment; private _onExecutionGroup; private _onStreamItems; private _enqueue; }