@graphql-inspector/action
Version:
GraphQL Inspector functionality for GitHub Actions
22 lines (21 loc) • 1.14 kB
JavaScript
import { diffArrays, isNotEqual } from '../utils/compare.js';
import { fieldArgumentDefaultChanged, fieldArgumentDescriptionChanged, fieldArgumentTypeChanged, } from './changes/argument.js';
export function changesInArgument(type, field, oldArg, newArg, addChange) {
if (isNotEqual(oldArg.description, newArg.description)) {
addChange(fieldArgumentDescriptionChanged(type, field, oldArg, newArg));
}
if (isNotEqual(oldArg.defaultValue, newArg.defaultValue)) {
if (Array.isArray(oldArg.defaultValue) && Array.isArray(newArg.defaultValue)) {
const diff = diffArrays(oldArg.defaultValue, newArg.defaultValue);
if (diff.length > 0) {
addChange(fieldArgumentDefaultChanged(type, field, oldArg, newArg));
}
}
else if (JSON.stringify(oldArg.defaultValue) !== JSON.stringify(newArg.defaultValue)) {
addChange(fieldArgumentDefaultChanged(type, field, oldArg, newArg));
}
}
if (isNotEqual(oldArg.type.toString(), newArg.type.toString())) {
addChange(fieldArgumentTypeChanged(type, field, oldArg, newArg));
}
}