UNPKG

@miragejs/graphql

Version:

A library for handling GraphQL requests with Mirage JS

57 lines (49 loc) 1.53 kB
import type { DocumentNode, GraphQLResolveInfo, GraphQLSchema } from "graphql"; import type { Request } from "miragejs"; /** * Useful for simplified type discrimination. Mimics `GraphQLObjectType`, * `GraphQLInterfaceType` and `GraphQLInputObjectType`. */ export type GraphQLObjectLike = { name: string; getFields: () => { [key: string]: any }; }; /** * An interface to the Mirage ORM that allows for querying and creating records. */ export type MirageSchema = any; /** * A map of GraphQL query arguments. */ export type QueryArgs = { [argName: string]: any }; /** * A function that resolves GraphQL queries. */ export type Resolver = ( source: any, args: QueryArgs, context: ResolverContext, info: GraphQLResolveInfo ) => any; /** * A context object that GraphQL will pass into each resolver. A common use case * for this is to supply current user information to resolvers. By default, * whatever context you pass in will be appended with a reference to the Mirage * schema and the request being handled. */ export type ResolverContext = { [key: string]: any } & { mirageSchema: MirageSchema; request: Request; }; /** * A map of resolvers. For each field name in the map, the value can be a * `Resolver` or an additional `ResolverMap`. */ export type ResolverMap = { [fieldName: string]: Resolver | ResolverMap; }; /** * Source of a GraphQL schema. It can be a string, an existing GraphQL schema or * an AST. */ export type SourceGraphQLSchema = DocumentNode | GraphQLSchema | string;