UNPKG

17.2 kBTypeScriptView Raw
1import * as core from '@graphql-inspector/core';
2export declare type Maybe<T> = T | null;
3export declare enum CriticalityLevel {
4 Breaking = "BREAKING",
5 NonBreaking = "NON_BREAKING",
6 Dangerous = "DANGEROUS"
7}
8export interface Query {
9 readonly ping: string;
10 readonly coverage: SchemaCoverage;
11 readonly diff?: Maybe<ReadonlyArray<Change>>;
12 readonly validate?: Maybe<ReadonlyArray<InvalidDocument>>;
13 readonly similar?: Maybe<ReadonlyArray<Similar>>;
14 readonly similarTo: Similar;
15}
16export interface SchemaCoverage {
17 readonly sources?: Maybe<ReadonlyArray<DocumentSource>>;
18 readonly types?: Maybe<ReadonlyArray<TypeCoverage>>;
19}
20export interface DocumentSource {
21 readonly body: string;
22 readonly name: string;
23}
24export interface TypeCoverage {
25 readonly name: string;
26 readonly hits: number;
27 readonly children?: Maybe<ReadonlyArray<TypeChildCoverage>>;
28}
29export interface TypeChildCoverage {
30 readonly name: string;
31 readonly hits: number;
32 readonly locations?: Maybe<ReadonlyArray<DocumentLocation>>;
33}
34export interface DocumentLocation {
35 readonly name: string;
36 readonly locations?: Maybe<ReadonlyArray<Location>>;
37}
38export interface Location {
39 readonly start: number;
40 readonly end: number;
41}
42export interface Change {
43 readonly message: string;
44 readonly path?: Maybe<string>;
45 readonly type: string;
46 readonly criticality: Criticality;
47}
48export interface Criticality {
49 readonly level: CriticalityLevel;
50 readonly reason?: Maybe<string>;
51}
52export interface InvalidDocument {
53 readonly source: DocumentSource;
54 readonly errors?: Maybe<ReadonlyArray<GraphQlError>>;
55}
56export interface GraphQlError {
57 /** A message describing the Error for debugging purposes. */
58 readonly message: string;
59 /** An array of { line, column } locations within the source GraphQL document which correspond to this error. Errors during validation often contain multiple locations, for example to point out two things with the same name. Errors during execution include a single location, the field which produced the error. */
60 readonly locations?: Maybe<ReadonlyArray<SourceLocation>>;
61 /** An array of character offsets within the source GraphQL document which correspond to this error. */
62 readonly positions?: Maybe<ReadonlyArray<Maybe<number>>>;
63}
64export interface SourceLocation {
65 readonly line: number;
66 readonly column: number;
67}
68export interface Similar {
69 readonly name: string;
70 readonly best: Match;
71 readonly types?: Maybe<ReadonlyArray<Match>>;
72}
73export interface Match {
74 readonly name: string;
75 readonly rating: number;
76}
77export interface Mutation {
78 readonly ping: string;
79}
80export interface CoverageQueryArgs {
81 schema: string;
82 documents: string;
83}
84export interface DiffQueryArgs {
85 oldSchema: string;
86 newSchema: string;
87}
88export interface ValidateQueryArgs {
89 schema: string;
90 documents: string;
91}
92export interface SimilarQueryArgs {
93 schema: string;
94 threshold?: Maybe<number>;
95}
96export interface SimilarToQueryArgs {
97 schema: string;
98 name: string;
99 threshold?: Maybe<number>;
100}
101import { GraphQLResolveInfo } from 'graphql';
102import { ResolvedTypeCoverage, ResolvedTypeChildCoverage, ResolvedDocumentLocation, ResolvedSimilar } from '../types';
103export declare type Resolver<Result, Parent = {}, TContext = {}, Args = {}> = (parent: Parent, args: Args, context: TContext, info: GraphQLResolveInfo) => Promise<Result> | Result;
104export interface ISubscriptionResolverObject<Result, Parent, TContext, Args> {
105 subscribe<R = Result, P = Parent>(parent: P, args: Args, context: TContext, info: GraphQLResolveInfo): AsyncIterator<R | Result> | Promise<AsyncIterator<R | Result>>;
106 resolve?<R = Result, P = Parent>(parent: P, args: Args, context: TContext, info: GraphQLResolveInfo): R | Result | Promise<R | Result>;
107}
108export declare type SubscriptionResolver<Result, Parent = {}, TContext = {}, Args = {}> = ((...args: any[]) => ISubscriptionResolverObject<Result, Parent, TContext, Args>) | ISubscriptionResolverObject<Result, Parent, TContext, Args>;
109export declare type TypeResolveFn<Types, Parent = {}, TContext = {}> = (parent: Parent, context: TContext, info: GraphQLResolveInfo) => Maybe<Types>;
110export declare type NextResolverFn<T> = () => Promise<T>;
111export declare type DirectiveResolverFn<TResult, TArgs = {}, TContext = {}> = (next: NextResolverFn<TResult>, source: any, args: TArgs, context: TContext, info: GraphQLResolveInfo) => TResult | Promise<TResult>;
112export declare namespace QueryResolvers {
113 interface Resolvers<TContext = {}, TypeParent = {}> {
114 ping?: PingResolver<string, TypeParent, TContext>;
115 coverage?: CoverageResolver<core.SchemaCoverage, TypeParent, TContext>;
116 diff?: DiffResolver<Maybe<ReadonlyArray<Change>>, TypeParent, TContext>;
117 validate?: ValidateResolver<Maybe<ReadonlyArray<InvalidDocument>>, TypeParent, TContext>;
118 similar?: SimilarResolver<Maybe<ReadonlyArray<ResolvedSimilar>>, TypeParent, TContext>;
119 similarTo?: SimilarToResolver<ResolvedSimilar, TypeParent, TContext>;
120 }
121 type PingResolver<R = string, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext>;
122 type CoverageResolver<R = core.SchemaCoverage, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext, CoverageArgs>;
123 interface CoverageArgs {
124 schema: string;
125 documents: string;
126 }
127 type DiffResolver<R = Maybe<ReadonlyArray<Change>>, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext, DiffArgs>;
128 interface DiffArgs {
129 oldSchema: string;
130 newSchema: string;
131 }
132 type ValidateResolver<R = Maybe<ReadonlyArray<InvalidDocument>>, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext, ValidateArgs>;
133 interface ValidateArgs {
134 schema: string;
135 documents: string;
136 }
137 type SimilarResolver<R = Maybe<ReadonlyArray<ResolvedSimilar>>, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext, SimilarArgs>;
138 interface SimilarArgs {
139 schema: string;
140 threshold?: Maybe<number>;
141 }
142 type SimilarToResolver<R = ResolvedSimilar, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext, SimilarToArgs>;
143 interface SimilarToArgs {
144 schema: string;
145 name: string;
146 threshold?: Maybe<number>;
147 }
148}
149export declare namespace SchemaCoverageResolvers {
150 interface Resolvers<TContext = {}, TypeParent = core.SchemaCoverage> {
151 sources?: SourcesResolver<Maybe<ReadonlyArray<DocumentSource>>, TypeParent, TContext>;
152 types?: TypesResolver<Maybe<ReadonlyArray<ResolvedTypeCoverage>>, TypeParent, TContext>;
153 }
154 type SourcesResolver<R = Maybe<ReadonlyArray<DocumentSource>>, Parent = core.SchemaCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
155 type TypesResolver<R = Maybe<ReadonlyArray<ResolvedTypeCoverage>>, Parent = core.SchemaCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
156}
157export declare namespace DocumentSourceResolvers {
158 interface Resolvers<TContext = {}, TypeParent = DocumentSource> {
159 body?: BodyResolver<string, TypeParent, TContext>;
160 name?: NameResolver<string, TypeParent, TContext>;
161 }
162 type BodyResolver<R = string, Parent = DocumentSource, TContext = {}> = Resolver<R, Parent, TContext>;
163 type NameResolver<R = string, Parent = DocumentSource, TContext = {}> = Resolver<R, Parent, TContext>;
164}
165export declare namespace TypeCoverageResolvers {
166 interface Resolvers<TContext = {}, TypeParent = ResolvedTypeCoverage> {
167 name?: NameResolver<string, TypeParent, TContext>;
168 hits?: HitsResolver<number, TypeParent, TContext>;
169 children?: ChildrenResolver<Maybe<ReadonlyArray<ResolvedTypeChildCoverage>>, TypeParent, TContext>;
170 }
171 type NameResolver<R = string, Parent = ResolvedTypeCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
172 type HitsResolver<R = number, Parent = ResolvedTypeCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
173 type ChildrenResolver<R = Maybe<ReadonlyArray<ResolvedTypeChildCoverage>>, Parent = ResolvedTypeCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
174}
175export declare namespace TypeChildCoverageResolvers {
176 interface Resolvers<TContext = {}, TypeParent = ResolvedTypeChildCoverage> {
177 name?: NameResolver<string, TypeParent, TContext>;
178 hits?: HitsResolver<number, TypeParent, TContext>;
179 locations?: LocationsResolver<Maybe<ReadonlyArray<ResolvedDocumentLocation>>, TypeParent, TContext>;
180 }
181 type NameResolver<R = string, Parent = ResolvedTypeChildCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
182 type HitsResolver<R = number, Parent = ResolvedTypeChildCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
183 type LocationsResolver<R = Maybe<ReadonlyArray<ResolvedDocumentLocation>>, Parent = ResolvedTypeChildCoverage, TContext = {}> = Resolver<R, Parent, TContext>;
184}
185export declare namespace DocumentLocationResolvers {
186 interface Resolvers<TContext = {}, TypeParent = ResolvedDocumentLocation> {
187 name?: NameResolver<string, TypeParent, TContext>;
188 locations?: LocationsResolver<Maybe<ReadonlyArray<Location>>, TypeParent, TContext>;
189 }
190 type NameResolver<R = string, Parent = ResolvedDocumentLocation, TContext = {}> = Resolver<R, Parent, TContext>;
191 type LocationsResolver<R = Maybe<ReadonlyArray<Location>>, Parent = ResolvedDocumentLocation, TContext = {}> = Resolver<R, Parent, TContext>;
192}
193export declare namespace LocationResolvers {
194 interface Resolvers<TContext = {}, TypeParent = Location> {
195 start?: StartResolver<number, TypeParent, TContext>;
196 end?: EndResolver<number, TypeParent, TContext>;
197 }
198 type StartResolver<R = number, Parent = Location, TContext = {}> = Resolver<R, Parent, TContext>;
199 type EndResolver<R = number, Parent = Location, TContext = {}> = Resolver<R, Parent, TContext>;
200}
201export declare namespace ChangeResolvers {
202 interface Resolvers<TContext = {}, TypeParent = Change> {
203 message?: MessageResolver<string, TypeParent, TContext>;
204 path?: PathResolver<Maybe<string>, TypeParent, TContext>;
205 type?: TypeResolver<string, TypeParent, TContext>;
206 criticality?: CriticalityResolver<Criticality, TypeParent, TContext>;
207 }
208 type MessageResolver<R = string, Parent = Change, TContext = {}> = Resolver<R, Parent, TContext>;
209 type PathResolver<R = Maybe<string>, Parent = Change, TContext = {}> = Resolver<R, Parent, TContext>;
210 type TypeResolver<R = string, Parent = Change, TContext = {}> = Resolver<R, Parent, TContext>;
211 type CriticalityResolver<R = Criticality, Parent = Change, TContext = {}> = Resolver<R, Parent, TContext>;
212}
213export declare namespace CriticalityResolvers {
214 interface Resolvers<TContext = {}, TypeParent = Criticality> {
215 level?: LevelResolver<CriticalityLevel, TypeParent, TContext>;
216 reason?: ReasonResolver<Maybe<string>, TypeParent, TContext>;
217 }
218 type LevelResolver<R = CriticalityLevel, Parent = Criticality, TContext = {}> = Resolver<R, Parent, TContext>;
219 type ReasonResolver<R = Maybe<string>, Parent = Criticality, TContext = {}> = Resolver<R, Parent, TContext>;
220}
221export declare namespace InvalidDocumentResolvers {
222 interface Resolvers<TContext = {}, TypeParent = InvalidDocument> {
223 source?: SourceResolver<DocumentSource, TypeParent, TContext>;
224 errors?: ErrorsResolver<Maybe<ReadonlyArray<GraphQlError>>, TypeParent, TContext>;
225 }
226 type SourceResolver<R = DocumentSource, Parent = InvalidDocument, TContext = {}> = Resolver<R, Parent, TContext>;
227 type ErrorsResolver<R = Maybe<ReadonlyArray<GraphQlError>>, Parent = InvalidDocument, TContext = {}> = Resolver<R, Parent, TContext>;
228}
229export declare namespace GraphQlErrorResolvers {
230 interface Resolvers<TContext = {}, TypeParent = GraphQlError> {
231 /** A message describing the Error for debugging purposes. */
232 message?: MessageResolver<string, TypeParent, TContext>;
233 /** An array of { line, column } locations within the source GraphQL document which correspond to this error. Errors during validation often contain multiple locations, for example to point out two things with the same name. Errors during execution include a single location, the field which produced the error. */
234 locations?: LocationsResolver<Maybe<ReadonlyArray<SourceLocation>>, TypeParent, TContext>;
235 /** An array of character offsets within the source GraphQL document which correspond to this error. */
236 positions?: PositionsResolver<Maybe<ReadonlyArray<Maybe<number>>>, TypeParent, TContext>;
237 }
238 type MessageResolver<R = string, Parent = GraphQlError, TContext = {}> = Resolver<R, Parent, TContext>;
239 type LocationsResolver<R = Maybe<ReadonlyArray<SourceLocation>>, Parent = GraphQlError, TContext = {}> = Resolver<R, Parent, TContext>;
240 type PositionsResolver<R = Maybe<ReadonlyArray<Maybe<number>>>, Parent = GraphQlError, TContext = {}> = Resolver<R, Parent, TContext>;
241}
242export declare namespace SourceLocationResolvers {
243 interface Resolvers<TContext = {}, TypeParent = SourceLocation> {
244 line?: LineResolver<number, TypeParent, TContext>;
245 column?: ColumnResolver<number, TypeParent, TContext>;
246 }
247 type LineResolver<R = number, Parent = SourceLocation, TContext = {}> = Resolver<R, Parent, TContext>;
248 type ColumnResolver<R = number, Parent = SourceLocation, TContext = {}> = Resolver<R, Parent, TContext>;
249}
250export declare namespace SimilarResolvers {
251 interface Resolvers<TContext = {}, TypeParent = ResolvedSimilar> {
252 name?: NameResolver<string, TypeParent, TContext>;
253 best?: BestResolver<Match, TypeParent, TContext>;
254 types?: TypesResolver<Maybe<ReadonlyArray<Match>>, TypeParent, TContext>;
255 }
256 type NameResolver<R = string, Parent = ResolvedSimilar, TContext = {}> = Resolver<R, Parent, TContext>;
257 type BestResolver<R = Match, Parent = ResolvedSimilar, TContext = {}> = Resolver<R, Parent, TContext>;
258 type TypesResolver<R = Maybe<ReadonlyArray<Match>>, Parent = ResolvedSimilar, TContext = {}> = Resolver<R, Parent, TContext>;
259}
260export declare namespace MatchResolvers {
261 interface Resolvers<TContext = {}, TypeParent = Match> {
262 name?: NameResolver<string, TypeParent, TContext>;
263 rating?: RatingResolver<number, TypeParent, TContext>;
264 }
265 type NameResolver<R = string, Parent = Match, TContext = {}> = Resolver<R, Parent, TContext>;
266 type RatingResolver<R = number, Parent = Match, TContext = {}> = Resolver<R, Parent, TContext>;
267}
268export declare namespace MutationResolvers {
269 interface Resolvers<TContext = {}, TypeParent = {}> {
270 ping?: PingResolver<string, TypeParent, TContext>;
271 }
272 type PingResolver<R = string, Parent = {}, TContext = {}> = Resolver<R, Parent, TContext>;
273}
274/** Directs the executor to skip this field or fragment when the `if` argument is true. */
275export declare type SkipDirectiveResolver<Result> = DirectiveResolverFn<Result, SkipDirectiveArgs, {}>;
276export interface SkipDirectiveArgs {
277 /** Skipped when true. */
278 if: boolean;
279}
280/** Directs the executor to include this field or fragment only when the `if` argument is true. */
281export declare type IncludeDirectiveResolver<Result> = DirectiveResolverFn<Result, IncludeDirectiveArgs, {}>;
282export interface IncludeDirectiveArgs {
283 /** Included when true. */
284 if: boolean;
285}
286/** Marks an element of a GraphQL schema as no longer supported. */
287export declare type DeprecatedDirectiveResolver<Result> = DirectiveResolverFn<Result, DeprecatedDirectiveArgs, {}>;
288export interface DeprecatedDirectiveArgs {
289 /** Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax (as specified by [CommonMark](https://commonmark.org/). */
290 reason?: string;
291}
292export declare type IResolvers<TContext = {}> = {
293 Query?: QueryResolvers.Resolvers<TContext>;
294 SchemaCoverage?: SchemaCoverageResolvers.Resolvers<TContext>;
295 DocumentSource?: DocumentSourceResolvers.Resolvers<TContext>;
296 TypeCoverage?: TypeCoverageResolvers.Resolvers<TContext>;
297 TypeChildCoverage?: TypeChildCoverageResolvers.Resolvers<TContext>;
298 DocumentLocation?: DocumentLocationResolvers.Resolvers<TContext>;
299 Location?: LocationResolvers.Resolvers<TContext>;
300 Change?: ChangeResolvers.Resolvers<TContext>;
301 Criticality?: CriticalityResolvers.Resolvers<TContext>;
302 InvalidDocument?: InvalidDocumentResolvers.Resolvers<TContext>;
303 GraphQlError?: GraphQlErrorResolvers.Resolvers<TContext>;
304 SourceLocation?: SourceLocationResolvers.Resolvers<TContext>;
305 Similar?: SimilarResolvers.Resolvers<TContext>;
306 Match?: MatchResolvers.Resolvers<TContext>;
307 Mutation?: MutationResolvers.Resolvers<TContext>;
308} & {
309 [typeName: string]: never;
310};
311export declare type IDirectiveResolvers<Result> = {
312 skip?: SkipDirectiveResolver<Result>;
313 include?: IncludeDirectiveResolver<Result>;
314 deprecated?: DeprecatedDirectiveResolver<Result>;
315} & {
316 [directiveName: string]: never;
317};