eslint-plugin-perfectionist 2.10.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.
- package/dist/index.d.ts +365 -0
- package/dist/index.js +86 -129
- package/dist/index.mjs +85 -130
- package/dist/rules/sort-array-includes.js +120 -94
- package/dist/rules/sort-array-includes.mjs +116 -98
- package/dist/rules/sort-astro-attributes.js +141 -99
- package/dist/rules/sort-astro-attributes.mjs +131 -102
- package/dist/rules/sort-classes.js +314 -171
- package/dist/rules/sort-classes.mjs +301 -172
- package/dist/rules/sort-enums.js +107 -81
- package/dist/rules/sort-enums.mjs +103 -81
- package/dist/rules/sort-exports.js +65 -67
- package/dist/rules/sort-exports.mjs +64 -67
- package/dist/rules/sort-imports.js +405 -293
- package/dist/rules/sort-imports.mjs +392 -293
- package/dist/rules/sort-interfaces.js +234 -175
- package/dist/rules/sort-interfaces.mjs +219 -177
- package/dist/rules/sort-intersection-types.js +173 -66
- package/dist/rules/sort-intersection-types.mjs +166 -66
- package/dist/rules/sort-jsx-props.js +200 -129
- package/dist/rules/sort-jsx-props.mjs +185 -129
- package/dist/rules/sort-maps.js +89 -81
- package/dist/rules/sort-maps.mjs +85 -80
- package/dist/rules/sort-named-exports.js +94 -76
- package/dist/rules/sort-named-exports.mjs +90 -76
- package/dist/rules/sort-named-imports.js +103 -87
- package/dist/rules/sort-named-imports.mjs +99 -87
- package/dist/rules/sort-object-types.js +254 -133
- package/dist/rules/sort-object-types.mjs +241 -136
- package/dist/rules/sort-objects.js +333 -205
- package/dist/rules/sort-objects.mjs +314 -210
- package/dist/rules/sort-svelte-attributes.js +146 -104
- package/dist/rules/sort-svelte-attributes.mjs +136 -107
- package/dist/rules/sort-switch-case.js +185 -0
- package/dist/rules/sort-switch-case.mjs +175 -0
- package/dist/rules/sort-union-types.js +171 -92
- package/dist/rules/sort-union-types.mjs +164 -92
- package/dist/rules/sort-variable-declarations.js +142 -0
- package/dist/rules/sort-variable-declarations.mjs +136 -0
- package/dist/rules/sort-vue-attributes.js +147 -102
- package/dist/rules/sort-vue-attributes.mjs +137 -105
- package/dist/utils/compare.js +38 -25
- package/dist/utils/compare.mjs +36 -25
- package/dist/utils/complete.js +4 -4
- package/dist/utils/complete.mjs +2 -4
- package/dist/utils/create-eslint-rule.js +6 -6
- package/dist/utils/create-eslint-rule.mjs +4 -6
- package/dist/utils/get-comment-after.js +15 -10
- package/dist/utils/get-comment-after.mjs +13 -10
- package/dist/utils/get-comment-before.js +19 -10
- package/dist/utils/get-comment-before.mjs +17 -10
- package/dist/utils/get-group-number.js +13 -8
- package/dist/utils/get-group-number.mjs +11 -8
- package/dist/utils/get-lines-between.js +7 -7
- package/dist/utils/get-lines-between.mjs +5 -7
- package/dist/utils/get-node-parent.js +9 -9
- package/dist/utils/get-node-parent.mjs +7 -9
- package/dist/utils/get-node-range.js +37 -29
- package/dist/utils/get-node-range.mjs +35 -29
- package/dist/utils/get-source-code.js +7 -0
- package/dist/utils/get-source-code.mjs +5 -0
- package/dist/utils/is-member-optional.js +8 -8
- package/dist/utils/is-member-optional.mjs +6 -8
- package/dist/utils/is-partition-comment.js +16 -11
- package/dist/utils/is-partition-comment.mjs +14 -11
- package/dist/utils/is-positive.js +4 -4
- package/dist/utils/is-positive.mjs +2 -4
- package/dist/utils/make-fixes.js +36 -27
- package/dist/utils/make-fixes.mjs +27 -27
- package/dist/utils/pairwise.js +7 -7
- package/dist/utils/pairwise.mjs +5 -7
- package/dist/utils/range-to-diff.js +7 -7
- package/dist/utils/range-to-diff.mjs +5 -7
- package/dist/utils/sort-nodes.js +6 -5
- package/dist/utils/sort-nodes.mjs +4 -5
- package/dist/utils/to-single-line.js +4 -4
- package/dist/utils/to-single-line.mjs +2 -4
- package/dist/utils/use-groups.js +32 -26
- package/dist/utils/use-groups.mjs +30 -26
- package/package.json +15 -20
- package/readme.md +87 -162
- package/dist/configs/recommended-alphabetical.js +0 -9
- package/dist/configs/recommended-alphabetical.mjs +0 -10
- package/dist/configs/recommended-line-length.js +0 -9
- package/dist/configs/recommended-line-length.mjs +0 -10
- package/dist/configs/recommended-natural.js +0 -9
- package/dist/configs/recommended-natural.mjs +0 -10
- package/dist/package.json.js +0 -4
- package/dist/package.json.mjs +0 -4
- package/dist/typings/index.js +0 -29
- package/dist/typings/index.mjs +0 -29
package/dist/index.mjs
CHANGED
|
@@ -1,136 +1,91 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import sortNamedImports
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
let
|
|
21
|
-
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
118
|
-
type:
|
|
119
|
-
order:
|
|
120
|
-
|
|
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
|
-
|
|
123
|
-
type:
|
|
124
|
-
order:
|
|
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
|
-
|
|
133
|
-
}
|
|
134
|
-
export {
|
|
135
|
-
mod as default
|
|
136
|
-
};
|
|
90
|
+
}
|
|
91
|
+
export { index as default }
|
|
@@ -1,129 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const sortNodes = require(
|
|
9
|
-
const makeFixes = require(
|
|
10
|
-
const complete = require(
|
|
11
|
-
const pairwise = require(
|
|
12
|
-
const compare = require(
|
|
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:
|
|
14
|
+
name: 'sort-array-includes',
|
|
16
15
|
meta: {
|
|
17
|
-
type:
|
|
16
|
+
type: 'suggestion',
|
|
18
17
|
docs: {
|
|
19
|
-
description:
|
|
18
|
+
description: 'Enforce sorted arrays before include method.',
|
|
20
19
|
},
|
|
21
|
-
fixable:
|
|
20
|
+
fixable: 'code',
|
|
22
21
|
schema: [
|
|
23
22
|
{
|
|
24
|
-
type:
|
|
23
|
+
type: 'object',
|
|
25
24
|
properties: {
|
|
26
25
|
type: {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
type:
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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:
|
|
54
|
-
|
|
51
|
+
unexpectedArrayIncludesOrder:
|
|
52
|
+
'Expected "{{right}}" to come before "{{left}}".',
|
|
53
|
+
},
|
|
55
54
|
},
|
|
56
55
|
defaultOptions: [
|
|
57
56
|
{
|
|
58
|
-
type:
|
|
59
|
-
order:
|
|
60
|
-
|
|
57
|
+
type: 'alphabetical',
|
|
58
|
+
order: 'asc',
|
|
59
|
+
ignoreCase: true,
|
|
60
|
+
groupKind: 'literals-first',
|
|
61
|
+
},
|
|
61
62
|
],
|
|
62
|
-
create:
|
|
63
|
-
MemberExpression:
|
|
64
|
-
if (
|
|
65
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
})
|
|
73
|
-
let
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
|
89
|
-
if (options
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
105
|
-
let sortedNodes =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
})
|
|
144
|
+
sourceCode,
|
|
145
|
+
)
|
|
146
|
+
},
|
|
147
|
+
})
|
|
121
148
|
}
|
|
122
|
-
})
|
|
149
|
+
})
|
|
123
150
|
}
|
|
124
151
|
}
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
})
|
|
128
|
-
exports
|
|
129
|
-
exports.default = sortArrayIncludes;
|
|
152
|
+
},
|
|
153
|
+
}),
|
|
154
|
+
})
|
|
155
|
+
module.exports = sortArrayIncludes
|