in src/rule-graphql-naming.js [54:89]
function validateTemplate(context, taggedTemplateExpression, keyName) {
const ast = getGraphQLAST(taggedTemplateExpression);
if (!ast) {
return;
}
const moduleName = getModuleName(context.getFilename());
ast.definitions.forEach(def => {
if (!def.name) {
// no name, covered by graphql-naming/TaggedTemplateExpression
return;
}
const definitionName = def.name.value;
if (def.kind === 'FragmentDefinition') {
if (keyName) {
const expectedName = moduleName + '_' + keyName;
if (definitionName !== expectedName) {
context.report({
loc: getLoc(context, taggedTemplateExpression, def.name),
message:
'Container fragment names must be `<ModuleName>_<propName>`. ' +
'Got `{{actual}}`, expected `{{expected}}`.',
data: {
actual: definitionName,
expected: expectedName
},
fix: fixer =>
fixer.replaceTextRange(
getRange(context, taggedTemplateExpression, def.name),
expectedName
)
});
}
}
}
});
}