@graphql-inspector/action
Version:
GraphQL Inspector functionality for GitHub Actions
38 lines (37 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.changesInArgument = changesInArgument;
const graphql_1 = require("graphql");
const compare_js_1 = require("../utils/compare.js");
const graphql_js_1 = require("../utils/graphql.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, graphql_js_1.defaultValuesAreEqual)(oldArg, newArg)) {
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 (oldArg?.astNode?.directives || 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 }));
},
});
}
}