UNPKG

@graphql-inspector/action

Version:

GraphQL Inspector functionality for GitHub Actions

45 lines (44 loc) 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.changesInArgument = changesInArgument; const graphql_1 = require("graphql"); const compare_js_1 = require("../utils/compare.js"); const argument_js_1 = require("./changes/argument.js"); const directive_usage_js_1 = require("./changes/directive-usage.js"); function changesInArgument(type, field, oldArg, newArg, addChange) { if ((0, compare_js_1.isNotEqual)(oldArg?.description, newArg.description)) { addChange((0, argument_js_1.fieldArgumentDescriptionChanged)(type, field, oldArg, newArg)); } if ((0, compare_js_1.isNotEqual)(oldArg?.defaultValue, newArg.defaultValue)) { if (Array.isArray(oldArg?.defaultValue) && Array.isArray(newArg.defaultValue)) { const diff = (0, compare_js_1.diffArrays)(oldArg.defaultValue, newArg.defaultValue); if (diff.length > 0) { addChange((0, argument_js_1.fieldArgumentDefaultChanged)(type, field, oldArg, newArg)); } } else if (JSON.stringify(oldArg?.defaultValue) !== JSON.stringify(newArg.defaultValue)) { addChange((0, argument_js_1.fieldArgumentDefaultChanged)(type, field, oldArg, newArg)); } } if ((0, compare_js_1.isNotEqual)(oldArg?.type.toString(), newArg.type.toString())) { addChange((0, argument_js_1.fieldArgumentTypeChanged)(type, field, oldArg, newArg)); } if (newArg.astNode?.directives) { (0, compare_js_1.compareDirectiveLists)(oldArg?.astNode?.directives || [], newArg.astNode.directives || [], { onAdded(directive) { addChange((0, directive_usage_js_1.directiveUsageAdded)(graphql_1.Kind.ARGUMENT, directive, { argument: newArg, field, type, }, oldArg === null)); (0, directive_usage_js_1.directiveUsageChanged)(null, directive, addChange, type, field, newArg); }, onMutual(directive) { (0, directive_usage_js_1.directiveUsageChanged)(directive.oldVersion, directive.newVersion, addChange, type, field, newArg); }, onRemoved(directive) { addChange((0, directive_usage_js_1.directiveUsageRemoved)(graphql_1.Kind.ARGUMENT, directive, { argument: oldArg, field, type })); }, }); } }