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.
- package/dist/rules/sort-array-includes.js +8 -8
- package/dist/rules/sort-classes.js +21 -19
- package/dist/rules/sort-decorators.js +6 -4
- package/dist/rules/sort-enums.js +54 -45
- package/dist/rules/sort-exports.js +5 -4
- package/dist/rules/sort-heritage-clauses.js +6 -4
- package/dist/rules/sort-imports.js +18 -9
- package/dist/rules/sort-interfaces.js +1 -0
- package/dist/rules/sort-jsx-props.js +6 -4
- package/dist/rules/sort-maps.js +8 -8
- package/dist/rules/sort-modules.js +21 -19
- package/dist/rules/sort-named-exports.js +5 -4
- package/dist/rules/sort-named-imports.js +5 -4
- package/dist/rules/sort-object-types/build-node-value-getter.js +5 -0
- package/dist/rules/sort-object-types/does-custom-group-match.js +12 -0
- package/dist/rules/sort-object-types/get-custom-groups-compare-options.js +44 -0
- package/dist/rules/sort-object-types/types.js +7 -0
- package/dist/rules/sort-object-types.js +46 -10
- package/dist/rules/sort-objects.js +28 -19
- package/dist/rules/sort-switch-case.js +10 -6
- package/dist/rules/sort-union-types.js +6 -4
- package/dist/rules/sort-variable-declarations.js +5 -4
- package/dist/utils/common-json-schemas.js +31 -32
- package/dist/utils/compare.js +35 -13
- package/dist/utils/get-custom-groups-compare-options.js +39 -12
- package/dist/utils/get-settings.js +1 -0
- package/dist/utils/sort-nodes-by-groups.js +30 -20
- package/dist/utils/sort-nodes.js +17 -4
- package/package.json +4 -4
- package/readme.md +1 -1
- package/dist/utils/get-source-code.js +0 -7
|
@@ -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 =
|
|
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:
|
|
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(
|
|
233
|
-
|
|
234
|
-
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 =
|
|
91
|
+
let { sourceCode, id } = context
|
|
93
92
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
94
|
-
ruleName:
|
|
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
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
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 =
|
|
158
|
+
let { sourceCode, id } = context
|
|
160
159
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
161
|
-
ruleName:
|
|
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(
|
|
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()
|
package/dist/rules/sort-enums.js
CHANGED
|
@@ -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 =
|
|
66
|
+
let { sourceCode, id } = context
|
|
68
67
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
69
|
-
ruleName:
|
|
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
|
|
171
|
+
let nodeValueGetter = computeNodeValueGetter({
|
|
172
|
+
isNumericEnum,
|
|
173
|
+
options,
|
|
174
|
+
})
|
|
175
|
+
let overriddenOptions = {
|
|
166
176
|
...options,
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
options
|
|
170
|
-
|
|
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
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
getCustomGroupsCompareOptions.
|
|
204
|
-
|
|
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
|
-
|
|
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 =
|
|
35
|
+
let { sourceCode, id } = context
|
|
37
36
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
38
|
-
ruleName:
|
|
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(
|
|
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 =
|
|
79
|
+
let { sourceCode, id } = context
|
|
81
80
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
82
|
-
ruleName:
|
|
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(
|
|
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 =
|
|
120
|
+
let { sourceCode, filename, id } = context
|
|
122
121
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
123
|
-
ruleName:
|
|
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
|
-
|
|
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(
|
|
366
|
-
|
|
364
|
+
sortNodesByGroups.sortNodesByGroups({
|
|
365
|
+
getOptionsByGroupNumber: groupNumber => {
|
|
367
366
|
if (options.sortSideEffects) {
|
|
368
|
-
return
|
|
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: {
|
|
@@ -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 =
|
|
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:
|
|
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(
|
|
144
|
+
sortNodesByGroups.sortNodesByGroups({
|
|
145
|
+
getOptionsByGroupNumber: () => ({ options }),
|
|
146
146
|
ignoreEslintDisabledNodes,
|
|
147
|
+
groups: options.groups,
|
|
148
|
+
nodes,
|
|
147
149
|
})
|
|
148
150
|
reportAllErrors.reportAllErrors({
|
|
149
151
|
availableMessageIds: {
|
package/dist/rules/sort-maps.js
CHANGED
|
@@ -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 =
|
|
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:
|
|
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(
|
|
141
|
-
|
|
142
|
-
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 =
|
|
105
|
+
let { sourceCode, id } = context
|
|
107
106
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
108
|
-
ruleName:
|
|
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
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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 =
|
|
42
|
+
let { sourceCode, id } = context
|
|
44
43
|
let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
|
|
45
|
-
ruleName:
|
|
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(
|
|
104
|
+
sortNodes.sortNodes({
|
|
106
105
|
ignoreEslintDisabledNodes,
|
|
106
|
+
nodes: groupedNodes,
|
|
107
|
+
options,
|
|
107
108
|
}),
|
|
108
109
|
)
|
|
109
110
|
reportAllErrors.reportAllErrors({
|