grafast
Version:
Cutting edge GraphQL planning and execution engine
28 lines • 1.83 kB
TypeScript
import type { ExecutionDetails, Maybe, PromiseOrDirect } from "..";
import { type Deferred } from "../deferred";
import type { Multistep, UnwrapMultistep } from "../multistep";
import type { Step } from "../step.js";
export declare const nextTick: (cb: () => void) => void;
export type IOEquivalence<TSpec> = null | string | {
[key in Exclude<keyof TSpec, keyof any[]>]?: string | null;
};
export declare function makeAccessMap<TLookup extends Multistep>($spec: Step, ioEquivalence: IOEquivalence<UnwrapMultistep<TLookup>>): Record<string, Step>;
export declare function ioEquivalenceMatches(io1: IOEquivalence<Multistep>, io2: IOEquivalence<Multistep>): boolean;
export declare function paramSig(paramDepIdByKey: Record<string, number>, depIdToStepId: (depId: number) => number): string;
export interface LoadBatch {
deferred: Deferred<any>;
batchSpecs: readonly any[];
}
export declare function executeBatches<TLoadInfo extends {
shared: any;
attributes: readonly any[];
params: any;
/** @deprecated use `shared` instead (it's identical) */
unary: any;
}, TCallback extends (specs: ReadonlyArray<any>, info: TLoadInfo) => PromiseOrDirect<ReadonlyArray<any>>>(loadBatches: readonly LoadBatch[], loadInfo: TLoadInfo, load: TCallback): Promise<void>;
type LoadCallback = (...args: any[]) => any;
export declare function executeLoad<const TLookup extends Multistep, TItem, TData extends Maybe<TItem> | Maybe<ReadonlyArray<Maybe<TItem>>>, TParams extends Record<string, any>, const TLoadContext extends Multistep = never>(details: ExecutionDetails, sharedDepId: number | null, paramDepIdByKey: Record<string, number>, baseLoadInfo: {
attributes: readonly any[];
}, load: LoadCallback): PromiseOrDirect<TData>[] | Promise<PromiseOrDirect<TData>[]>;
export {};
//# sourceMappingURL=_loadCommon.d.ts.map