houdini-svelte
Version:
The svelte plugin for houdini
20 lines (19 loc) • 955 B
TypeScript
import type { GraphQLVariables } from '$houdini/runtime/lib/types';
import type { QueryStore } from './stores';
export * from './adapter';
export * from './stores';
export * from './fragments';
export * from './session';
export * from './types';
type LoadResult = Promise<{
[key: string]: QueryStore<any, GraphQLVariables>;
}>;
type LoadAllInput = LoadResult | Record<string, LoadResult>;
type ValueOf<T extends Record<PropertyKey, unknown>> = T[keyof T];
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
type InferLoadResult<T extends LoadAllInput> = T extends Record<infer Key, infer Res extends LoadResult> ? {
[K in Key]: ValueOf<Awaited<Res>>;
} : T extends LoadResult ? Awaited<T> : never;
export declare function loadAll<L extends LoadAllInput, Loads extends L[]>(...loads: Loads): Promise<UnionToIntersection<{
[K in keyof Loads]: InferLoadResult<Loads[K]>;
}[number]>>;