eslint-plugin-perfectionist 2.11.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/index.d.ts +365 -0
  2. package/dist/index.js +86 -129
  3. package/dist/index.mjs +85 -130
  4. package/dist/rules/sort-array-includes.js +120 -94
  5. package/dist/rules/sort-array-includes.mjs +116 -98
  6. package/dist/rules/sort-astro-attributes.js +141 -99
  7. package/dist/rules/sort-astro-attributes.mjs +131 -102
  8. package/dist/rules/sort-classes.js +314 -180
  9. package/dist/rules/sort-classes.mjs +301 -181
  10. package/dist/rules/sort-enums.js +107 -81
  11. package/dist/rules/sort-enums.mjs +103 -81
  12. package/dist/rules/sort-exports.js +65 -67
  13. package/dist/rules/sort-exports.mjs +64 -67
  14. package/dist/rules/sort-imports.js +405 -293
  15. package/dist/rules/sort-imports.mjs +392 -293
  16. package/dist/rules/sort-interfaces.js +234 -175
  17. package/dist/rules/sort-interfaces.mjs +219 -177
  18. package/dist/rules/sort-intersection-types.js +173 -66
  19. package/dist/rules/sort-intersection-types.mjs +166 -66
  20. package/dist/rules/sort-jsx-props.js +200 -129
  21. package/dist/rules/sort-jsx-props.mjs +185 -129
  22. package/dist/rules/sort-maps.js +89 -81
  23. package/dist/rules/sort-maps.mjs +85 -80
  24. package/dist/rules/sort-named-exports.js +94 -76
  25. package/dist/rules/sort-named-exports.mjs +90 -76
  26. package/dist/rules/sort-named-imports.js +103 -87
  27. package/dist/rules/sort-named-imports.mjs +99 -87
  28. package/dist/rules/sort-object-types.js +254 -133
  29. package/dist/rules/sort-object-types.mjs +241 -136
  30. package/dist/rules/sort-objects.js +333 -205
  31. package/dist/rules/sort-objects.mjs +314 -210
  32. package/dist/rules/sort-svelte-attributes.js +146 -104
  33. package/dist/rules/sort-svelte-attributes.mjs +136 -107
  34. package/dist/rules/sort-switch-case.js +185 -0
  35. package/dist/rules/sort-switch-case.mjs +175 -0
  36. package/dist/rules/sort-union-types.js +171 -92
  37. package/dist/rules/sort-union-types.mjs +164 -92
  38. package/dist/rules/sort-variable-declarations.js +142 -0
  39. package/dist/rules/sort-variable-declarations.mjs +136 -0
  40. package/dist/rules/sort-vue-attributes.js +147 -102
  41. package/dist/rules/sort-vue-attributes.mjs +137 -105
  42. package/dist/utils/compare.js +38 -25
  43. package/dist/utils/compare.mjs +36 -25
  44. package/dist/utils/complete.js +4 -4
  45. package/dist/utils/complete.mjs +2 -4
  46. package/dist/utils/create-eslint-rule.js +6 -6
  47. package/dist/utils/create-eslint-rule.mjs +4 -6
  48. package/dist/utils/get-comment-after.js +15 -10
  49. package/dist/utils/get-comment-after.mjs +13 -10
  50. package/dist/utils/get-comment-before.js +19 -10
  51. package/dist/utils/get-comment-before.mjs +17 -10
  52. package/dist/utils/get-group-number.js +13 -8
  53. package/dist/utils/get-group-number.mjs +11 -8
  54. package/dist/utils/get-lines-between.js +7 -7
  55. package/dist/utils/get-lines-between.mjs +5 -7
  56. package/dist/utils/get-node-parent.js +9 -9
  57. package/dist/utils/get-node-parent.mjs +7 -9
  58. package/dist/utils/get-node-range.js +37 -29
  59. package/dist/utils/get-node-range.mjs +35 -29
  60. package/dist/utils/get-source-code.js +7 -0
  61. package/dist/utils/get-source-code.mjs +5 -0
  62. package/dist/utils/is-member-optional.js +8 -8
  63. package/dist/utils/is-member-optional.mjs +6 -8
  64. package/dist/utils/is-partition-comment.js +16 -11
  65. package/dist/utils/is-partition-comment.mjs +14 -11
  66. package/dist/utils/is-positive.js +4 -4
  67. package/dist/utils/is-positive.mjs +2 -4
  68. package/dist/utils/make-fixes.js +36 -27
  69. package/dist/utils/make-fixes.mjs +27 -27
  70. package/dist/utils/pairwise.js +7 -7
  71. package/dist/utils/pairwise.mjs +5 -7
  72. package/dist/utils/range-to-diff.js +7 -7
  73. package/dist/utils/range-to-diff.mjs +5 -7
  74. package/dist/utils/sort-nodes.js +6 -5
  75. package/dist/utils/sort-nodes.mjs +4 -5
  76. package/dist/utils/to-single-line.js +4 -4
  77. package/dist/utils/to-single-line.mjs +2 -4
  78. package/dist/utils/use-groups.js +29 -23
  79. package/dist/utils/use-groups.mjs +27 -23
  80. package/package.json +14 -19
  81. package/readme.md +87 -162
  82. package/dist/configs/recommended-alphabetical.js +0 -9
  83. package/dist/configs/recommended-alphabetical.mjs +0 -10
  84. package/dist/configs/recommended-line-length.js +0 -9
  85. package/dist/configs/recommended-line-length.mjs +0 -10
  86. package/dist/configs/recommended-natural.js +0 -9
  87. package/dist/configs/recommended-natural.mjs +0 -10
  88. package/dist/package.json.js +0 -4
  89. package/dist/package.json.mjs +0 -4
  90. package/dist/typings/index.js +0 -29
  91. package/dist/typings/index.mjs +0 -29
