UNPKG

1.99 kBTypeScriptView Raw
1import { GraphQLSchema } from '../type/schema';
2
3export const BreakingChangeType: {
4 TYPE_REMOVED: 'TYPE_REMOVED';
5 TYPE_CHANGED_KIND: 'TYPE_CHANGED_KIND';
6 TYPE_REMOVED_FROM_UNION: 'TYPE_REMOVED_FROM_UNION';
7 VALUE_REMOVED_FROM_ENUM: 'VALUE_REMOVED_FROM_ENUM';
8 REQUIRED_INPUT_FIELD_ADDED: 'REQUIRED_INPUT_FIELD_ADDED';
9 IMPLEMENTED_INTERFACE_REMOVED: 'IMPLEMENTED_INTERFACE_REMOVED';
10 FIELD_REMOVED: 'FIELD_REMOVED';
11 FIELD_CHANGED_KIND: 'FIELD_CHANGED_KIND';
12 REQUIRED_ARG_ADDED: 'REQUIRED_ARG_ADDED';
13 ARG_REMOVED: 'ARG_REMOVED';
14 ARG_CHANGED_KIND: 'ARG_CHANGED_KIND';
15 DIRECTIVE_REMOVED: 'DIRECTIVE_REMOVED';
16 DIRECTIVE_ARG_REMOVED: 'DIRECTIVE_ARG_REMOVED';
17 REQUIRED_DIRECTIVE_ARG_ADDED: 'REQUIRED_DIRECTIVE_ARG_ADDED';
18 DIRECTIVE_REPEATABLE_REMOVED: 'DIRECTIVE_REPEATABLE_REMOVED';
19 DIRECTIVE_LOCATION_REMOVED: 'DIRECTIVE_LOCATION_REMOVED';
20};
21
22export const DangerousChangeType: {
23 VALUE_ADDED_TO_ENUM: 'VALUE_ADDED_TO_ENUM';
24 TYPE_ADDED_TO_UNION: 'TYPE_ADDED_TO_UNION';
25 OPTIONAL_INPUT_FIELD_ADDED: 'OPTIONAL_INPUT_FIELD_ADDED';
26 OPTIONAL_ARG_ADDED: 'OPTIONAL_ARG_ADDED';
27 IMPLEMENTED_INTERFACE_ADDED: 'IMPLEMENTED_INTERFACE_ADDED';
28 ARG_DEFAULT_VALUE_CHANGE: 'ARG_DEFAULT_VALUE_CHANGE';
29};
30
31export interface BreakingChange {
32 type: keyof typeof BreakingChangeType;
33 description: string;
34}
35
36export interface DangerousChange {
37 type: keyof typeof DangerousChangeType;
38 description: string;
39}
40
41/**
42 * Given two schemas, returns an Array containing descriptions of all the types
43 * of breaking changes covered by the other functions down below.
44 */
45export function findBreakingChanges(
46 oldSchema: GraphQLSchema,
47 newSchema: GraphQLSchema,
48): Array<BreakingChange>;
49
50/**
51 * Given two schemas, returns an Array containing descriptions of all the types
52 * of potentially dangerous changes covered by the other functions down below.
53 */
54export function findDangerousChanges(
55 oldSchema: GraphQLSchema,
56 newSchema: GraphQLSchema,
57): Array<DangerousChange>;