UNPKG

1.76 kBTypeScriptView Raw
1import { DocumentNode, GraphQLSchema, BuildSchemaOptions } from 'graphql';
2import { GraphQLSchemaValidationOptions } from 'graphql/type/schema';
3import { ExtendedParseOptions } from './parse-graphql-sdl';
4export interface Source {
5 document?: DocumentNode;
6 schema?: GraphQLSchema;
7 rawSDL?: string;
8 location?: string;
9}
10export declare type SingleFileOptions = ExtendedParseOptions & GraphQLSchemaValidationOptions & BuildSchemaOptions & {
11 cwd?: string;
12};
13export declare type WithList<T> = T | T[];
14export declare type ElementOf<TList> = TList extends Array<infer TElement> ? TElement : never;
15export declare type SchemaPointer = WithList<string>;
16export declare type SchemaPointerSingle = ElementOf<SchemaPointer>;
17export declare type DocumentGlobPathPointer = string;
18export declare type DocumentPointer = WithList<DocumentGlobPathPointer>;
19export declare type DocumentPointerSingle = ElementOf<DocumentPointer>;
20export interface Loader<TPointer = string, TOptions extends SingleFileOptions = SingleFileOptions> {
21 loaderId(): string;
22 canLoad(pointer: TPointer, options?: TOptions): Promise<boolean>;
23 canLoadSync?(pointer: TPointer, options?: TOptions): boolean;
24 load(pointer: TPointer, options?: TOptions): Promise<Source | never>;
25 loadSync?(pointer: TPointer, options?: TOptions): Source | never;
26}
27export declare type SchemaLoader<TOptions extends SingleFileOptions = SingleFileOptions> = Loader<SchemaPointerSingle, TOptions>;
28export declare type DocumentLoader<TOptions extends SingleFileOptions = SingleFileOptions> = Loader<DocumentPointerSingle, TOptions>;
29export declare type UniversalLoader<TOptions extends SingleFileOptions = SingleFileOptions> = Loader<SchemaPointerSingle | DocumentPointerSingle, TOptions>;