@graphql-inspector/cli
Version:
Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.
18 lines (17 loc) • 898 B
JavaScript
import { Kind } from 'graphql';
import { compareDirectiveLists } from '../utils/compare.js';
import { directiveUsageAdded, directiveUsageChanged, directiveUsageRemoved, } from './changes/directive-usage.js';
export function changesInScalar(oldScalar, newScalar, addChange) {
compareDirectiveLists(oldScalar?.astNode?.directives || [], newScalar.astNode?.directives || [], {
onAdded(directive) {
addChange(directiveUsageAdded(Kind.SCALAR_TYPE_DEFINITION, directive, newScalar, oldScalar === null));
directiveUsageChanged(null, directive, addChange, newScalar);
},
onMutual(directive) {
directiveUsageChanged(directive.oldVersion, directive.newVersion, addChange, newScalar);
},
onRemoved(directive) {
addChange(directiveUsageRemoved(Kind.SCALAR_TYPE_DEFINITION, directive, oldScalar));
},
});
}