eslint-plugin-perfectionist 4.10.0 → 4.11.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 (39) hide show
  1. package/dist/index.d.ts +4 -1
  2. package/dist/index.js +9 -5
  3. package/dist/package.json.js +6 -0
  4. package/dist/rules/sort-array-includes.js +5 -5
  5. package/dist/rules/sort-classes.js +3 -4
  6. package/dist/rules/sort-decorators.js +2 -3
  7. package/dist/rules/sort-enums.js +5 -4
  8. package/dist/rules/sort-exports/types.js +14 -0
  9. package/dist/rules/sort-exports.js +88 -20
  10. package/dist/rules/sort-heritage-clauses.js +2 -3
  11. package/dist/rules/sort-imports.js +3 -4
  12. package/dist/rules/{sort-object-types → sort-jsx-props}/does-custom-group-match.js +2 -2
  13. package/dist/rules/sort-jsx-props/types.js +15 -0
  14. package/dist/rules/sort-jsx-props.js +74 -19
  15. package/dist/rules/sort-maps.js +5 -4
  16. package/dist/rules/sort-modules.js +3 -4
  17. package/dist/rules/sort-named-exports.js +2 -3
  18. package/dist/rules/sort-named-imports.js +2 -3
  19. package/dist/rules/sort-object-types.js +8 -9
  20. package/dist/rules/sort-objects.js +11 -6
  21. package/dist/rules/sort-switch-case.js +1 -2
  22. package/dist/rules/sort-union-types.js +2 -3
  23. package/dist/rules/sort-variable-declarations.js +2 -3
  24. package/dist/utils/common-json-schemas.js +3 -0
  25. package/dist/utils/compare.js +3 -0
  26. package/dist/utils/compute-nodes-in-circular-dependencies.js +42 -0
  27. package/dist/utils/does-custom-group-match.js +74 -0
  28. package/dist/utils/get-newlines-between-option.js +41 -9
  29. package/dist/utils/matches.js +5 -0
  30. package/dist/utils/report-all-errors.js +34 -4
  31. package/dist/utils/sort-nodes-by-dependencies.js +8 -25
  32. package/package.json +3 -3
  33. package/dist/rules/sort-array-includes/does-custom-group-match.js +0 -30
  34. package/dist/rules/sort-classes/does-custom-group-match.js +0 -61
  35. package/dist/rules/sort-enums/does-custom-group-match.js +0 -36
  36. package/dist/rules/sort-maps/does-custom-group-match.js +0 -24
  37. package/dist/rules/sort-modules/does-custom-group-match.js +0 -49
  38. package/dist/rules/sort-objects/does-custom-group-match.js +0 -49
  39. package/dist/utils/get-source-code.js +0 -7
package/dist/index.d.ts CHANGED
@@ -36,7 +36,10 @@ declare interface PluginConfig {
36
36
  'recommended-natural': Linter.Config
37
37
  'recommended-custom': Linter.Config
38
38
  }
39
- name: string
39
+ meta: {
40
+ version: string
41
+ name: string
42
+ }
40
43
  }
41
44
 
42
45
  export {}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  'use strict'
2
+ const _package = require('./package.json.js')
2
3
  const sortVariableDeclarations = require('./rules/sort-variable-declarations.js')
3
4
  const sortIntersectionTypes = require('./rules/sort-intersection-types.js')
4
5
  const sortHeritageClauses = require('./rules/sort-heritage-clauses.js')
@@ -19,7 +20,7 @@ const sortModules = require('./rules/sort-modules.js')
19
20
  const sortEnums = require('./rules/sort-enums.js')
20
21
  const sortMaps = require('./rules/sort-maps.js')
21
22
  const sortSets = require('./rules/sort-sets.js')
