Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / eslint / lib / rules / no-duplicate-case.js
1 /**
2  * @fileoverview Rule to disallow a duplicate case label.
3  * @author Dieter Oberkofler
4  * @author Burak Yigit Kaya
5  */
6
7 "use strict";
8
9 //------------------------------------------------------------------------------
10 // Rule Definition
11 //------------------------------------------------------------------------------
12
13 module.exports = {
14     meta: {
15         type: "problem",
16
17         docs: {
18             description: "disallow duplicate case labels",
19             category: "Possible Errors",
20             recommended: true,
21             url: "https://eslint.org/docs/rules/no-duplicate-case"
22         },
23
24         schema: [],
25
26         messages: {
27             unexpected: "Duplicate case label."
28         }
29     },
30
31     create(context) {
32         const sourceCode = context.getSourceCode();
33
34         return {
35             SwitchStatement(node) {
36                 const previousKeys = new Set();
37
38                 for (const switchCase of node.cases) {
39                     if (switchCase.test) {
40                         const key = sourceCode.getText(switchCase.test);
41
42                         if (previousKeys.has(key)) {
43                             context.report({ node: switchCase, messageId: "unexpected" });
44                         } else {
45                             previousKeys.add(key);
46                         }
47                     }
48                 }
49             }
50         };
51     }
52 };