@graphql-tools/executor
Version:
Fork of GraphQL.js' execute function
37 lines (36 loc) • 1.86 kB
text/typescript
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;
}