@apollo/federation
Version:
Apollo Federation Utilities
28 lines • 1.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.requiresUsedOnBase = void 0;
const graphql_1 = require("graphql");
const utils_1 = require("../../utils");
const requiresUsedOnBase = ({ name: serviceName, typeDefs, }) => {
const errors = [];
(0, graphql_1.visit)(typeDefs, {
ObjectTypeDefinition(typeDefinition) {
if (typeDefinition.fields) {
for (const field of typeDefinition.fields) {
if (field.directives) {
for (const directive of field.directives) {
const name = directive.name.value;
if (name === 'requires') {
errors.push((0, utils_1.errorWithCode)('REQUIRES_USED_ON_BASE', (0, utils_1.logServiceAndType)(serviceName, typeDefinition.name.value, field.name.value) +
`Found extraneous @requires directive. @requires cannot be used on base types.`, (0, utils_1.findDirectivesOnNode)(field, 'requires')));
}
}
}
}
}
},
});
return errors;
};
exports.requiresUsedOnBase = requiresUsedOnBase;
//# sourceMappingURL=requiresUsedOnBase.js.map
;