• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * @fileoverview Disallow sparse arrays
3 * @author Nicholas C. Zakas
4 */
5"use strict";
6
7//------------------------------------------------------------------------------
8// Rule Definition
9//------------------------------------------------------------------------------
10
11module.exports = {
12    meta: {
13        type: "problem",
14
15        docs: {
16            description: "disallow sparse arrays",
17            category: "Possible Errors",
18            recommended: true,
19            url: "https://eslint.org/docs/rules/no-sparse-arrays"
20        },
21
22        schema: [],
23
24        messages: {
25            unexpectedSparseArray: "Unexpected comma in middle of array."
26        }
27    },
28
29    create(context) {
30
31
32        //--------------------------------------------------------------------------
33        // Public
34        //--------------------------------------------------------------------------
35
36        return {
37
38            ArrayExpression(node) {
39
40                const emptySpot = node.elements.indexOf(null) > -1;
41
42                if (emptySpot) {
43                    context.report({ node, messageId: "unexpectedSparseArray" });
44                }
45            }
46
47        };
48
49    }
50};
51