UNPKG

@graphql-inspector/action

Version:

GraphQL Inspector functionality for GitHub Actions

16 lines (15 loc) 769 B
import { getReachableTypes } from '../../utils/graphql.js'; import { parsePath } from '../../utils/path.js'; import { CriticalityLevel } from './../changes/change.js'; export const safeUnreachable = ({ changes, oldSchema }) => { const reachable = getReachableTypes(oldSchema); return changes.map(change => { if (change.criticality.level === CriticalityLevel.Breaking && change.path) { const [typeName] = parsePath(change.path); if (!reachable.has(typeName)) { return Object.assign(Object.assign({}, change), { criticality: Object.assign(Object.assign({}, change.criticality), { level: CriticalityLevel.NonBreaking }), message: 'Unreachable from root' }); } } return change; }); };