eslint-plugin-perfectionist 4.9.0 → 4.10.1

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.
@@ -6,10 +6,10 @@ Object.defineProperties(exports, {
6
6
  const commonJsonSchemas = require('../utils/common-json-schemas.js')
7
7
  const reportErrors = require('../utils/report-errors.js')
8
8
  const validateNewlinesAndPartitionConfiguration = require('../utils/validate-newlines-and-partition-configuration.js')
9
+ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
9
10
  const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
10
11
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
11
12
  const types = require('./sort-array-includes/types.js')
12
- const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
13
13
  const doesCustomGroupMatch = require('./sort-array-includes/does-custom-group-match.js')
14
14
  const getMatchingContextOptions = require('../utils/get-matching-context-options.js')
15
15
  const generatePredefinedGroups = require('../utils/generate-predefined-groups.js')
@@ -19,7 +19,6 @@ const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
19
19
  const createEslintRule = require('../utils/create-eslint-rule.js')
20
20
  const reportAllErrors = require('../utils/report-all-errors.js')
21
21
  const shouldPartition = require('../utils/should-partition.js')
22
- const getSourceCode = require('../utils/get-source-code.js')
23
22
  const rangeToDiff = require('../utils/range-to-diff.js')
24
23
  const getSettings = require('../utils/get-settings.js')
25
24
  const isSortable = require('../utils/is-sortable.js')
@@ -118,7 +117,7 @@ let sortArray = ({ availableMessageIds, elements, context }) => {
118
117
  if (!isSortable.isSortable(elements)) {
119
118
  return
120
119
  }
121
- let sourceCode = getSourceCode.getSourceCode(context)
120
+ let { sourceCode, id } = context
122
121
  let settings = getSettings.getSettings(context.settings)
123
122
  let matchedContextOptions =
124
123
  getMatchingContextOptions.getMatchingContextOptions({
@@ -142,7 +141,7 @@ let sortArray = ({ availableMessageIds, elements, context }) => {
142
141
  options,
143
142
  )
144
143
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
145
- ruleName: context.id,
144
+ ruleName: id,
146
145
  sourceCode,
147
146
  })
148
147
  let formattedMembers = elements.reduce(
@@ -229,13 +228,14 @@ let sortArray = ({ availableMessageIds, elements, context }) => {
229
228
  )
230
229
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
231
230
  filteredGroupKindNodes.flatMap(groupedNodes =>
232
- sortNodesByGroups.sortNodesByGroups(groupedNodes, options, {
233
- getGroupCompareOptions: groupNumber =>
234
- getCustomGroupsCompareOptions.getCustomGroupsCompareOptions(
231
+ sortNodesByGroups.sortNodesByGroups({
232
+ getOptionsByGroupNumber:
233
+ getCustomGroupsCompareOptions.buildGetCustomGroupOverriddenOptionsFunction(
235
234
  options,
236
- groupNumber,
237
235
  ),
238
236
  ignoreEslintDisabledNodes,
237
+ groups: options.groups,
238
+ nodes: groupedNodes,
239
239
  }),
240
240
  )
241
241
  reportAllErrors.reportAllErrors({
@@ -2,10 +2,10 @@
2
2
  const commonJsonSchemas = require('../utils/common-json-schemas.js')
3
3
  const reportErrors = require('../utils/report-errors.js')
4
4
  const validateNewlinesAndPartitionConfiguration = require('../utils/validate-newlines-and-partition-configuration.js')
5
+ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
5
6
  const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
6
7
  const types = require('./sort-classes/types.js')
7
8
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
8
- const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
9
9
  const getOverloadSignatureGroups = require('./sort-classes/get-overload-signature-groups.js')
10
10
  const generatePredefinedGroups = require('../utils/generate-predefined-groups.js')
11
11
  const sortNodesByDependencies = require('../utils/sort-nodes-by-dependencies.js')
@@ -19,7 +19,6 @@ const getDecoratorName = require('../utils/get-decorator-name.js')
19
19
  const reportAllErrors = require('../utils/report-all-errors.js')
20
20
  const shouldPartition = require('../utils/should-partition.js')
21
21
  const getGroupNumber = require('../utils/get-group-number.js')
22
- const getSourceCode = require('../utils/get-source-code.js')
23
22
  const rangeToDiff = require('../utils/range-to-diff.js')
24
23
  const getSettings = require('../utils/get-settings.js')
25
24
  const isSortable = require('../utils/is-sortable.js')
@@ -89,9 +88,9 @@ const sortClasses = createEslintRule.createEslintRule({
89
88
  validateNewlinesAndPartitionConfiguration.validateNewlinesAndPartitionConfiguration(
90
89
  options,
91
90
  )
92
- let sourceCode = getSourceCode.getSourceCode(context)
91
+ let { sourceCode, id } = context
93
92
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
94
- ruleName: context.id,
93
+ ruleName: id,
95
94
  sourceCode,
96
95
  })
97
96
  let className = (_a = node.parent.id) == null ? void 0 : _a.name
@@ -477,25 +476,28 @@ const sortClasses = createEslintRule.createEslintRule({
477
476
  },
478
477
  [[]],
479
478
  )
480
- let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
481
- sortNodesByDependencies.sortNodesByDependencies(
482
- formattedNodes.flatMap(nodes2 =>
483
- sortNodesByGroups.sortNodesByGroups(nodes2, options, {
484
- isNodeIgnored: sortingNode =>
485
- getGroupNumber.getGroupNumber(options.groups, sortingNode) ===
486
- options.groups.length,
487
- getGroupCompareOptions: groupNumber =>
488
- getCustomGroupsCompareOptions.getCustomGroupsCompareOptions(
489
- options,
490
- groupNumber,
491
- ),
492
- ignoreEslintDisabledNodes,
493
- }),
494
- ),
479
+ let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes => {
480
+ let nodesSortedByGroups = formattedNodes.flatMap(nodes2 =>
481
+ sortNodesByGroups.sortNodesByGroups({
482
+ isNodeIgnored: sortingNode =>
483
+ getGroupNumber.getGroupNumber(options.groups, sortingNode) ===
484
+ options.groups.length,
485
+ getOptionsByGroupNumber:
486
+ getCustomGroupsCompareOptions.buildGetCustomGroupOverriddenOptionsFunction(
487
+ options,
488
+ ),
489
+ ignoreEslintDisabledNodes,
490
+ groups: options.groups,
491
+ nodes: nodes2,
492
+ }),
493
+ )
494
+ return sortNodesByDependencies.sortNodesByDependencies(
495
+ nodesSortedByGroups,
495
496
  {
496
497
  ignoreEslintDisabledNodes,
497
498
  },
498
499
  )
500
+ }
499
501
  let nodes = formattedNodes.flat()
500
502
  reportAllErrors.reportAllErrors({
501
503
  newlinesBetweenValueGetter: ({
@@ -11,7 +11,6 @@ const getDecoratorName = require('../utils/get-decorator-name.js')
11
11
  const createEslintRule = require('../utils/create-eslint-rule.js')
12
12
  const reportAllErrors = require('../utils/report-all-errors.js')
13
13
  const shouldPartition = require('../utils/should-partition.js')
14
- const getSourceCode = require('../utils/get-source-code.js')
15
14
  const rangeToDiff = require('../utils/range-to-diff.js')
16
15
  const getSettings = require('../utils/get-settings.js')
17
16
  const isSortable = require('../utils/is-sortable.js')
@@ -156,9 +155,9 @@ let sortDecorators$1 = (context, options, decorators) => {
156
155
  if (!isSortable.isSortable(decorators)) {
157
156
  return
158
157
  }
159
- let sourceCode = getSourceCode.getSourceCode(context)
158
+ let { sourceCode, id } = context
160
159
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
161
- ruleName: context.id,
160
+ ruleName: id,
162
161
  sourceCode,
163
162
  })
164
163
  let formattedMembers = decorators.reduce(
@@ -199,8 +198,11 @@ let sortDecorators$1 = (context, options, decorators) => {
199
198
  )
200
199
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
201
200
  formattedMembers.flatMap(nodes2 =>
202
- sortNodesByGroups.sortNodesByGroups(nodes2, options, {
201
+ sortNodesByGroups.sortNodesByGroups({
202
+ getOptionsByGroupNumber: () => ({ options }),
203
203
  ignoreEslintDisabledNodes,
204
+ groups: options.groups,
205
+ nodes: nodes2,
204
206
  }),
205
207
  )
206
208
  let nodes = formattedMembers.flat()
@@ -15,7 +15,6 @@ const createEslintRule = require('../utils/create-eslint-rule.js')
15
15
  const reportAllErrors = require('../utils/report-all-errors.js')
16
16
  const shouldPartition = require('../utils/should-partition.js')
17
17
  const getEnumMembers = require('../utils/get-enum-members.js')
18
- const getSourceCode = require('../utils/get-source-code.js')
19
18
  const rangeToDiff = require('../utils/range-to-diff.js')
20
19
  const getSettings = require('../utils/get-settings.js')
21
20
  const isSortable = require('../utils/is-sortable.js')
@@ -64,9 +63,9 @@ const sortEnums = createEslintRule.createEslintRule({
64
63
  validateNewlinesAndPartitionConfiguration.validateNewlinesAndPartitionConfiguration(
65
64
  options,
66
65
  )
67
- let sourceCode = getSourceCode.getSourceCode(context)
66
+ let { sourceCode, id } = context
68
67
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
69
- ruleName: context.id,
68
+ ruleName: id,
70
69
  sourceCode,
71
70
  })
72
71
  let extractDependencies = (expression, enumName) => {
@@ -98,7 +97,7 @@ const sortEnums = createEslintRule.createEslintRule({
98
97
  }
99
98
  let formattedMembers = members.reduce(
100
99
  (accumulator, member) => {
101
- var _a
100
+ var _a, _b, _c
102
101
  let dependencies = []
103
102
  if (member.initializer) {
104
103
  dependencies = extractDependencies(
@@ -131,6 +130,13 @@ const sortEnums = createEslintRule.createEslintRule({
131
130
  numericValue: member.initializer
132
131
  ? getExpressionNumberValue(member.initializer)
133
132
  : null,
133
+ value:
134
+ ((_b = member.initializer) == null ? void 0 : _b.type) ===
135
+ 'Literal'
136
+ ? (((_c = member.initializer.value) == null
137
+ ? void 0
138
+ : _c.toString()) ?? null)
139
+ : null,
134
140
  isEslintDisabled: isNodeEslintDisabled.isNodeEslintDisabled(
135
141
  member,
136
142
  eslintDisabledLines,
@@ -162,55 +168,40 @@ const sortEnums = createEslintRule.createEslintRule({
162
168
  sortingNode.numericValue !== null &&
163
169
  !Number.isNaN(sortingNode.numericValue),
164
170
  )
165
- let compareOptions = {
171
+ let nodeValueGetter = computeNodeValueGetter({
172
+ isNumericEnum,
173
+ options,
174
+ })
175
+ let overriddenOptions = {
166
176
  ...options,
167
- // Get the enum value rather than the name if needed.
168
- nodeValueGetter:
169
- options.sortByValue || (isNumericEnum && options.forceNumericSort)
170
- ? sortingNode => {
171
- var _a, _b
172
- if (isNumericEnum) {
173
- return sortingNode.numericValue.toString()
174
- }
175
- if (
176
- ((_a = sortingNode.node.initializer) == null
177
- ? void 0
178
- : _a.type) === 'Literal'
179
- ) {
180
- return (
181
- ((_b = sortingNode.node.initializer.value) == null
182
- ? void 0
183
- : _b.toString()) ?? ''
184
- )
185
- }
186
- return ''
187
- }
188
- : null,
189
- /**
190
- * If the enum is numeric, and we sort by value, always use the
191
- * `natural` sort type, which will correctly sort them.
192
- */
193
- type:
194
- isNumericEnum && (options.forceNumericSort || options.sortByValue)
195
- ? 'natural'
196
- : options.type,
177
+ type: computeOptionType({
178
+ isNumericEnum,
179
+ options,
180
+ }),
197
181
  }
198
- let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
199
- sortNodesByDependencies.sortNodesByDependencies(
200
- formattedMembers.flatMap(sortingNodes =>
201
- sortNodesByGroups.sortNodesByGroups(sortingNodes, compareOptions, {
202
- getGroupCompareOptions: groupNumber =>
203
- getCustomGroupsCompareOptions.getCustomGroupsCompareOptions(
204
- compareOptions,
182
+ let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes => {
183
+ let nodesSortedByGroups = formattedMembers.flatMap(sortingNodes =>
184
+ sortNodesByGroups.sortNodesByGroups({
185
+ getOptionsByGroupNumber: groupNumber => ({
186
+ options:
187
+ getCustomGroupsCompareOptions.getCustomGroupOverriddenOptions({
188
+ options: overriddenOptions,
205
189
  groupNumber,
206
- ),
207
- ignoreEslintDisabledNodes,
190
+ }),
191
+ nodeValueGetter,
208
192
  }),
209
- ),
193
+ ignoreEslintDisabledNodes,
194
+ groups: options.groups,
195
+ nodes: sortingNodes,
196
+ }),
197
+ )
198
+ return sortNodesByDependencies.sortNodesByDependencies(
199
+ nodesSortedByGroups,
210
200
  {
211
201
  ignoreEslintDisabledNodes,
212
202
  },
213
203
  )
204
+ }
214
205
  reportAllErrors.reportAllErrors({
215
206
  availableMessageIds: {
216
207
  missedSpacingBetweenMembers: 'missedSpacingBetweenEnumsMembers',
@@ -346,4 +337,22 @@ let getBinaryExpressionNumberValue = (
346
337
  return Number.NaN
347
338
  }
348
339
  }
340
+ let computeNodeValueGetter = ({ isNumericEnum, options }) =>
341
+ // Get the enum value rather than the name if needed.
342
+ options.sortByValue || (isNumericEnum && options.forceNumericSort)
343
+ ? sortingNode => {
344
+ if (isNumericEnum) {
345
+ return sortingNode.numericValue.toString()
346
+ }
347
+ return sortingNode.value ?? ''
348
+ }
349
+ : null
350
+ let computeOptionType = ({ isNumericEnum, options }) =>
351
+ /**
352
+ * If the enum is numeric, and we sort by value, always use the
353
+ * `natural` sort type, which will correctly sort them.
354
+ */
355
+ isNumericEnum && (options.forceNumericSort || options.sortByValue)
356
+ ? 'natural'
357
+ : options.type
349
358
  module.exports = sortEnums
@@ -6,7 +6,6 @@ const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
6
6
  const createEslintRule = require('../utils/create-eslint-rule.js')
7
7
  const reportAllErrors = require('../utils/report-all-errors.js')
8
8
  const shouldPartition = require('../utils/should-partition.js')
9
- const getSourceCode = require('../utils/get-source-code.js')
10
9
  const rangeToDiff = require('../utils/range-to-diff.js')
11
10
  const reportErrors = require('../utils/report-errors.js')
12
11
  const getSettings = require('../utils/get-settings.js')
@@ -33,9 +32,9 @@ const sortExports = createEslintRule.createEslintRule({
33
32
  defaultOptions,
34
33
  )
35
34
  validateCustomSortConfiguration.validateCustomSortConfiguration(options)
36
- let sourceCode = getSourceCode.getSourceCode(context)
35
+ let { sourceCode, id } = context
37
36
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
38
- ruleName: context.id,
37
+ ruleName: id,
39
38
  sourceCode,
40
39
  })
41
40
  let parts = [[]]
@@ -84,8 +83,10 @@ const sortExports = createEslintRule.createEslintRule({
84
83
  )
85
84
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
86
85
  filteredGroupKindNodes.flatMap(groupedNodes =>
87
- sortNodes.sortNodes(groupedNodes, options, {
86
+ sortNodes.sortNodes({
88
87
  ignoreEslintDisabledNodes,
88
+ nodes: groupedNodes,
89
+ options,
89
90
  }),
90
91
  )
91
92
  reportAllErrors.reportAllErrors({
@@ -8,7 +8,6 @@ const reportErrors = require('../utils/report-errors.js')
8
8
  const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
9
9
  const createEslintRule = require('../utils/create-eslint-rule.js')
10
10
  const reportAllErrors = require('../utils/report-all-errors.js')
11
- const getSourceCode = require('../utils/get-source-code.js')
12
11
  const rangeToDiff = require('../utils/range-to-diff.js')
13
12
  const getSettings = require('../utils/get-settings.js')
14
13
  const isSortable = require('../utils/is-sortable.js')
@@ -77,9 +76,9 @@ let sortHeritageClauses$1 = (context, options, heritageClauses) => {
77
76
  if (!isSortable.isSortable(heritageClauses)) {
78
77
  return
79
78
  }
80
- let sourceCode = getSourceCode.getSourceCode(context)
79
+ let { sourceCode, id } = context
81
80
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
82
- ruleName: context.id,
81
+ ruleName: id,
83
82
  sourceCode,
84
83
  })
85
84
  let nodes = heritageClauses.map(heritageClause => {
@@ -98,8 +97,11 @@ let sortHeritageClauses$1 = (context, options, heritageClauses) => {
98
97
  }
99
98
  })
100
99
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
101
- sortNodesByGroups.sortNodesByGroups(nodes, options, {
100
+ sortNodesByGroups.sortNodesByGroups({
101
+ getOptionsByGroupNumber: () => ({ options }),
102
102
  ignoreEslintDisabledNodes,
103
+ groups: options.groups,
104
+ nodes,
103
105
  })
104
106
  reportAllErrors.reportAllErrors({
105
107
  availableMessageIds: {
@@ -15,7 +15,6 @@ const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
15
15
  const createEslintRule = require('../utils/create-eslint-rule.js')
16
16
  const reportAllErrors = require('../utils/report-all-errors.js')
17
17
  const shouldPartition = require('../utils/should-partition.js')
18
- const getSourceCode = require('../utils/get-source-code.js')
19
18
  const rangeToDiff = require('../utils/range-to-diff.js')
20
19
  const getSettings = require('../utils/get-settings.js')
21
20
  const isSortable = require('../utils/is-sortable.js')
@@ -118,9 +117,9 @@ const sortImports = createEslintRule.createEslintRule({
118
117
  )
119
118
  }
120
119
  }
121
- let sourceCode = getSourceCode.getSourceCode(context)
120
+ let { sourceCode, filename, id } = context
122
121
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
123
- ruleName: context.id,
122
+ ruleName: id,
124
123
  sourceCode,
125
124
  })
126
125
  let sortingNodes = []
@@ -221,7 +220,7 @@ const sortImports = createEslintRule.createEslintRule({
221
220
  }
222
221
  let resolution = typescriptImport.resolveModuleName(
223
222
  value,
224
- context.filename,
223
+ filename,
225
224
  tsConfigOutput.compilerOptions,
226
225
  typescriptImport.sys,
227
226
  tsConfigOutput.cache,
@@ -362,16 +361,26 @@ const sortImports = createEslintRule.createEslintRule({
362
361
  }
363
362
  for (let nodes of formattedMembers) {
364
363
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
365
- sortNodesByGroups.sortNodesByGroups(nodes, options, {
366
- getGroupCompareOptions: groupNumber => {
364
+ sortNodesByGroups.sortNodesByGroups({
365
+ getOptionsByGroupNumber: groupNumber => {
367
366
  if (options.sortSideEffects) {
368
- return options
367
+ return {
368
+ options,
369
+ }
370
+ }
371
+ return {
372
+ options: {
373
+ ...options,
374
+ type: isSideEffectOnlyGroup(options.groups[groupNumber])
375
+ ? 'unsorted'
376
+ : options.type,
377
+ },
369
378
  }
370
- let group = options.groups[groupNumber]
371
- return isSideEffectOnlyGroup(group) ? null : options
372
379
  },
373
380
  isNodeIgnored: node => node.isIgnored,
374
381
  ignoreEslintDisabledNodes,
382
+ groups: options.groups,
383
+ nodes,
375
384
  })
376
385
  reportAllErrors.reportAllErrors({
377
386
  availableMessageIds: {
@@ -15,6 +15,7 @@ let defaultOptions = {
15
15
  ignoreCase: true,
16
16
  customGroups: {},
17
17
  locales: 'en-US',
18
+ sortBy: 'name',
18
19
  alphabet: '',
19
20
  order: 'asc',
20
21
  groups: [],
@@ -12,7 +12,6 @@ const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
12
12
  const createEslintRule = require('../utils/create-eslint-rule.js')
13
13
  const reportAllErrors = require('../utils/report-all-errors.js')
14
14
  const shouldPartition = require('../utils/should-partition.js')
15
- const getSourceCode = require('../utils/get-source-code.js')
16
15
  const rangeToDiff = require('../utils/range-to-diff.js')
17
16
  const getSettings = require('../utils/get-settings.js')
18
17
  const isSortable = require('../utils/is-sortable.js')
@@ -41,7 +40,7 @@ const sortJsxProps = createEslintRule.createEslintRule({
41
40
  return
42
41
  }
43
42
  let settings = getSettings.getSettings(context.settings)
44
- let sourceCode = getSourceCode.getSourceCode(context)
43
+ let { sourceCode, id } = context
45
44
  let matchedContextOptions = getMatchingContextOptions
46
45
  .getMatchingContextOptions({
47
46
  nodeNames: node.openingElement.attributes
@@ -92,7 +91,7 @@ const sortJsxProps = createEslintRule.createEslintRule({
92
91
  return
93
92
  }
94
93
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
95
- ruleName: context.id,
94
+ ruleName: id,
96
95
  sourceCode,
97
96
  })
98
97
  let formattedMembers = node.openingElement.attributes.reduce(
@@ -142,8 +141,11 @@ const sortJsxProps = createEslintRule.createEslintRule({
142
141
  )
143
142
  for (let nodes of formattedMembers) {
144
143
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
145
- sortNodesByGroups.sortNodesByGroups(nodes, options, {
144
+ sortNodesByGroups.sortNodesByGroups({
145
+ getOptionsByGroupNumber: () => ({ options }),
146
146
  ignoreEslintDisabledNodes,
147
+ groups: options.groups,
148
+ nodes,
147
149
  })
148
150
  reportAllErrors.reportAllErrors({
149
151
  availableMessageIds: {
@@ -1,9 +1,9 @@
1
1
  'use strict'
2
2
  const commonJsonSchemas = require('../utils/common-json-schemas.js')
3
3
  const reportErrors = require('../utils/report-errors.js')
4
+ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
4
5
  const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
5
6
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
6
- const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
7
7
  const getMatchingContextOptions = require('../utils/get-matching-context-options.js')
8
8
  const getEslintDisabledLines = require('../utils/get-eslint-disabled-lines.js')
9
9
  const doesCustomGroupMatch = require('./sort-maps/does-custom-group-match.js')
@@ -13,7 +13,6 @@ const types = require('./sort-maps/types.js')
13
13
  const createEslintRule = require('../utils/create-eslint-rule.js')
14
14
  const reportAllErrors = require('../utils/report-all-errors.js')
15
15
  const shouldPartition = require('../utils/should-partition.js')
16
- const getSourceCode = require('../utils/get-source-code.js')
17
16
  const rangeToDiff = require('../utils/range-to-diff.js')
18
17
  const getSettings = require('../utils/get-settings.js')
19
18
  const isSortable = require('../utils/is-sortable.js')
@@ -51,7 +50,7 @@ const sortMaps = createEslintRule.createEslintRule({
51
50
  if (!isSortable.isSortable(elements)) {
52
51
  return
53
52
  }
54
- let sourceCode = getSourceCode.getSourceCode(context)
53
+ let { sourceCode, id } = context
55
54
  let settings = getSettings.getSettings(context.settings)
56
55
  let matchedContextOptions =
57
56
  getMatchingContextOptions.getMatchingContextOptions({
@@ -76,7 +75,7 @@ const sortMaps = createEslintRule.createEslintRule({
76
75
  },
77
76
  )
78
77
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
79
- ruleName: context.id,
78
+ ruleName: id,
80
79
  sourceCode,
81
80
  })
82
81
  let parts = elements.reduce(
@@ -137,13 +136,14 @@ const sortMaps = createEslintRule.createEslintRule({
137
136
  }
138
137
  for (let nodes of formattedMembers) {
139
138
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
140
- sortNodesByGroups.sortNodesByGroups(nodes, options, {
141
- getGroupCompareOptions: groupNumber =>
142
- getCustomGroupsCompareOptions.getCustomGroupsCompareOptions(
139
+ sortNodesByGroups.sortNodesByGroups({
140
+ getOptionsByGroupNumber:
141
+ getCustomGroupsCompareOptions.buildGetCustomGroupOverriddenOptionsFunction(
143
142
  options,
144
- groupNumber,
145
143
  ),
146
144
  ignoreEslintDisabledNodes,
145
+ groups: options.groups,
146
+ nodes,
147
147
  })
148
148
  reportAllErrors.reportAllErrors({
149
149
  availableMessageIds: {
@@ -3,10 +3,10 @@ const utils = require('@typescript-eslint/utils')
3
3
  const commonJsonSchemas = require('../utils/common-json-schemas.js')
4
4
  const reportErrors = require('../utils/report-errors.js')
5
5
  const validateNewlinesAndPartitionConfiguration = require('../utils/validate-newlines-and-partition-configuration.js')
6
+ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
6
7
  const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
7
8
  const types = require('./sort-modules/types.js')
8
9
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
9
- const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
10
10
  const generatePredefinedGroups = require('../utils/generate-predefined-groups.js')
11
11
  const sortNodesByDependencies = require('../utils/sort-nodes-by-dependencies.js')
12
12
  const doesCustomGroupMatch = require('./sort-modules/does-custom-group-match.js')
@@ -20,7 +20,6 @@ const reportAllErrors = require('../utils/report-all-errors.js')
20
20
  const shouldPartition = require('../utils/should-partition.js')
21
21
  const getGroupNumber = require('../utils/get-group-number.js')
22
22
  const getEnumMembers = require('../utils/get-enum-members.js')
23
- const getSourceCode = require('../utils/get-source-code.js')
24
23
  const rangeToDiff = require('../utils/range-to-diff.js')
25
24
  const getSettings = require('../utils/get-settings.js')
26
25
  const isSortable = require('../utils/is-sortable.js')
@@ -103,9 +102,9 @@ const sortModules = createEslintRule.createEslintRule({
103
102
  validateNewlinesAndPartitionConfiguration.validateNewlinesAndPartitionConfiguration(
104
103
  options,
105
104
  )
106
- let sourceCode = getSourceCode.getSourceCode(context)
105
+ let { sourceCode, id } = context
107
106
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
108
- ruleName: context.id,
107
+ ruleName: id,
109
108
  sourceCode,
110
109
  })
111
110
  return {
@@ -290,25 +289,28 @@ let analyzeModule = ({
290
289
  }
291
290
  ;(_b = formattedNodes.at(-1)) == null ? void 0 : _b.push(sortingNode)
292
291
  }
293
- let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
294
- sortNodesByDependencies.sortNodesByDependencies(
295
- formattedNodes.flatMap(nodes2 =>
296
- sortNodesByGroups.sortNodesByGroups(nodes2, options, {
297
- isNodeIgnored: sortingNode =>
298
- getGroupNumber.getGroupNumber(options.groups, sortingNode) ===
299
- options.groups.length,
300
- getGroupCompareOptions: groupNumber =>
301
- getCustomGroupsCompareOptions.getCustomGroupsCompareOptions(
302
- options,
303
- groupNumber,
304
- ),
305
- ignoreEslintDisabledNodes,
306
- }),
307
- ),
292
+ let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes => {
293
+ let nodesSortedByGroups = formattedNodes.flatMap(nodes2 =>
294
+ sortNodesByGroups.sortNodesByGroups({
295
+ isNodeIgnored: sortingNode =>
296
+ getGroupNumber.getGroupNumber(options.groups, sortingNode) ===
297
+ options.groups.length,
298
+ getOptionsByGroupNumber:
299
+ getCustomGroupsCompareOptions.buildGetCustomGroupOverriddenOptionsFunction(
300
+ options,
301
+ ),
302
+ ignoreEslintDisabledNodes,
303
+ groups: options.groups,
304
+ nodes: nodes2,
305
+ }),
306
+ )
307
+ return sortNodesByDependencies.sortNodesByDependencies(
308
+ nodesSortedByGroups,
308
309
  {
309
310
  ignoreEslintDisabledNodes,
310
311
  },
311
312
  )
313
+ }
312
314
  let nodes = formattedNodes.flat()
313
315
  reportAllErrors.reportAllErrors({
314
316
  availableMessageIds: {
@@ -6,7 +6,6 @@ const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
6
6
  const createEslintRule = require('../utils/create-eslint-rule.js')
7
7
  const reportAllErrors = require('../utils/report-all-errors.js')
8
8
  const shouldPartition = require('../utils/should-partition.js')
9
- const getSourceCode = require('../utils/get-source-code.js')
10
9
  const rangeToDiff = require('../utils/range-to-diff.js')
11
10
  const reportErrors = require('../utils/report-errors.js')
12
11
  const getSettings = require('../utils/get-settings.js')
@@ -40,9 +39,9 @@ const sortNamedExports = createEslintRule.createEslintRule({
40
39
  defaultOptions,
41
40
  )
42
41
  validateCustomSortConfiguration.validateCustomSortConfiguration(options)
43
- let sourceCode = getSourceCode.getSourceCode(context)
42
+ let { sourceCode, id } = context
44
43
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
45
- ruleName: context.id,
44
+ ruleName: id,
46
45
  sourceCode,
47
46
  })
48
47
  let formattedMembers = [[]]
@@ -102,8 +101,10 @@ const sortNamedExports = createEslintRule.createEslintRule({
102
101
  )
103
102
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
104
103
  filteredGroupKindNodes.flatMap(groupedNodes =>
105
- sortNodes.sortNodes(groupedNodes, options, {
104
+ sortNodes.sortNodes({
106
105
  ignoreEslintDisabledNodes,
106
+ nodes: groupedNodes,
107
+ options,
107
108
  }),
108
109
  )
109
110
  reportAllErrors.reportAllErrors({