@graphql-eslint/eslint-plugin
Version:
GraphQL plugin for ESLint
66 lines (63 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.rule = void 0;
const unique_fragment_name_js_1 = require("./unique-fragment-name.js");
const RULE_ID = 'unique-operation-name';
exports.rule = {
meta: {
type: 'suggestion',
docs: {
category: 'Operations',
description: 'Enforce unique operation names across your project.',
url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
requiresSiblings: true,
examples: [
{
title: 'Incorrect',
code: /* GraphQL */ `
# foo.query.graphql
query user {
user {
id
}
}
# bar.query.graphql
query user {
me {
id
}
}
`,
},
{
title: 'Correct',
code: /* GraphQL */ `
# foo.query.graphql
query user {
user {
id
}
}
# bar.query.graphql
query me {
me {
id
}
}
`,
},
],
},
messages: {
[RULE_ID]: 'Operation named "{{ documentName }}" already defined in:\n{{ summary }}',
},
schema: [],
},
create(context) {
return {
'OperationDefinition[name!=undefined]'(node) {
(0, unique_fragment_name_js_1.checkNode)(context, node, RULE_ID);
},
};
},
};