UNPKG

@graphql-inspector/core

Version:

Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.

30 lines (29 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.changesInInterface = changesInInterface; const graphql_1 = require("graphql"); const compare_js_1 = require("../utils/compare.js"); const directive_usage_js_1 = require("./changes/directive-usage.js"); const field_js_1 = require("./changes/field.js"); const field_js_2 = require("./field.js"); function changesInInterface(oldInterface, newInterface, addChange) { (0, compare_js_1.compareLists)(Object.values(oldInterface.getFields()), Object.values(newInterface.getFields()), { onAdded(field) { addChange((0, field_js_1.fieldAdded)(newInterface, field)); }, onRemoved(field) { addChange((0, field_js_1.fieldRemoved)(oldInterface, field)); }, onMutual(field) { (0, field_js_2.changesInField)(oldInterface, field.oldVersion, field.newVersion, addChange); }, }); (0, compare_js_1.compareLists)(oldInterface.astNode?.directives || [], newInterface.astNode?.directives || [], { onAdded(directive) { addChange((0, directive_usage_js_1.directiveUsageAdded)(graphql_1.Kind.INTERFACE_TYPE_DEFINITION, directive, newInterface)); }, onRemoved(directive) { addChange((0, directive_usage_js_1.directiveUsageRemoved)(graphql_1.Kind.INTERFACE_TYPE_DEFINITION, directive, oldInterface)); }, }); }