package/dist/index.mjs CHANGED
@@ -1,136 +1,91 @@
1
- import sortIntersectionTypes, { RULE_NAME as RULE_NAME$e } from "./rules/sort-intersection-types.mjs";
2
- import sortSvelteAttributes, { RULE_NAME as RULE_NAME$d } from "./rules/sort-svelte-attributes.mjs";
3
- import sortAstroAttributes, { RULE_NAME as RULE_NAME$1 } from "./rules/sort-astro-attributes.mjs";
4
- import sortArrayIncludes, { RULE_NAME } from "./rules/sort-array-includes.mjs";
5
- import sortVueAttributes, { RULE_NAME as RULE_NAME$g } from "./rules/sort-vue-attributes.mjs";
6
- import sortNamedExports, { RULE_NAME as RULE_NAME$9 } from "./rules/sort-named-exports.mjs";
7
- import sortNamedImports, { RULE_NAME as RULE_NAME$a } from "./rules/sort-named-imports.mjs";
8
- import sortObjectTypes, { RULE_NAME as RULE_NAME$b } from "./rules/sort-object-types.mjs";
9
- import sortUnionTypes, { RULE_NAME as RULE_NAME$f } from "./rules/sort-union-types.mjs";
10
- import sortInterfaces, { RULE_NAME as RULE_NAME$6 } from "./rules/sort-interfaces.mjs";
11
- import sortJsxProps, { RULE_NAME as RULE_NAME$7 } from "./rules/sort-jsx-props.mjs";
12
- import sortExports, { RULE_NAME as RULE_NAME$4 } from "./rules/sort-exports.mjs";
13
- import sortImports, { RULE_NAME as RULE_NAME$5 } from "./rules/sort-imports.mjs";
14
- import sortObjects, { RULE_NAME as RULE_NAME$c } from "./rules/sort-objects.mjs";
15
- import sortClasses, { RULE_NAME as RULE_NAME$2 } from "./rules/sort-classes.mjs";
16
- import sortEnums, { RULE_NAME as RULE_NAME$3 } from "./rules/sort-enums.mjs";
17
- import sortMaps, { RULE_NAME as RULE_NAME$8 } from "./rules/sort-maps.mjs";
18
- import { SortType, SortOrder } from "./typings/index.mjs";
19
- import { name } from "./package.json.mjs";
20
- let createConfigWithOptions = (options) => {
21
- let recommendedRules = {
22
- [RULE_NAME$5]: [
23
- "error",
24
- {
25
- groups: [
26
- "type",
27
- ["builtin", "external"],
28
- "internal-type",
29
- "internal",
30
- ["parent-type", "sibling-type", "index-type"],
31
- ["parent", "sibling", "index"],
32
- "object",
33
- "unknown"
34
- ],
35
- "custom-groups": {
36
- value: {},
37
- type: {}
38
- },
39
- "newlines-between": "always",
40
- "internal-pattern": ["~/**"]
41
- }
42
- ],
43
- [RULE_NAME$2]: [
44
- "error",
45
- {
46
- groups: [
47
- "index-signature",
48
- "static-property",
49
- "private-property",
50
- "property",
51
- "constructor",
52
- "static-method",
53
- "private-method",
54
- "method",
55
- ["get-method", "set-method"],
56
- "unknown"
57
- ]
58
- }
59
- ],
60
- [RULE_NAME$c]: [
61
- "error",
62
- {
63
- "partition-by-comment": false
64
- }
65
- ],
66
- [RULE_NAME]: [
67
- "error",
68
- {
69
- "spread-last": true
70
- }
71
- ],
72
- [RULE_NAME$e]: ["error"],
73
- [RULE_NAME$d]: ["error"],
74
- [RULE_NAME$1]: ["error"],
75
- [RULE_NAME$g]: ["error"],
76
- [RULE_NAME$9]: ["error"],
77
- [RULE_NAME$a]: ["error"],
78
- [RULE_NAME$b]: ["error"],
79
- [RULE_NAME$f]: ["error"],
80
- [RULE_NAME$6]: ["error"],
81
- [RULE_NAME$7]: ["error"],
82
- [RULE_NAME$4]: ["error"],
83
- [RULE_NAME$3]: ["error"],
84
- [RULE_NAME$8]: ["error"]
85
- };
86
- return {
87
- rules: Object.fromEntries(
88
- Object.entries(recommendedRules).map(([key, [message, baseOptions = {}]]) => [
89
- `perfectionist/${key}`,
90
- [message, Object.assign(baseOptions, options)]
91
- ])
92
- ),
93
- plugins: ["perfectionist"]
94
- };
95
- };
96
- const mod = {
1
+ import sortVariableDeclarations from './rules/sort-variable-declarations.mjs'
2
+ import sortIntersectionTypes from './rules/sort-intersection-types.mjs'
3
+ import sortSvelteAttributes from './rules/sort-svelte-attributes.mjs'
4
+ import sortAstroAttributes from './rules/sort-astro-attributes.mjs'
5
+ import sortArrayIncludes from './rules/sort-array-includes.mjs'
6
+ import sortVueAttributes from './rules/sort-vue-attributes.mjs'
7
+ import sortNamedImports from './rules/sort-named-imports.mjs'
8
+ import sortNamedExports from './rules/sort-named-exports.mjs'
9
+ import sortObjectTypes from './rules/sort-object-types.mjs'
10
+ import sortSwitchCase from './rules/sort-switch-case.mjs'
11
+ import sortUnionTypes from './rules/sort-union-types.mjs'
12
+ import sortInterfaces from './rules/sort-interfaces.mjs'
13
+ import sortJsxProps from './rules/sort-jsx-props.mjs'
14
+ import sortClasses from './rules/sort-classes.mjs'
15
+ import sortImports from './rules/sort-imports.mjs'
16
+ import sortExports from './rules/sort-exports.mjs'
17
+ import sortObjects from './rules/sort-objects.mjs'
18
+ import sortEnums from './rules/sort-enums.mjs'
19
+ import sortMaps from './rules/sort-maps.mjs'
20
+ let name = 'perfectionist'
21
+ let plugin = {
97
22
  rules: {
98
- [RULE_NAME]: sortArrayIncludes,
99
- [RULE_NAME$1]: sortAstroAttributes,
100
- [RULE_NAME$2]: sortClasses,
101
- [RULE_NAME$3]: sortEnums,
102
- [RULE_NAME$4]: sortExports,
103
- [RULE_NAME$5]: sortImports,
104
- [RULE_NAME$6]: sortInterfaces,
105
- [RULE_NAME$7]: sortJsxProps,
106
- [RULE_NAME$8]: sortMaps,
107
- [RULE_NAME$9]: sortNamedExports,
108
- [RULE_NAME$a]: sortNamedImports,
109
- [RULE_NAME$b]: sortObjectTypes,
110
- [RULE_NAME$c]: sortObjects,
111
- [RULE_NAME$d]: sortSvelteAttributes,
112
- [RULE_NAME$e]: sortIntersectionTypes,
113
- [RULE_NAME$f]: sortUnionTypes,
114
- [RULE_NAME$g]: sortVueAttributes
23
+ 'sort-variable-declarations': sortVariableDeclarations,
24
+ 'sort-intersection-types': sortIntersectionTypes,
25
+ 'sort-svelte-attributes': sortSvelteAttributes,
26
+ 'sort-astro-attributes': sortAstroAttributes,
27
+ 'sort-vue-attributes': sortVueAttributes,
28
+ 'sort-array-includes': sortArrayIncludes,
29
+ 'sort-named-imports': sortNamedImports,
30
+ 'sort-named-exports': sortNamedExports,
31
+ 'sort-object-types': sortObjectTypes,
32
+ 'sort-union-types': sortUnionTypes,
33
+ 'sort-switch-case': sortSwitchCase,
34
+ 'sort-interfaces': sortInterfaces,
35
+ 'sort-jsx-props': sortJsxProps,
36
+ 'sort-classes': sortClasses,
37
+ 'sort-imports': sortImports,
38
+ 'sort-exports': sortExports,
39
+ 'sort-objects': sortObjects,
40
+ 'sort-enums': sortEnums,
41
+ 'sort-maps': sortMaps,
115
42
  },
43
+ name,
44
+ }
45
+ let getRules = options =>
46
+ Object.fromEntries(
47
+ Object.keys(plugin.rules).map(rule => [
48
+ `${name}/${rule}`,
49
+ ['error', options],
50
+ ]),
51
+ )
52
+ let createConfig = options => ({
53
+ plugins: {
54
+ [name]: plugin,
55
+ },
56
+ rules: getRules(options),
57
+ })
58
+ let createLegacyConfig = options => ({
59
+ rules: getRules(options),
60
+ plugins: [name],
61
+ })
62
+ const index = {
63
+ ...plugin,
116
64
  configs: {
117
- "recommended-alphabetical": createConfigWithOptions({
118
- type: SortType.alphabetical,
119
- order: SortOrder.asc,
120
- "ignore-case": false
65
+ 'recommended-alphabetical-legacy': createLegacyConfig({
66
+ type: 'alphabetical',
67
+ order: 'asc',
68
+ }),
69
+ 'recommended-line-length-legacy': createLegacyConfig({
70
+ type: 'line-length',
71
+ order: 'desc',
72
+ }),
73
+ 'recommended-natural-legacy': createLegacyConfig({
74
+ type: 'natural',
75
+ order: 'asc',
76
+ }),
77
+ 'recommended-alphabetical': createConfig({
78
+ type: 'alphabetical',
79
+ order: 'asc',
80
+ }),
81
+ 'recommended-line-length': createConfig({
82
+ type: 'line-length',
83
+ order: 'desc',
121
84
  }),
122
- "recommended-natural": createConfigWithOptions({
123
- type: SortType.natural,
124
- order: SortOrder.asc,
125
- "ignore-case": false
85
+ 'recommended-natural': createConfig({
86
+ type: 'natural',
87
+ order: 'asc',
126
88
  }),
127
- "recommended-line-length": createConfigWithOptions({
128
- type: SortType["line-length"],
129
- order: SortOrder.desc
130
- })
131
89
  },
132
- name
133
- };
134
- export {
135
- mod as default
136
- };
90
+ }
91
+ export { index as default }
@@ -1,129 +1,155 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const createEslintRule = require("../utils/create-eslint-rule.js");
4
- const toSingleLine = require("../utils/to-single-line.js");
5
- const rangeToDiff = require("../utils/range-to-diff.js");
6
- const isPositive = require("../utils/is-positive.js");
7
- const index = require("../typings/index.js");
8
- const sortNodes = require("../utils/sort-nodes.js");
9
- const makeFixes = require("../utils/make-fixes.js");
10
- const complete = require("../utils/complete.js");
11
- const pairwise = require("../utils/pairwise.js");
12
- const compare = require("../utils/compare.js");
13
- const RULE_NAME = "sort-array-includes";
1
+ 'use strict'
2
+ const createEslintRule = require('../utils/create-eslint-rule.js')
3
+ const getGroupNumber = require('../utils/get-group-number.js')
4
+ const getSourceCode = require('../utils/get-source-code.js')
5
+ const toSingleLine = require('../utils/to-single-line.js')
6
+ const rangeToDiff = require('../utils/range-to-diff.js')
7
+ const isPositive = require('../utils/is-positive.js')
8
+ const sortNodes = require('../utils/sort-nodes.js')
9
+ const makeFixes = require('../utils/make-fixes.js')
10
+ const complete = require('../utils/complete.js')
11
+ const pairwise = require('../utils/pairwise.js')
12
+ const compare = require('../utils/compare.js')
14
13
  const sortArrayIncludes = createEslintRule.createEslintRule({
15
- name: RULE_NAME,
14
+ name: 'sort-array-includes',
16
15
  meta: {
17
- type: "suggestion",
16
+ type: 'suggestion',
18
17
  docs: {
19
- description: "enforce sorted arrays before include method"
18
+ description: 'Enforce sorted arrays before include method.',
20
19
  },
21
- fixable: "code",
20
+ fixable: 'code',
22
21
  schema: [
23
22
  {
24
- type: "object",
23
+ type: 'object',
25
24
  properties: {
26
25
  type: {
27
- enum: [
28
- index.SortType.alphabetical,
29
- index.SortType.natural,
30
- index.SortType["line-length"]
31
- ],
32
- default: index.SortType.alphabetical,
33
- type: "string"
26
+ description: 'Specifies the sorting method.',
27
+ type: 'string',
28
+ enum: ['alphabetical', 'natural', 'line-length'],
34
29
  },
35
30
  order: {
36
- enum: [index.SortOrder.asc, index.SortOrder.desc],
37
- default: index.SortOrder.asc,
38
- type: "string"
31
+ description:
32
+ 'Determines whether the sorted items should be in ascending or descending order.',
33
+ type: 'string',
34
+ enum: ['asc', 'desc'],
39
35
  },
40
- "ignore-case": {
41
- type: "boolean",
42
- default: false
36
+ ignoreCase: {
37
+ description:
38
+ 'Controls whether sorting should be case-sensitive or not.',
39
+ type: 'boolean',
40
+ },
41
+ groupKind: {
42
+ description: 'Specifies top-level groups.',
43
+ enum: ['mixed', 'literals-first', 'spreads-first'],
44
+ type: 'string',
43
45
  },
44
- "spread-last": {
45
- type: "boolean",
46
- default: false
47
- }
48
46
  },
49
- additionalProperties: false
50
- }
47
+ additionalProperties: false,
48
+ },
51
49
  ],
52
50
  messages: {
53
- unexpectedArrayIncludesOrder: 'Expected "{{right}}" to come before "{{left}}"'
54
- }
51
+ unexpectedArrayIncludesOrder:
52
+ 'Expected "{{right}}" to come before "{{left}}".',
53
+ },
55
54
  },
56
55
  defaultOptions: [
57
56
  {
58
- type: index.SortType.alphabetical,
59
- order: index.SortOrder.asc
60
- }
57
+ type: 'alphabetical',
58
+ order: 'asc',
59
+ ignoreCase: true,
60
+ groupKind: 'literals-first',
61
+ },
61
62
  ],
62
- create: (context) => ({
63
- MemberExpression: (node) => {
64
- if ((node.object.type === "ArrayExpression" || node.object.type === "NewExpression") && node.property.type === "Identifier" && node.property.name === "includes") {
65
- let elements = node.object.type === "ArrayExpression" ? node.object.elements : node.object.arguments;
63
+ create: context => ({
64
+ MemberExpression: node => {
65
+ if (
66
+ (node.object.type === 'ArrayExpression' ||
67
+ node.object.type === 'NewExpression') &&
68
+ node.property.type === 'Identifier' &&
69
+ node.property.name === 'includes'
70
+ ) {
71
+ let elements =
72
+ node.object.type === 'ArrayExpression'
73
+ ? node.object.elements
74
+ : node.object.arguments
66
75
  if (elements.length > 1) {
67
76
  let options = complete.complete(context.options.at(0), {
68
- type: index.SortType.alphabetical,
69
- order: index.SortOrder.asc,
70
- "ignore-case": false,
71
- "spread-last": false
72
- });
73
- let nodes = elements.reduce(
74
- (accumulator, element) => {
75
- if (element !== null) {
76
- accumulator.at(0).push({
77
- name: element.type === "Literal" ? `${element.value}` : context.sourceCode.text.slice(...element.range),
78
- size: rangeToDiff.rangeToDiff(element.range),
79
- type: element.type,
80
- node: element
81
- });
82
- }
83
- return accumulator;
84
- },
85
- [[], []]
86
- ).flat();
77
+ groupKind: 'literals-first',
78
+ type: 'alphabetical',
79
+ ignoreCase: true,
80
+ order: 'asc',
81
+ })
82
+ let sourceCode = getSourceCode.getSourceCode(context)
83
+ let nodes = elements
84
+ .reduce(
85
+ (accumulator, element) => {
86
+ if (element !== null) {
87
+ let group = 'unknown'
88
+ if (typeof options.groupKind === 'string') {
89
+ group =
90
+ element.type === 'SpreadElement' ? 'spread' : 'literal'
91
+ }
92
+ accumulator.at(0).push({
93
+ name:
94
+ element.type === 'Literal'
95
+ ? `${element.value}`
96
+ : sourceCode.text.slice(...element.range),
97
+ size: rangeToDiff.rangeToDiff(element.range),
98
+ type: element.type,
99
+ node: element,
100
+ group,
101
+ })
102
+ }
103
+ return accumulator
104
+ },
105
+ [[], []],
106
+ )
107
+ .flat()
87
108
  pairwise.pairwise(nodes, (left, right) => {
88
- let compareValue;
89
- if (options["spread-last"] && left.node.type === "Literal" && right.node.type === "SpreadElement") {
90
- compareValue = false;
91
- } else if (options["spread-last"] && left.node.type === "SpreadElement" && right.node.type === "Literal") {
92
- compareValue = true;
93
- } else {
94
- compareValue = isPositive.isPositive(compare.compare(left, right, options));
109
+ let groupKindOrder = ['unknown']
110
+ if (typeof options.groupKind === 'string') {
111
+ groupKindOrder =
112
+ options.groupKind === 'literals-first'
113
+ ? ['literal', 'spread']
114
+ : ['spread', 'literal']
95
115
  }
96
- if (compareValue) {
116
+ let leftNum = getGroupNumber.getGroupNumber(groupKindOrder, left)
117
+ let rightNum = getGroupNumber.getGroupNumber(groupKindOrder, right)
118
+ if (
119
+ (options.groupKind !== 'mixed' && leftNum > rightNum) ||
120
+ ((options.groupKind === 'mixed' || leftNum === rightNum) &&
121
+ isPositive.isPositive(compare.compare(left, right, options)))
122
+ ) {
97
123
  context.report({
98
- messageId: "unexpectedArrayIncludesOrder",
124
+ messageId: 'unexpectedArrayIncludesOrder',
99
125
  data: {
100
126
  left: toSingleLine.toSingleLine(left.name),
101
- right: toSingleLine.toSingleLine(right.name)
127
+ right: toSingleLine.toSingleLine(right.name),
102
128
  },
103
129
  node: right.node,
104
- fix: (fixer) => {
105
- let sortedNodes = sortNodes.sortNodes(nodes, options);
106
- if (options["spread-last"]) {
107
- for (let i = 0, max = sortedNodes.length; i < max; i++) {
108
- if (sortedNodes.at(i).node.type === "SpreadElement") {
109
- sortedNodes.push(sortedNodes.splice(i, 1).at(0));
110
- }
111
- }
112
- }
130
+ fix: fixer => {
131
+ let sortedNodes =
132
+ options.groupKind !== 'mixed'
133
+ ? groupKindOrder
134
+ .map(group => nodes.filter(n => n.group === group))
135
+ .map(groupedNodes =>
136
+ sortNodes.sortNodes(groupedNodes, options),
137
+ )
138
+ .flat()
139
+ : sortNodes.sortNodes(nodes, options)
113
140
  return makeFixes.makeFixes(
114
141
  fixer,
115
142
  nodes,
116
143
  sortedNodes,
117
- context.sourceCode
118
- );
119
- }
120
- });
144
+ sourceCode,
145
+ )
146
+ },
147
+ })
121
148
  }
122
- });
149
+ })
123
150
  }
124
151
  }
125
- }
126
- })
127
- });
128
- exports.RULE_NAME = RULE_NAME;
129
- exports.default = sortArrayIncludes;
152
+ },
153
+ }),
154
+ })
155
+ module.exports = sortArrayIncludes