22
- let name = 'perfectionist'
23
+ let pluginName = 'perfectionist'
23
24
  let plugin = {
24
25
  rules: {
25
26
  'sort-variable-declarations': sortVariableDeclarations,
@@ -43,24 +44,27 @@ let plugin = {
43
44
  'sort-sets': sortSets,
44
45
  'sort-maps': sortMaps,
45
46
  },
46
- name,
47
+ meta: {
48
+ version: _package.version,
49
+ name: _package.name,
50
+ },
47
51
  }
48
52
  let getRules = options =>
49
53
  Object.fromEntries(
50
54
  Object.keys(plugin.rules).map(ruleName => [
51
- `${name}/${ruleName}`,
55
+ `${pluginName}/${ruleName}`,
52
56
  ['error', options],
53
57
  ]),
54
58
  )
55
59
  let createConfig = options => ({
56
60
  plugins: {
57
- [name]: plugin,
61
+ [pluginName]: plugin,
58
62
  },
59
63
  rules: getRules(options),
60
64
  })
61
65
  let createLegacyConfig = options => ({
62
66
  rules: getRules(options),
63
- plugins: [name],
67
+ plugins: [pluginName],
64
68
  })
65
69
  const index = {
66
70
  ...plugin,
@@ -0,0 +1,6 @@
1
+ 'use strict'
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
3
+ const name = 'eslint-plugin-perfectionist'
4
+ const version = '4.11.0'
5
+ exports.name = name
6
+ exports.version = version
@@ -10,16 +10,15 @@ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compar
10
10
  const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
11
11
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
12
12
  const types = require('./sort-array-includes/types.js')
13
- const doesCustomGroupMatch = require('./sort-array-includes/does-custom-group-match.js')
14
13
  const getMatchingContextOptions = require('../utils/get-matching-context-options.js')
15
14
  const generatePredefinedGroups = require('../utils/generate-predefined-groups.js')
16
15
  const getEslintDisabledLines = require('../utils/get-eslint-disabled-lines.js')
17
16
  const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
17
+ const doesCustomGroupMatch = require('../utils/does-custom-group-match.js')
18
18
  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')
@@ -47,8 +46,8 @@ let jsonSchema = {
47
46
  properties: {
48
47
  ...commonJsonSchemas.commonJsonSchemas,
49
48
  groupKind: {
49
+ description: '[DEPRECATED] Specifies top-level groups.',
50
50
  enum: ['mixed', 'literals-first', 'spreads-first'],
51
- description: 'Specifies top-level groups.',
52
51
  type: 'string',
53
52
  },
54
53
  customGroups: commonJsonSchemas.buildCustomGroupsArrayJsonSchema({
@@ -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(
@@ -175,6 +174,7 @@ let sortArray = ({ availableMessageIds, elements, context }) => {
175
174
  doesCustomGroupMatch.doesCustomGroupMatch({
176
175
  selectors: [selector],
177
176
  elementName: name,
177
+ modifiers: [],
178
178
  customGroup,
179
179
  })
180
180
  ) {
@@ -9,9 +9,9 @@ const validateCustomSortConfiguration = require('../utils/validate-custom-sort-c
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')
12
- const doesCustomGroupMatch = require('./sort-classes/does-custom-group-match.js')
13
12
  const getEslintDisabledLines = require('../utils/get-eslint-disabled-lines.js')
14
13
  const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
14
+ const doesCustomGroupMatch = require('../utils/does-custom-group-match.js')
15
15
  const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
16
16
  const getNodeDecorators = require('../utils/get-node-decorators.js')
17
17
  const createEslintRule = require('../utils/create-eslint-rule.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
@@ -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(
@@ -7,15 +7,14 @@ const validateCustomSortConfiguration = require('../utils/validate-custom-sort-c
7
7
  const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
8
8
  const sortNodesByDependencies = require('../utils/sort-nodes-by-dependencies.js')
9
9
  const getEslintDisabledLines = require('../utils/get-eslint-disabled-lines.js')
10
- const doesCustomGroupMatch = require('./sort-enums/does-custom-group-match.js')
11
10
  const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
11
+ const doesCustomGroupMatch = require('../utils/does-custom-group-match.js')
12
12
  const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
13
13
  const types = require('./sort-enums/types.js')
14
14
  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) => {
@@ -116,6 +115,8 @@ const sortEnums = createEslintRule.createEslintRule({
116
115
  doesCustomGroupMatch.doesCustomGroupMatch({
117
116
  elementValue: sourceCode.getText(member.initializer),
118
117
  elementName: name,
118
+ selectors: [],
119
+ modifiers: [],
119
120
  customGroup,
120
121
  })
121
122
  ) {
@@ -0,0 +1,14 @@
1
+ 'use strict'
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
3
+ const commonJsonSchemas = require('../../utils/common-json-schemas.js')
4
+ let allSelectors = ['export']
5
+ let allModifiers = ['value', 'type']
6
+ let singleCustomGroupJsonSchema = {
7
+ modifiers:
8
+ commonJsonSchemas.buildCustomGroupModifiersJsonSchema(allModifiers),
9
+ selector: commonJsonSchemas.buildCustomGroupSelectorJsonSchema(allSelectors),
10
+ elementNamePattern: commonJsonSchemas.regexJsonSchema,
11
+ }
12
+ exports.allModifiers = allModifiers
13
+ exports.allSelectors = allSelectors
14
+ exports.singleCustomGroupJsonSchema = singleCustomGroupJsonSchema
@@ -1,28 +1,38 @@
1
1
  'use strict'
2
2
  const commonJsonSchemas = require('../utils/common-json-schemas.js')
3
+ const reportErrors = require('../utils/report-errors.js')
4
+ const validateNewlinesAndPartitionConfiguration = require('../utils/validate-newlines-and-partition-configuration.js')
5
+ const getCustomGroupsCompareOptions = require('../utils/get-custom-groups-compare-options.js')
6
+ const validateGeneratedGroupsConfiguration = require('../utils/validate-generated-groups-configuration.js')
3
7
  const validateCustomSortConfiguration = require('../utils/validate-custom-sort-configuration.js')
8
+ const generatePredefinedGroups = require('../utils/generate-predefined-groups.js')
4
9
  const getEslintDisabledLines = require('../utils/get-eslint-disabled-lines.js')
5
10
  const isNodeEslintDisabled = require('../utils/is-node-eslint-disabled.js')
11
+ const doesCustomGroupMatch = require('../utils/does-custom-group-match.js')
12
+ const types = require('./sort-exports/types.js')
13
+ const sortNodesByGroups = require('../utils/sort-nodes-by-groups.js')
6
14
  const createEslintRule = require('../utils/create-eslint-rule.js')
7
15
  const reportAllErrors = require('../utils/report-all-errors.js')
8
16
  const shouldPartition = require('../utils/should-partition.js')
9
- const getSourceCode = require('../utils/get-source-code.js')
10
17
  const rangeToDiff = require('../utils/range-to-diff.js')
11
- const reportErrors = require('../utils/report-errors.js')
12
18
  const getSettings = require('../utils/get-settings.js')
13
- const sortNodes = require('../utils/sort-nodes.js')
19
+ const useGroups = require('../utils/use-groups.js')
14
20
  const complete = require('../utils/complete.js')
21
+ let cachedGroupsByModifiersAndSelectors = /* @__PURE__ */ new Map()
15
22
  let defaultOptions = {
16
23
  fallbackSort: { type: 'unsorted' },
17
24
  specialCharacters: 'keep',
18
25
  partitionByComment: false,
26
+ newlinesBetween: 'ignore',
19
27
  partitionByNewLine: false,
20
28
  type: 'alphabetical',
21
29
  groupKind: 'mixed',
30
+ customGroups: [],
22
31
  ignoreCase: true,
23
32
  locales: 'en-US',
24
33
  alphabet: '',
25
34
  order: 'asc',
35
+ groups: [],
26
36
  }
27
37
  const sortExports = createEslintRule.createEslintRule({
28
38
  create: context => {
@@ -33,14 +43,54 @@ const sortExports = createEslintRule.createEslintRule({
33
43
  defaultOptions,
34
44
  )
35
45
  validateCustomSortConfiguration.validateCustomSortConfiguration(options)
36
- let sourceCode = getSourceCode.getSourceCode(context)
46
+ validateGeneratedGroupsConfiguration.validateGeneratedGroupsConfiguration({
47
+ modifiers: types.allModifiers,
48
+ selectors: types.allSelectors,
49
+ options,
50
+ })
51
+ validateNewlinesAndPartitionConfiguration.validateNewlinesAndPartitionConfiguration(
52
+ options,
53
+ )
54
+ let { sourceCode, id } = context
37
55
  let eslintDisabledLines = getEslintDisabledLines.getEslintDisabledLines({
38
- ruleName: context.id,
56
+ ruleName: id,
39
57
  sourceCode,
40
58
  })
41
- let parts = [[]]
59
+ let formattedMembers = [[]]
42
60
  let registerNode = node => {
43
61
  var _a
62
+ let { defineGroup, getGroup } = useGroups.useGroups(options)
63
+ let selector = 'export'
64
+ let modifiers = []
65
+ if (node.exportKind === 'value') {
66
+ modifiers.push('value')
67
+ } else {
68
+ modifiers.push('type')
69
+ }
70
+ let predefinedGroups = generatePredefinedGroups.generatePredefinedGroups({
71
+ cache: cachedGroupsByModifiersAndSelectors,
72
+ selectors: [selector],
73
+ modifiers,
74
+ })
75
+ for (let predefinedGroup of predefinedGroups) {
76
+ defineGroup(predefinedGroup)
77
+ }
78
+ let name = node.source.value
79
+ for (let customGroup of options.customGroups) {
80
+ if (
81
+ doesCustomGroupMatch.doesCustomGroupMatch({
82
+ selectors: [selector],
83
+ elementName: name,
84
+ customGroup,
85
+ modifiers,
86
+ })
87
+ ) {
88
+ defineGroup(customGroup.groupName, true)
89
+ if (getGroup() === customGroup.groupName) {
90
+ break
91
+ }
92
+ }
93
+ }
44
94
  let sortingNode = {
45
95
  isEslintDisabled: isNodeEslintDisabled.isNodeEslintDisabled(
46
96
  node,
@@ -49,10 +99,11 @@ const sortExports = createEslintRule.createEslintRule({
49
99
  groupKind: node.exportKind === 'value' ? 'value' : 'type',
50
100
  size: rangeToDiff.rangeToDiff(node, sourceCode),
51
101
  addSafetySemicolonWhenInline: true,
52
- name: node.source.value,
102
+ group: getGroup(),
103
+ name,
53
104
  node,
54
105
  }
55
- let lastNode = (_a = parts.at(-1)) == null ? void 0 : _a.at(-1)
106
+ let lastNode = (_a = formattedMembers.at(-1)) == null ? void 0 : _a.at(-1)
56
107
  if (
57
108
  shouldPartition.shouldPartition({
58
109
  lastSortingNode: lastNode,
@@ -61,9 +112,9 @@ const sortExports = createEslintRule.createEslintRule({
61
112
  options,
62
113
  })
63
114
  ) {
64
- parts.push([])
115
+ formattedMembers.push([])
65
116
  }
66
- parts.at(-1).push(sortingNode)
117
+ formattedMembers.at(-1).push(sortingNode)
67
118
  }
68
119
  return {
69
120
  'Program:exit': () => {
@@ -75,7 +126,7 @@ const sortExports = createEslintRule.createEslintRule({
75
126
  } else {
76
127
  groupKindOrder = ['any']
77
128
  }
78
- for (let nodes of parts) {
129
+ for (let nodes of formattedMembers) {
79
130
  let filteredGroupKindNodes = groupKindOrder.map(groupKind =>
80
131
  nodes.filter(
81
132
  currentNode =>
@@ -84,14 +135,21 @@ const sortExports = createEslintRule.createEslintRule({
84
135
  )
85
136
  let sortNodesExcludingEslintDisabled = ignoreEslintDisabledNodes =>
86
137
  filteredGroupKindNodes.flatMap(groupedNodes =>
87
- sortNodes.sortNodes({
138
+ sortNodesByGroups.sortNodesByGroups({
139
+ getOptionsByGroupNumber:
140
+ getCustomGroupsCompareOptions.buildGetCustomGroupOverriddenOptionsFunction(
141
+ options,
142
+ ),
88
143
  ignoreEslintDisabledNodes,
144
+ groups: options.groups,
89
145
  nodes: groupedNodes,
90
- options,
91
146
  }),
92
147
  )
93
148
  reportAllErrors.reportAllErrors({
94
149
  availableMessageIds: {
150
+ missedSpacingBetweenMembers: 'missedSpacingBetweenExports',
151
+ extraSpacingBetweenMembers: 'extraSpacingBetweenExports',
152
+ unexpectedGroupOrder: 'unexpectedExportsGroupOrder',
95
153
  unexpectedOrder: 'unexpectedExportsOrder',
96
154
  },
97
155
  sortNodesExcludingEslintDisabled,
@@ -111,30 +169,40 @@ const sortExports = createEslintRule.createEslintRule({
111
169
  }
112
170
  },
113
171
  meta: {
114
- schema: [
115
- {
172
+ schema: {
173
+ items: {
116
174
  properties: {
117
175
  ...commonJsonSchemas.commonJsonSchemas,
118
176
  groupKind: {
177
+ description: '[DEPRECATED] Specifies top-level groups.',
119
178
  enum: ['mixed', 'values-first', 'types-first'],
120
- description: 'Specifies top-level groups.',
121
179
  type: 'string',
122
180
  },
181
+ customGroups: commonJsonSchemas.buildCustomGroupsArrayJsonSchema({
182
+ singleCustomGroupJsonSchema: types.singleCustomGroupJsonSchema,
183
+ }),
123
184
  partitionByComment: commonJsonSchemas.partitionByCommentJsonSchema,
124
185
  partitionByNewLine: commonJsonSchemas.partitionByNewLineJsonSchema,
186
+ newlinesBetween: commonJsonSchemas.newlinesBetweenJsonSchema,
187
+ groups: commonJsonSchemas.groupsJsonSchema,
125
188
  },
126
189
  additionalProperties: false,
127
190
  type: 'object',
128
191
  },
129
- ],
192
+ uniqueItems: true,
193
+ type: 'array',
194
+ },
195
+ messages: {
196
+ missedSpacingBetweenExports: reportErrors.MISSED_SPACING_ERROR,
197
+ extraSpacingBetweenExports: reportErrors.EXTRA_SPACING_ERROR,
198
+ unexpectedExportsGroupOrder: reportErrors.GROUP_ORDER_ERROR,
199
+ unexpectedExportsOrder: reportErrors.ORDER_ERROR,
200
+ },
130
201
  docs: {
131
202
  url: 'https://perfectionist.dev/rules/sort-exports',
132
203
  description: 'Enforce sorted exports.',
133
204
  recommended: true,
134
205
  },
135
- messages: {
136
- unexpectedExportsOrder: reportErrors.ORDER_ERROR,
137
- },
138
206
  type: 'suggestion',
139
207
  fixable: 'code',
140
208
  },
@@ -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 => {
@@ -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,
@@ -36,11 +36,11 @@ let doesCustomGroupMatch = props => {
36
36
  'elementValuePattern' in props.customGroup &&
37
37
  props.customGroup.elementValuePattern
38
38
  ) {
39
- let matchesElementValuePattern = matches.matches(
39
+ let matchesElementNamePattern = matches.matches(
40
40
  props.elementValue ?? '',
41
41
  props.customGroup.elementValuePattern,
42
42
  )
43
- if (!matchesElementValuePattern) {
43
+ if (!matchesElementNamePattern) {
44
44
  return false
45
45
  }
46
46
  }
@@ -0,0 +1,15 @@
1
+ 'use strict'
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
3
+ const commonJsonSchemas = require('../../utils/common-json-schemas.js')
4
+ let allSelectors = ['multiline', 'prop', 'shorthand']
5
+ let allModifiers = ['shorthand', 'multiline']
6
+ let singleCustomGroupJsonSchema = {
7
+ modifiers:
8
+ commonJsonSchemas.buildCustomGroupModifiersJsonSchema(allModifiers),
9
+ selector: commonJsonSchemas.buildCustomGroupSelectorJsonSchema(allSelectors),
10
+ elementValuePattern: commonJsonSchemas.regexJsonSchema,
11
+ elementNamePattern: commonJsonSchemas.regexJsonSchema,
12
+ }
13
+ exports.allModifiers = allModifiers
14
+ exports.allSelectors = allSelectors
15
+ exports.singleCustomGroupJsonSchema = singleCustomGroupJsonSchema