@graphql-inspector/core
Version:
Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.
27 lines (26 loc) • 1.05 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.safeUnreachable = void 0;
const graphql_js_1 = require("../../utils/graphql.js");
const path_js_1 = require("../../utils/path.js");
const change_js_1 = require("../changes/change.js");
const safeUnreachable = ({ changes, oldSchema }) => {
const reachable = (0, graphql_js_1.getReachableTypes)(oldSchema);
return changes.map(change => {
if (change.criticality.level === change_js_1.CriticalityLevel.Breaking && change.path) {
const [typeName] = (0, path_js_1.parsePath)(change.path);
if (!reachable.has(typeName)) {
return {
...change,
criticality: {
...change.criticality,
level: change_js_1.CriticalityLevel.NonBreaking,
},
message: 'Unreachable from root',
};
}
}
return change;
});
};
exports.safeUnreachable = safeUnreachable;
;