eslint-plugin-perfectionist 5.8.0 → 5.9.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 (237) hide show
  1. package/dist/index.d.ts +23 -0
  2. package/dist/index.js +54 -56
  3. package/dist/package.json.js +2 -2
  4. package/dist/rules/sort-array-includes/types.d.ts +2 -0
  5. package/dist/rules/sort-array-includes.d.ts +2 -2
  6. package/dist/rules/sort-array-includes.js +22 -19
  7. package/dist/rules/sort-arrays/compute-array-elements.js +8 -1
  8. package/dist/rules/sort-arrays/compute-matched-context-options.js +20 -2
  9. package/dist/rules/sort-arrays/compute-node-name.js +8 -0
  10. package/dist/rules/sort-arrays/sort-array.js +16 -15
  11. package/dist/rules/sort-arrays/types.js +10 -2
  12. package/dist/rules/sort-arrays.js +22 -19
  13. package/dist/rules/sort-classes/compute-dependencies-by-sorting-node.js +11 -11
  14. package/dist/rules/sort-classes/compute-dependencies.js +21 -5
  15. package/dist/rules/sort-classes/compute-identifier-name-details.js +8 -1
  16. package/dist/rules/sort-classes/compute-matched-context-options.js +16 -3
  17. package/dist/rules/sort-classes/compute-overload-signature-groups.js +11 -6
  18. package/dist/rules/sort-classes/is-known-class-element.js +10 -0
  19. package/dist/rules/sort-classes/node-info/common-modifiers.js +5 -3
  20. package/dist/rules/sort-classes/node-info/compute-accessor-details.js +12 -3
  21. package/dist/rules/sort-classes/node-info/compute-index-signature-details.js +10 -1
  22. package/dist/rules/sort-classes/node-info/compute-method-details.js +16 -6
  23. package/dist/rules/sort-classes/node-info/compute-method-or-property-name-details.js +9 -1
  24. package/dist/rules/sort-classes/node-info/compute-property-details.js +20 -6
  25. package/dist/rules/sort-classes/node-info/compute-static-block-details.js +12 -0
  26. package/dist/rules/sort-classes/sort-class.js +73 -62
  27. package/dist/rules/sort-classes/types.d.ts +6 -0
  28. package/dist/rules/sort-classes/types.js +25 -10
  29. package/dist/rules/sort-classes.js +22 -18
  30. package/dist/rules/sort-decorators.js +38 -32
  31. package/dist/rules/sort-enums/build-comparator-by-options-computer.js +15 -4
  32. package/dist/rules/sort-enums/compute-dependencies-by-sorting-node.js +2 -2
  33. package/dist/rules/sort-enums/compute-dependencies.js +12 -0
  34. package/dist/rules/sort-enums/compute-expression-number-value.js +29 -0
  35. package/dist/rules/sort-enums/compute-matched-context-options.js +19 -2
  36. package/dist/rules/sort-enums/compute-node-name.js +8 -0
  37. package/dist/rules/sort-enums/sort-enum.js +46 -41
  38. package/dist/rules/sort-enums/types.js +10 -6
  39. package/dist/rules/sort-enums.js +19 -19
  40. package/dist/rules/sort-export-attributes/types.d.ts +2 -0
  41. package/dist/rules/sort-export-attributes.d.ts +1 -2
  42. package/dist/rules/sort-export-attributes.js +13 -13
  43. package/dist/rules/sort-exports/types.js +16 -4
  44. package/dist/rules/sort-exports.js +33 -31
  45. package/dist/rules/sort-heritage-clauses/compute-matched-context-options.js +15 -1
  46. package/dist/rules/sort-heritage-clauses/compute-node-name.js +11 -0
  47. package/dist/rules/sort-heritage-clauses/sort-heritage-clause.js +21 -18
  48. package/dist/rules/sort-heritage-clauses/types.js +4 -4
  49. package/dist/rules/sort-heritage-clauses.js +17 -17
  50. package/dist/rules/sort-import-attributes/compute-matched-context-options.js +17 -1
  51. package/dist/rules/sort-import-attributes/compute-node-name.js +11 -1
  52. package/dist/rules/sort-import-attributes/sort-import-or-export-attributes.js +12 -9
  53. package/dist/rules/sort-import-attributes.js +20 -20
  54. package/dist/rules/sort-imports/comparator-by-options-computer.js +16 -5
  55. package/dist/rules/sort-imports/compute-common-selectors.js +75 -12
  56. package/dist/rules/sort-imports/compute-dependencies.js +10 -1
  57. package/dist/rules/sort-imports/compute-dependency-names.js +9 -1
  58. package/dist/rules/sort-imports/compute-node-name.js +10 -3
  59. package/dist/rules/sort-imports/compute-specifier-modifiers.js +6 -0
  60. package/dist/rules/sort-imports/compute-specifier-name.js +1 -1
  61. package/dist/rules/sort-imports/get-typescript-import.js +14 -2
  62. package/dist/rules/sort-imports/is-non-external-reference-ts-import-equals.js +8 -0
  63. package/dist/rules/sort-imports/is-side-effect-import.js +10 -3
  64. package/dist/rules/sort-imports/is-side-effect-only-group.js +11 -1
  65. package/dist/rules/sort-imports/is-string-group-side-effect-only-group.js +9 -0
  66. package/dist/rules/sort-imports/matches-tsconfig-paths.js +32 -1
  67. package/dist/rules/sort-imports/read-closest-ts-config-by-path.js +41 -8
  68. package/dist/rules/sort-imports/types.js +19 -8
  69. package/dist/rules/sort-imports/validate-side-effects-configuration.js +23 -8
  70. package/dist/rules/sort-imports.js +90 -81
  71. package/dist/rules/sort-interfaces/types.d.ts +2 -0
  72. package/dist/rules/sort-interfaces.d.ts +1 -2
  73. package/dist/rules/sort-interfaces.js +11 -11
  74. package/dist/rules/sort-intersection-types/types.d.ts +2 -0
  75. package/dist/rules/sort-intersection-types.d.ts +1 -2
  76. package/dist/rules/sort-intersection-types.js +15 -12
  77. package/dist/rules/sort-jsx-props/compute-matched-context-options.js +12 -2
  78. package/dist/rules/sort-jsx-props/compute-node-name.js +7 -1
  79. package/dist/rules/sort-jsx-props/sort-jsx-object.js +33 -28
  80. package/dist/rules/sort-jsx-props/types.js +21 -9
  81. package/dist/rules/sort-jsx-props.js +17 -17
  82. package/dist/rules/sort-maps/compute-matched-context-options.js +19 -3
  83. package/dist/rules/sort-maps/compute-node-name.js +12 -0
  84. package/dist/rules/sort-maps/sort-potential-map.js +20 -17
  85. package/dist/rules/sort-maps/types.js +4 -4
  86. package/dist/rules/sort-maps.js +16 -16
  87. package/dist/rules/sort-modules/build-comparator-by-options-computer.js +1 -1
  88. package/dist/rules/sort-modules/build-usage-comparator.js +28 -8
  89. package/dist/rules/sort-modules/compute-dependencies-by-sorting-node.js +14 -12
  90. package/dist/rules/sort-modules/compute-dependencies.js +14 -4
  91. package/dist/rules/sort-modules/compute-node-details.js +35 -12
  92. package/dist/rules/sort-modules/compute-overload-signature-groups.js +14 -6
  93. package/dist/rules/sort-modules/is-arrow-function-node.js +9 -1
  94. package/dist/rules/sort-modules/is-property-or-accessor-node.js +7 -0
  95. package/dist/rules/sort-modules/types.d.ts +16 -10
  96. package/dist/rules/sort-modules/types.js +18 -14
  97. package/dist/rules/sort-modules.js +77 -68
  98. package/dist/rules/sort-named-exports/compute-matched-context-options.js +16 -1
  99. package/dist/rules/sort-named-exports/compute-node-name.js +8 -1
  100. package/dist/rules/sort-named-exports/sort-named-export.js +30 -25
  101. package/dist/rules/sort-named-exports/types.js +22 -8
  102. package/dist/rules/sort-named-exports.js +20 -20
  103. package/dist/rules/sort-named-imports/compute-matched-context-options.js +17 -2
  104. package/dist/rules/sort-named-imports/compute-node-name.js +8 -1
  105. package/dist/rules/sort-named-imports/sort-named-import.js +31 -26
  106. package/dist/rules/sort-named-imports/types.js +22 -8
  107. package/dist/rules/sort-named-imports.js +20 -20
  108. package/dist/rules/sort-object-types/comparator-by-options-computer.js +4 -4
  109. package/dist/rules/sort-object-types/compute-matched-context-options.js +19 -4
  110. package/dist/rules/sort-object-types/compute-node-name.js +12 -2
  111. package/dist/rules/sort-object-types/compute-node-parent-name.js +8 -1
  112. package/dist/rules/sort-object-types/is-member-optional.js +11 -1
  113. package/dist/rules/sort-object-types/is-node-function-type.js +55 -0
  114. package/dist/rules/sort-object-types/passes-declaration-comment-matches-filter.js +11 -2
  115. package/dist/rules/sort-object-types/passes-declaration-matches-pattern-filter.js +11 -1
  116. package/dist/rules/sort-object-types/sort-object-type-elements.js +35 -28
  117. package/dist/rules/sort-object-types/types.js +26 -10
  118. package/dist/rules/sort-object-types.js +28 -25
  119. package/dist/rules/sort-objects/comparator-by-options-computer.js +4 -4
  120. package/dist/rules/sort-objects/compute-dependencies.js +5 -3
  121. package/dist/rules/sort-objects/compute-dependency-names.js +1 -1
  122. package/dist/rules/sort-objects/compute-matched-context-options.js +21 -6
  123. package/dist/rules/sort-objects/compute-property-or-variable-declarator-name.js +17 -3
  124. package/dist/rules/sort-objects/is-style-component.js +6 -0
  125. package/dist/rules/sort-objects/passes-calling-function-name-pattern-filter.js +11 -2
  126. package/dist/rules/sort-objects/passes-declaration-comment-matches-filter.js +11 -2
  127. package/dist/rules/sort-objects/passes-declaration-matches-pattern-filter.js +13 -3
  128. package/dist/rules/sort-objects/sort-object.js +55 -51
  129. package/dist/rules/sort-objects/types.js +31 -15
  130. package/dist/rules/sort-objects.js +21 -21
  131. package/dist/rules/sort-sets/types.d.ts +2 -0
  132. package/dist/rules/sort-sets.d.ts +1 -2
  133. package/dist/rules/sort-sets.js +14 -11
  134. package/dist/rules/sort-switch-case/types.d.ts +2 -0
  135. package/dist/rules/sort-switch-case.d.ts +1 -2
  136. package/dist/rules/sort-switch-case.js +69 -37
  137. package/dist/rules/sort-union-types/compute-matched-context-options.js +20 -2
  138. package/dist/rules/sort-union-types/compute-node-name.js +12 -0
  139. package/dist/rules/sort-union-types/sort-union-or-intersection-types.js +19 -17
  140. package/dist/rules/sort-union-types/types.js +11 -2
  141. package/dist/rules/sort-union-types.js +23 -20
  142. package/dist/rules/sort-variable-declarations/compute-dependencies.js +8 -0
  143. package/dist/rules/sort-variable-declarations/compute-matched-context-options.js +21 -2
  144. package/dist/rules/sort-variable-declarations/compute-node-name.js +9 -1
  145. package/dist/rules/sort-variable-declarations/sort-variable-declaration.js +35 -30
  146. package/dist/rules/sort-variable-declarations/types.js +16 -9
  147. package/dist/rules/sort-variable-declarations.js +17 -17
  148. package/dist/types/scoped-regex-option.js +1 -1
  149. package/dist/utils/alphabet.js +50 -40
  150. package/dist/utils/assert-is-never.js +6 -0
  151. package/dist/utils/build-ast-listeners.js +13 -3
  152. package/dist/utils/build-options-by-group-index-computer.js +19 -0
  153. package/dist/utils/build-sorting-node-by-node-map.js +6 -0
  154. package/dist/utils/compare/build-line-length-comparator.js +8 -4
  155. package/dist/utils/compare/build-string-formatter.js +21 -0
  156. package/dist/utils/compare/build-subgroup-order-comparator.js +7 -4
  157. package/dist/utils/compare/compare-alphabetically.js +20 -3
  158. package/dist/utils/compare/compare-by-custom-sort.js +7 -3
  159. package/dist/utils/compare/compare-naturally.js +23 -7
  160. package/dist/utils/compare/compute-comparators.js +19 -5
  161. package/dist/utils/compare/compute-ordered-value.js +10 -0
  162. package/dist/utils/compare/default-comparator-by-options-computer.js +2 -2
  163. package/dist/utils/compare/unsorted-comparator.js +1 -1
  164. package/dist/utils/complete.js +35 -1
  165. package/dist/utils/compute-deep-scope-references.js +7 -0
  166. package/dist/utils/compute-dependencies-by-sorting-node.js +14 -0
  167. package/dist/utils/compute-dependencies-outside-functions-by-sorting-node.js +12 -11
  168. package/dist/utils/compute-group-name.js +11 -0
  169. package/dist/utils/compute-group.js +35 -0
  170. package/dist/utils/compute-groups-names.js +8 -0
  171. package/dist/utils/compute-nodes-in-circular-dependencies.js +45 -0
  172. package/dist/utils/compute-overridden-options-by-group-index.js +40 -3
  173. package/dist/utils/compute-parent-nodes-with-types.js +12 -0
  174. package/dist/utils/context-matching/passes-all-names-match-pattern-filter.js +10 -0
  175. package/dist/utils/context-matching/passes-ast-selector-filter.js +10 -0
  176. package/dist/utils/convert-boolean-to-sign.js +26 -0
  177. package/dist/utils/create-eslint-rule.js +13 -1
  178. package/dist/utils/create-node-index-map.js +25 -0
  179. package/dist/utils/does-custom-group-match.js +77 -14
  180. package/dist/utils/does-sorting-node-have-one-of-dependency-names.js +9 -0
  181. package/dist/utils/generate-predefined-groups.js +26 -0
  182. package/dist/utils/get-array-combinations.js +7 -0
  183. package/dist/utils/get-comment-above-that-should-exist.js +47 -5
  184. package/dist/utils/get-comments-before.js +14 -2
  185. package/dist/utils/get-decorator-name.js +36 -0
  186. package/dist/utils/get-enum-members.js +25 -4
  187. package/dist/utils/get-eslint-disabled-lines.js +69 -7
  188. package/dist/utils/get-eslint-disabled-rules.js +81 -3
  189. package/dist/utils/get-group-index.js +31 -0
  190. package/dist/utils/get-lines-between.js +40 -5
  191. package/dist/utils/get-newlines-between-errors.js +39 -0
  192. package/dist/utils/get-newlines-between-option.js +44 -8
  193. package/dist/utils/get-node-decorators.js +20 -4
  194. package/dist/utils/get-node-range.js +58 -1
  195. package/dist/utils/get-options-with-clean-groups.js +62 -0
  196. package/dist/utils/get-settings.js +43 -1
  197. package/dist/utils/is-group-with-overrides-option.js +27 -0
  198. package/dist/utils/is-newlines-between-option.js +33 -0
  199. package/dist/utils/is-node-dependent-on-other-node.js +40 -0
  200. package/dist/utils/is-node-eslint-disabled.js +27 -0
  201. package/dist/utils/is-node-on-single-line.js +6 -0
  202. package/dist/utils/is-partition-comment.js +67 -0
  203. package/dist/utils/is-sortable.js +6 -0
  204. package/dist/utils/json-schemas/common-groups-json-schemas.js +92 -23
  205. package/dist/utils/json-schemas/common-json-schemas.js +65 -16
  206. package/dist/utils/json-schemas/common-partition-json-schemas.js +12 -6
  207. package/dist/utils/json-schemas/scoped-regex-json-schema.js +2 -2
  208. package/dist/utils/make-comment-above-fixes.js +60 -8
  209. package/dist/utils/make-comment-after-fixes.js +29 -0
  210. package/dist/utils/make-fixes.js +49 -0
  211. package/dist/utils/make-newlines-between-fixes.js +89 -10
  212. package/dist/utils/make-order-fixes.js +49 -5
  213. package/dist/utils/make-single-node-comment-after-fixes.js +49 -2
  214. package/dist/utils/matches.js +45 -0
  215. package/dist/utils/overload-signature/build-overload-signature-newlines-between-value-getter.d.ts +6 -3
  216. package/dist/utils/overload-signature/build-overload-signature-newlines-between-value-getter.js +11 -2
  217. package/dist/utils/overload-signature/overload-signature-group.js +4 -1
  218. package/dist/utils/overload-signature/populate-sorting-node-groups-with-overload-signature.js +10 -0
  219. package/dist/utils/pairwise.js +32 -3
  220. package/dist/utils/populate-sorting-node-groups-with-dependencies.js +9 -0
  221. package/dist/utils/range-contains-range.js +7 -0
  222. package/dist/utils/range-to-diff.js +37 -0
  223. package/dist/utils/report-all-errors.js +88 -14
  224. package/dist/utils/report-errors.js +90 -12
  225. package/dist/utils/scoped-regex/matches-scoped-expressions.js +23 -11
  226. package/dist/utils/scoped-regex/partition-patterns-by-scope.js +7 -2
  227. package/dist/utils/should-partition.js +83 -3
  228. package/dist/utils/sort-nodes-by-dependencies.js +91 -0
  229. package/dist/utils/sort-nodes-by-groups.js +73 -0
  230. package/dist/utils/sort-nodes.js +17 -0
  231. package/dist/utils/unreachable-case-error.js +34 -1
  232. package/dist/utils/validate-custom-sort-configuration.js +13 -0
  233. package/dist/utils/validate-groups-configuration.js +156 -4
  234. package/dist/utils/validate-newlines-and-partition-configuration.js +101 -7
  235. package/dist/utils/validate-no-duplicated-groups.js +7 -0
  236. package/dist/utils/validate-objects-inside-groups.js +58 -0
  237. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -18,3 +18,26 @@ declare const _default: {
18
18
  configs: PluginConfigs
19
19
  } & ESLint.Plugin
20
20
  export default _default
21
+ export type { Options as SortVariableDeclarationsOptions } from './rules/sort-variable-declarations/types.js'
22
+ export type { Options as SortIntersectionTypesOptions } from './rules/sort-intersection-types/types.js'
23
+ export type { Options as SortImportAttributesOptions } from './rules/sort-import-attributes/types.js'
24
+ export type { Options as SortExportAttributesOptions } from './rules/sort-export-attributes/types.js'
25
+ export type { Options as SortHeritageClausesOptions } from './rules/sort-heritage-clauses/types.js'
26
+ export type { Options as SortArrayIncludesOptions } from './rules/sort-array-includes/types.js'
27
+ export type { Options as SortNamedImportsOptions } from './rules/sort-named-imports/types.js'
28
+ export type { Options as SortNamedExportsOptions } from './rules/sort-named-exports/types.js'
29
+ export type { Options as SortObjectTypesOptions } from './rules/sort-object-types/types.js'
30
+ export type { Options as SortSwitchCaseOptions } from './rules/sort-switch-case/types.js'
31
+ export type { Options as SortUnionTypesOptions } from './rules/sort-union-types/types.js'
32
+ export type { Options as SortInterfacesOptions } from './rules/sort-interfaces/types.js'
33
+ export type { Options as SortDecoratorsOptions } from './rules/sort-decorators/types.js'
34
+ export type { Options as SortJsxPropsOptions } from './rules/sort-jsx-props/types.js'
35
+ export type { Options as SortClassesOptions } from './rules/sort-classes/types.js'
36
+ export type { Options as SortImportsOptions } from './rules/sort-imports/types.js'
37
+ export type { Options as SortExportsOptions } from './rules/sort-exports/types.js'
38
+ export type { Options as SortObjectsOptions } from './rules/sort-objects/types.js'
39
+ export type { Options as SortModulesOptions } from './rules/sort-modules/types.js'
40
+ export type { Options as SortArraysOptions } from './rules/sort-arrays/types.js'
41
+ export type { Options as SortEnumsOptions } from './rules/sort-enums/types.js'
42
+ export type { Options as SortMapsOptions } from './rules/sort-maps/types.js'
43
+ export type { Options as SortSetsOptions } from './rules/sort-sets/types.js'
package/dist/index.js CHANGED
@@ -1,57 +1,57 @@
1
1
  import { name, version } from './package.json.js'
2
- import sortVariableDeclarations from './rules/sort-variable-declarations.js'
3
- import sortIntersectionTypes from './rules/sort-intersection-types.js'
4
- import sortImportAttributes from './rules/sort-import-attributes.js'
5
- import sortExportAttributes from './rules/sort-export-attributes.js'
6
- import sortHeritageClauses from './rules/sort-heritage-clauses.js'
7
- import sortArrayIncludes from './rules/sort-array-includes.js'
8
- import sortNamedImports from './rules/sort-named-imports.js'
9
- import sortNamedExports from './rules/sort-named-exports.js'
10
- import sortObjectTypes from './rules/sort-object-types.js'
11
- import sortSwitchCase from './rules/sort-switch-case.js'
12
- import sortUnionTypes from './rules/sort-union-types.js'
13
- import sortInterfaces from './rules/sort-interfaces.js'
14
- import sortDecorators from './rules/sort-decorators.js'
15
- import sortJsxProps from './rules/sort-jsx-props.js'
16
- import sortClasses from './rules/sort-classes.js'
17
- import sortImports from './rules/sort-imports.js'
18
- import sortExports from './rules/sort-exports.js'
19
- import sortObjects from './rules/sort-objects.js'
20
- import sortModules from './rules/sort-modules.js'
21
- import sortArrays from './rules/sort-arrays.js'
22
- import sortEnums from './rules/sort-enums.js'
23
- import sortMaps from './rules/sort-maps.js'
24
- import sortSets from './rules/sort-sets.js'
25
- let pluginName = 'perfectionist'
26
- let recommendedRules = {
27
- 'sort-variable-declarations': sortVariableDeclarations,
28
- 'sort-intersection-types': sortIntersectionTypes,
29
- 'sort-import-attributes': sortImportAttributes,
30
- 'sort-export-attributes': sortExportAttributes,
31
- 'sort-heritage-clauses': sortHeritageClauses,
32
- 'sort-array-includes': sortArrayIncludes,
33
- 'sort-named-imports': sortNamedImports,
34
- 'sort-named-exports': sortNamedExports,
35
- 'sort-object-types': sortObjectTypes,
36
- 'sort-union-types': sortUnionTypes,
37
- 'sort-switch-case': sortSwitchCase,
38
- 'sort-decorators': sortDecorators,
39
- 'sort-interfaces': sortInterfaces,
40
- 'sort-jsx-props': sortJsxProps,
41
- 'sort-modules': sortModules,
42
- 'sort-classes': sortClasses,
43
- 'sort-imports': sortImports,
44
- 'sort-exports': sortExports,
45
- 'sort-objects': sortObjects,
46
- 'sort-enums': sortEnums,
47
- 'sort-sets': sortSets,
48
- 'sort-maps': sortMaps,
2
+ import sort_variable_declarations_default from './rules/sort-variable-declarations.js'
3
+ import sort_union_types_default from './rules/sort-union-types.js'
4
+ import sort_intersection_types_default from './rules/sort-intersection-types.js'
5
+ import sort_import_attributes_default from './rules/sort-import-attributes.js'
6
+ import sort_export_attributes_default from './rules/sort-export-attributes.js'
7
+ import sort_heritage_clauses_default from './rules/sort-heritage-clauses.js'
8
+ import sort_array_includes_default from './rules/sort-array-includes.js'
9
+ import sort_named_imports_default from './rules/sort-named-imports.js'
10
+ import sort_named_exports_default from './rules/sort-named-exports.js'
11
+ import sort_object_types_default from './rules/sort-object-types.js'
12
+ import sort_switch_case_default from './rules/sort-switch-case.js'
13
+ import sort_interfaces_default from './rules/sort-interfaces.js'
14
+ import sort_decorators_default from './rules/sort-decorators.js'
15
+ import sort_jsx_props_default from './rules/sort-jsx-props.js'
16
+ import sort_classes_default from './rules/sort-classes.js'
17
+ import sort_imports_default from './rules/sort-imports.js'
18
+ import sort_exports_default from './rules/sort-exports.js'
19
+ import sort_objects_default from './rules/sort-objects.js'
20
+ import sort_modules_default from './rules/sort-modules.js'
21
+ import sort_arrays_default from './rules/sort-arrays.js'
22
+ import sort_enums_default from './rules/sort-enums.js'
23
+ import sort_maps_default from './rules/sort-maps.js'
24
+ import sort_sets_default from './rules/sort-sets.js'
25
+ var pluginName = 'perfectionist'
26
+ var recommendedRules = {
27
+ 'sort-variable-declarations': sort_variable_declarations_default,
28
+ 'sort-intersection-types': sort_intersection_types_default,
29
+ 'sort-import-attributes': sort_import_attributes_default,
30
+ 'sort-export-attributes': sort_export_attributes_default,
31
+ 'sort-heritage-clauses': sort_heritage_clauses_default,
32
+ 'sort-array-includes': sort_array_includes_default,
33
+ 'sort-named-imports': sort_named_imports_default,
34
+ 'sort-named-exports': sort_named_exports_default,
35
+ 'sort-object-types': sort_object_types_default,
36
+ 'sort-union-types': sort_union_types_default,
37
+ 'sort-switch-case': sort_switch_case_default,
38
+ 'sort-decorators': sort_decorators_default,
39
+ 'sort-interfaces': sort_interfaces_default,
40
+ 'sort-jsx-props': sort_jsx_props_default,
41
+ 'sort-modules': sort_modules_default,
42
+ 'sort-classes': sort_classes_default,
43
+ 'sort-imports': sort_imports_default,
44
+ 'sort-exports': sort_exports_default,
45
+ 'sort-objects': sort_objects_default,
46
+ 'sort-enums': sort_enums_default,
47
+ 'sort-sets': sort_sets_default,
48
+ 'sort-maps': sort_maps_default,
49
49
  }
50
- let rules = {
50
+ var rules = {
51
51
  ...recommendedRules,
52
- 'sort-arrays': sortArrays,
52
+ 'sort-arrays': sort_arrays_default,
53
53
  }
54
- let plugin = {
54
+ var plugin = {
55
55
  meta: {
56
56
  version,
57
57
  name,
@@ -68,9 +68,7 @@ function getRules(options) {
68
68
  }
69
69
  function createConfig(options) {
70
70
  return {
71
- plugins: {
72
- [pluginName]: plugin,
73
- },
71
+ plugins: { [pluginName]: plugin },
74
72
  rules: getRules(options),
75
73
  }
76
74
  }
@@ -80,7 +78,7 @@ function createLegacyConfig(options) {
80
78
  plugins: [pluginName],
81
79
  }
82
80
  }
83
- let configs = {
81
+ var configs = {
84
82
  'recommended-alphabetical-legacy': createLegacyConfig({
85
83
  type: 'alphabetical',
86
84
  order: 'asc',
@@ -114,8 +112,8 @@ let configs = {
114
112
  order: 'asc',
115
113
  }),
116
114
  }
117
- const index = {
115
+ var eslint_plugin_perfectionist_default = {
118
116
  ...plugin,
119
117
  configs,
120
118
  }
121
- export { configs, index as default, rules }
119
+ export { configs, eslint_plugin_perfectionist_default as default, rules }
@@ -1,3 +1,3 @@
1
- const name = 'eslint-plugin-perfectionist'
2
- const version = '5.8.0'
1
+ var name = 'eslint-plugin-perfectionist'
2
+ var version = '5.9.0'
3
3
  export { name, version }
@@ -0,0 +1,2 @@
1
+ import { Options as SortArraysOptions } from '../sort-arrays/types.js'
2
+ export type Options = SortArraysOptions
@@ -1,5 +1,5 @@
1
1
  import { JSONSchema4 } from '@typescript-eslint/utils/json-schema'
2
- import { Options } from './sort-arrays/types.js'
2
+ import { Options } from './sort-array-includes/types.js'
3
3
  declare const ORDER_ERROR_ID = 'unexpectedArrayIncludesOrder'
4
4
  declare const GROUP_ORDER_ERROR_ID = 'unexpectedArrayIncludesGroupOrder'
5
5
  declare const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenArrayIncludesMembers'
@@ -14,7 +14,7 @@ export declare let defaultOptions: Required<Options[number]>
14
14
  export declare let jsonSchema: JSONSchema4
15
15
  declare const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<
16
16
  MessageId,
17
- Options,
17
+ import('...js').SortArraysOptions,
18
18
  {
19
19
  recommended?: boolean
20
20
  },
@@ -1,30 +1,33 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils'
2
1
  import {
2
+ buildCommonJsonSchemas,
3
3
  buildUseConfigurationIfJsonSchema,
4
4
  matchesAstSelectorJsonSchema,
5
- buildCommonJsonSchemas,
6
5
  } from '../utils/json-schemas/common-json-schemas.js'
6
+ import { buildCommonGroupsJsonSchemas } from '../utils/json-schemas/common-groups-json-schemas.js'
7
7
  import {
8
- partitionByNewLineJsonSchema,
9
- partitionByCommentJsonSchema,
10
- } from '../utils/json-schemas/common-partition-json-schemas.js'
11
- import {
12
- ORDER_ERROR,
13
- GROUP_ORDER_ERROR,
14
8
  EXTRA_SPACING_ERROR,
9
+ GROUP_ORDER_ERROR,
15
10
  MISSED_SPACING_ERROR,
11
+ ORDER_ERROR,
16
12
  } from '../utils/report-errors.js'
17
- import { buildCommonGroupsJsonSchemas } from '../utils/json-schemas/common-groups-json-schemas.js'
18
- import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
13
+ import {
14
+ partitionByCommentJsonSchema,
15
+ partitionByNewLineJsonSchema,
16
+ } from '../utils/json-schemas/common-partition-json-schemas.js'
19
17
  import { buildAstListeners } from '../utils/build-ast-listeners.js'
20
18
  import { createEslintRule } from '../utils/create-eslint-rule.js'
19
+ import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
21
20
  import { sortArray } from './sort-arrays/sort-array.js'
22
- let cachedGroupsByModifiersAndSelectors = /* @__PURE__ */ new Map()
23
- const ORDER_ERROR_ID = 'unexpectedArrayIncludesOrder'
24
- const GROUP_ORDER_ERROR_ID = 'unexpectedArrayIncludesGroupOrder'
25
- const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenArrayIncludesMembers'
26
- const MISSED_SPACING_ERROR_ID = 'missedSpacingBetweenArrayIncludesMembers'
27
- let defaultOptions = {
21
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils'
22
+ /**
23
+ * Cache computed groups by modifiers and selectors for performance.
24
+ */
25
+ var cachedGroupsByModifiersAndSelectors = /* @__PURE__ */ new Map()
26
+ var ORDER_ERROR_ID = 'unexpectedArrayIncludesOrder'
27
+ var GROUP_ORDER_ERROR_ID = 'unexpectedArrayIncludesGroupOrder'
28
+ var EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenArrayIncludesMembers'
29
+ var MISSED_SPACING_ERROR_ID = 'missedSpacingBetweenArrayIncludesMembers'
30
+ var defaultOptions = {
28
31
  fallbackSort: { type: 'unsorted' },
29
32
  newlinesInside: 'newlinesBetween',
30
33
  specialCharacters: 'keep',
@@ -40,7 +43,7 @@ let defaultOptions = {
40
43
  alphabet: '',
41
44
  order: 'asc',
42
45
  }
43
- let jsonSchema = {
46
+ var jsonSchema = {
44
47
  items: {
45
48
  properties: {
46
49
  ...buildCommonJsonSchemas(),
@@ -62,7 +65,7 @@ let jsonSchema = {
62
65
  uniqueItems: true,
63
66
  type: 'array',
64
67
  }
65
- const sortArrayIncludes = createEslintRule({
68
+ var sort_array_includes_default = createEslintRule({
66
69
  meta: {
67
70
  messages: {
68
71
  [MISSED_SPACING_ERROR_ID]: MISSED_SPACING_ERROR,
@@ -125,4 +128,4 @@ function sortPotentiallyValidArray({ matchedAstSelectors, context, node }) {
125
128
  return true
126
129
  }
127
130
  }
128
- export { sortArrayIncludes as default, defaultOptions, jsonSchema }
131
+ export { sort_array_includes_default as default, defaultOptions, jsonSchema }
@@ -1,5 +1,12 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils'
2
1
  import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
2
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils'
3
+ /**
4
+ * Computes array elements for the given expression.
5
+ *
6
+ * @param expression - The expression to compute array elements from.
7
+ * @returns An array of elements if the expression is an array or a new
8
+ * expression, otherwise null.
9
+ */
3
10
  function computeArrayElements(expression) {
4
11
  switch (expression.type) {
5
12
  case AST_NODE_TYPES.ArrayExpression:
@@ -1,6 +1,17 @@
1
1
  import { passesAllNamesMatchPatternFilter } from '../../utils/context-matching/passes-all-names-match-pattern-filter.js'
2
2
  import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
3
3
  import { computeNodeName } from './compute-node-name.js'
4
+ /**
5
+ * Computes the matched context options for a given array node.
6
+ *
7
+ * @param params - Parameters.
8
+ * @param params.matchedAstSelectors - The matched AST selectors for an array
9
+ * node.
10
+ * @param params.elements - The array elements to compute the context options
11
+ * for.
12
+ * @param params.context - The rule context.
13
+ * @returns The matched context options or undefined if none match.
14
+ */
4
15
  function computeMatchedContextOptions({
5
16
  matchedAstSelectors,
6
17
  elements,
@@ -9,10 +20,17 @@ function computeMatchedContextOptions({
9
20
  let nodeNames = elements
10
21
  .filter(element => element !== null)
11
22
  .map(element =>
12
- computeNodeName({ sourceCode: context.sourceCode, node: element }),
23
+ computeNodeName({
24
+ sourceCode: context.sourceCode,
25
+ node: element,
26
+ }),
13
27
  )
14
28
  return context.options.find(options =>
15
- isContextOptionMatching({ matchedAstSelectors, nodeNames, options }),
29
+ isContextOptionMatching({
30
+ matchedAstSelectors,
31
+ nodeNames,
32
+ options,
33
+ }),
16
34
  )
17
35
  }
18
36
  function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
@@ -1,4 +1,12 @@
1
1
  import { AST_NODE_TYPES } from '@typescript-eslint/utils'
2
+ /**
3
+ * Computes the name of an array member.
4
+ *
5
+ * @param props - The parameters object.
6
+ * @param props.sourceCode - ESLint source code object for text extraction.
7
+ * @param props.node - The AST node representing an array member.
8
+ * @returns The name of the array member.
9
+ */
2
10
  function computeNodeName({ sourceCode, node }) {
3
11
  return node.type === AST_NODE_TYPES.Literal ?
4
12
  `${node.value}`
@@ -1,25 +1,25 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils'
2
1
  import { validateNewlinesAndPartitionConfiguration } from '../../utils/validate-newlines-and-partition-configuration.js'
3
2
  import { defaultComparatorByOptionsComputer } from '../../utils/compare/default-comparator-by-options-computer.js'
4
3
  import { buildOptionsByGroupIndexComputer } from '../../utils/build-options-by-group-index-computer.js'
5
4
  import { validateCustomSortConfiguration } from '../../utils/validate-custom-sort-configuration.js'
6
5
  import { validateGroupsConfiguration } from '../../utils/validate-groups-configuration.js'
7
6
  import { generatePredefinedGroups } from '../../utils/generate-predefined-groups.js'
8
- import { computeMatchedContextOptions } from './compute-matched-context-options.js'
9
7
  import { getEslintDisabledLines } from '../../utils/get-eslint-disabled-lines.js'
10
8
  import { doesCustomGroupMatch } from '../../utils/does-custom-group-match.js'
11
9
  import { isNodeEslintDisabled } from '../../utils/is-node-eslint-disabled.js'
12
10
  import { sortNodesByGroups } from '../../utils/sort-nodes-by-groups.js'
13
- import { computeArrayElements } from './compute-array-elements.js'
14
11
  import { reportAllErrors } from '../../utils/report-all-errors.js'
15
12
  import { shouldPartition } from '../../utils/should-partition.js'
16
13
  import { computeGroup } from '../../utils/compute-group.js'
17
14
  import { rangeToDiff } from '../../utils/range-to-diff.js'
18
15
  import { getSettings } from '../../utils/get-settings.js'
19
- import { computeNodeName } from './compute-node-name.js'
20
16
  import { isSortable } from '../../utils/is-sortable.js'
21
17
  import { complete } from '../../utils/complete.js'
22
18
  import { allSelectors } from './types.js'
19
+ import { computeNodeName } from './compute-node-name.js'
20
+ import { computeMatchedContextOptions } from './compute-matched-context-options.js'
21
+ import { computeArrayElements } from './compute-array-elements.js'
22
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils'
23
23
  function sortArray({
24
24
  cachedGroupsByModifiersAndSelectors,
25
25
  mustHaveMatchedContextOptions,
@@ -68,13 +68,11 @@ function sortArray({
68
68
  accumulator.push([])
69
69
  return accumulator
70
70
  }
71
- let name = computeNodeName({ node: element, sourceCode })
72
- let selector = 'literal'
73
- let predefinedGroups = generatePredefinedGroups({
74
- cache: cachedGroupsByModifiersAndSelectors,
75
- selectors: [selector],
76
- modifiers: [],
71
+ let name = computeNodeName({
72
+ node: element,
73
+ sourceCode,
77
74
  })
75
+ let selector = 'literal'
78
76
  let group = computeGroup({
79
77
  customGroupMatcher: customGroup =>
80
78
  doesCustomGroupMatch({
@@ -83,7 +81,11 @@ function sortArray({
83
81
  modifiers: [],
84
82
  customGroup,
85
83
  }),
86
- predefinedGroups,
84
+ predefinedGroups: generatePredefinedGroups({
85
+ cache: cachedGroupsByModifiersAndSelectors,
86
+ selectors: [selector],
87
+ modifiers: [],
88
+ }),
87
89
  options,
88
90
  })
89
91
  let sortingNode = {
@@ -113,23 +115,22 @@ function sortArray({
113
115
  [[]],
114
116
  )
115
117
  function sortNodesExcludingEslintDisabled(ignoreEslintDisabledNodes) {
116
- return formattedMembers.flatMap(nodes2 =>
118
+ return formattedMembers.flatMap(nodes =>
117
119
  sortNodesByGroups({
118
120
  comparatorByOptionsComputer: defaultComparatorByOptionsComputer,
119
121
  optionsByGroupIndexComputer,
120
122
  ignoreEslintDisabledNodes,
121
123
  groups: options.groups,
122
- nodes: nodes2,
124
+ nodes,
123
125
  }),
124
126
  )
125
127
  }
126
- let nodes = formattedMembers.flat()
127
128
  reportAllErrors({
128
129
  sortNodesExcludingEslintDisabled,
129
130
  availableMessageIds,
130
131
  options,
131
132
  context,
132
- nodes,
133
+ nodes: formattedMembers.flat(),
133
134
  })
134
135
  }
135
136
  export { sortArray }
@@ -1,6 +1,14 @@
1
1
  import { buildCustomGroupSelectorJsonSchema } from '../../utils/json-schemas/common-groups-json-schemas.js'
2
- let allSelectors = ['literal']
3
- let additionalCustomGroupMatchOptionsJsonSchema = {
2
+ /**
3
+ * Complete list of available selectors for array elements. Used for validation
4
+ * and JSON schema generation.
5
+ */
6
+ var allSelectors = ['literal']
7
+ /**
8
+ * Additional custom group match options JSON schema. Used by ESLint to validate
9
+ * rule options at configuration time.
10
+ */
11
+ var additionalCustomGroupMatchOptionsJsonSchema = {
4
12
  selector: buildCustomGroupSelectorJsonSchema(allSelectors),
5
13
  }
6
14
  export { additionalCustomGroupMatchOptionsJsonSchema, allSelectors }
@@ -1,30 +1,33 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils'
2
1
  import {
2
+ buildCommonJsonSchemas,
3
3
  buildUseConfigurationIfJsonSchema,
4
4
  matchesAstSelectorJsonSchema,
5
- buildCommonJsonSchemas,
6
5
  } from '../utils/json-schemas/common-json-schemas.js'
6
+ import { buildCommonGroupsJsonSchemas } from '../utils/json-schemas/common-groups-json-schemas.js'
7
7
  import {
8
- partitionByNewLineJsonSchema,
9
- partitionByCommentJsonSchema,
10
- } from '../utils/json-schemas/common-partition-json-schemas.js'
11
- import {
12
- ORDER_ERROR,
13
- GROUP_ORDER_ERROR,
14
8
  EXTRA_SPACING_ERROR,
9
+ GROUP_ORDER_ERROR,
15
10
  MISSED_SPACING_ERROR,
11
+ ORDER_ERROR,
16
12
  } from '../utils/report-errors.js'
17
- import { buildCommonGroupsJsonSchemas } from '../utils/json-schemas/common-groups-json-schemas.js'
18
- import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
13
+ import {
14
+ partitionByCommentJsonSchema,
15
+ partitionByNewLineJsonSchema,
16
+ } from '../utils/json-schemas/common-partition-json-schemas.js'
19
17
  import { buildAstListeners } from '../utils/build-ast-listeners.js'
20
18
  import { createEslintRule } from '../utils/create-eslint-rule.js'
19
+ import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
21
20
  import { sortArray } from './sort-arrays/sort-array.js'
22
- let cachedGroupsByModifiersAndSelectors = /* @__PURE__ */ new Map()
23
- const ORDER_ERROR_ID = 'unexpectedArraysOrder'
24
- const GROUP_ORDER_ERROR_ID = 'unexpectedArraysGroupOrder'
25
- const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenArraysMembers'
26
- const MISSED_SPACING_ERROR_ID = 'missedSpacingBetweenArraysMembers'
27
- let defaultOptions = {
21
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils'
22
+ /**
23
+ * Cache computed groups by modifiers and selectors for performance.
24
+ */
25
+ var cachedGroupsByModifiersAndSelectors = /* @__PURE__ */ new Map()
26
+ var ORDER_ERROR_ID = 'unexpectedArraysOrder'
27
+ var GROUP_ORDER_ERROR_ID = 'unexpectedArraysGroupOrder'
28
+ var EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenArraysMembers'
29
+ var MISSED_SPACING_ERROR_ID = 'missedSpacingBetweenArraysMembers'
30
+ var defaultOptions = {
28
31
  fallbackSort: { type: 'unsorted' },
29
32
  newlinesInside: 'newlinesBetween',
30
33
  specialCharacters: 'keep',
@@ -40,7 +43,7 @@ let defaultOptions = {
40
43
  alphabet: '',
41
44
  order: 'asc',
42
45
  }
43
- let jsonSchema = {
46
+ var jsonSchema = {
44
47
  items: {
45
48
  properties: {
46
49
  ...buildCommonJsonSchemas(),
@@ -63,7 +66,7 @@ let jsonSchema = {
63
66
  uniqueItems: true,
64
67
  type: 'array',
65
68
  }
66
- const sortArrays = createEslintRule({
69
+ var sort_arrays_default = createEslintRule({
67
70
  meta: {
68
71
  messages: {
69
72
  [MISSED_SPACING_ERROR_ID]: MISSED_SPACING_ERROR,
@@ -105,4 +108,4 @@ function sorter({ matchedAstSelectors, context, node }) {
105
108
  node,
106
109
  })
107
110
  }
108
- export { sortArrays as default }
111
+ export { sort_arrays_default as default }
@@ -1,21 +1,20 @@
1
- import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils'
1
+ import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
2
+ import { matches } from '../../utils/matches.js'
2
3
  import { computeDependenciesBySortingNode as computeDependenciesBySortingNode$1 } from '../../utils/compute-dependencies-by-sorting-node.js'
3
4
  import { computeParentNodesWithTypes } from '../../utils/compute-parent-nodes-with-types.js'
4
5
  import { computeIdentifierNameDetails } from './compute-identifier-name-details.js'
5
- import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
6
- import { matches } from '../../utils/matches.js'
6
+ import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/utils'
7
7
  function computeDependenciesBySortingNode({
8
8
  ignoreCallbackDependenciesPatterns,
9
9
  sortingNodes,
10
10
  sourceCode,
11
11
  classBody,
12
12
  }) {
13
- let staticSortingNodes = sortingNodes.filter(node => node.isStatic)
14
13
  let dependenciesBySortingNode = computeDependenciesBySortingNode$1({
15
14
  additionalIdentifierDependenciesComputer:
16
15
  buildAdditionalIdentifierDependenciesComputer({
17
16
  ignoreCallbackDependenciesPatterns,
18
- staticSortingNodes,
17
+ staticSortingNodes: sortingNodes.filter(node => node.isStatic),
19
18
  classBody,
20
19
  }),
21
20
  shouldIgnoreSortingNodeComputer: sortingNode =>
@@ -48,10 +47,12 @@ function computeIdentifierOrThisExpressionDependency({
48
47
  return null
49
48
  }
50
49
  let { parent } = node
50
+ /* v8 ignore if -- @preserve Unsure how we can reach that case */
51
51
  if (parent.type !== AST_NODE_TYPES.MemberExpression) {
52
52
  return null
53
53
  }
54
54
  let dependencyName = computeDependencyNameFromMemberExpression(parent)
55
+ /* v8 ignore if -- @preserve Unsure how we can reach that case */
55
56
  if (!dependencyName) {
56
57
  return null
57
58
  }
@@ -102,11 +103,10 @@ function computeThisExpressionDependenciesBySortingNode({
102
103
  sortingNode => !shouldIgnoreDependencyComputation(sortingNode.node),
103
104
  )
104
105
  for (let sortingNode of relevantSortingNodes) {
105
- let thisExpressions = computeThisExpressionsInsideClassElement({
106
+ let dependencies = computeThisExpressionsInsideClassElement({
106
107
  classElement: sortingNode.node,
107
108
  sourceCode,
108
109
  })
109
- let dependencies = thisExpressions
110
110
  .map(thisExpression =>
111
111
  computeIdentifierOrThisExpressionDependency({
112
112
  sortingNodes:
@@ -130,8 +130,7 @@ function buildAdditionalIdentifierDependenciesComputer({
130
130
  classBody,
131
131
  }) {
132
132
  return ({ referencingSortingNode, reference }) => {
133
- let resolvedClassIdentifier = reference.resolved?.identifiers[0]
134
- if (!resolvedClassIdentifier) {
133
+ if (!reference.resolved?.identifiers[0]) {
135
134
  return []
136
135
  }
137
136
  let classIdentifier = classBody.parent.id
@@ -172,8 +171,9 @@ function computeThisExpressionsInsideClassElement({
172
171
  classElement,
173
172
  sourceCode,
174
173
  }) {
175
- let thisTokens = sourceCode.getTokens(classElement).filter(isThisToken)
176
- return thisTokens
174
+ return sourceCode
175
+ .getTokens(classElement)
176
+ .filter(isThisToken)
177
177
  .map(computeTokenNode)
178
178
  .filter(node => node?.type === AST_NODE_TYPES.ThisExpression)
179
179
  function computeTokenNode(token) {
@@ -1,7 +1,21 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils'
1
+ import { matches } from '../../utils/matches.js'
2
2
  import { computeIdentifierNameDetails } from './compute-identifier-name-details.js'
3
3
  import { computeDependencyName } from './compute-dependency-name.js'
4
- import { matches } from '../../utils/matches.js'
4
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils'
5
+ /**
6
+ * Computes the dependencies of a class member AST node.
7
+ *
8
+ * @deprecated - To remove when experimental dependency detection is the only.
9
+ * @param params - Parameters object.
10
+ * @param params.ignoreCallbackDependenciesPatterns - Patterns to ignore
11
+ * callback dependencies.
12
+ * @param params.useExperimentalDependencyDetection - Whether to use
13
+ * experimental dependency detection.
14
+ * @param params.isMemberStatic - Indicates if the member is static.
15
+ * @param params.expression - The AST node expression to analyze.
16
+ * @param params.className - The name of the class, if available.
17
+ * @returns The names of the dependencies.
18
+ */
5
19
  function computeDependencies({
6
20
  ignoreCallbackDependenciesPatterns,
7
21
  useExperimentalDependencyDetection,
@@ -50,6 +64,8 @@ function computeDependencies({
50
64
  traverseNode(nodeValue.key)
51
65
  traverseNode(nodeValue.value)
52
66
  break
67
+ default:
68
+ break
53
69
  }
54
70
  if ('argument' in nodeValue && nodeValue.argument) {
55
71
  traverseNode(nodeValue.argument)
@@ -64,10 +80,9 @@ function computeDependencies({
64
80
  traverseNode(nodeValue.declarations)
65
81
  }
66
82
  if ('elements' in nodeValue) {
67
- let elements = nodeValue.elements.filter(
68
- currentNode => currentNode !== null,
83
+ traverseNode(
84
+ nodeValue.elements.filter(currentNode => currentNode !== null),
69
85
  )
70
- traverseNode(elements)
71
86
  }
72
87
  if (
73
88
  'expression' in nodeValue &&
@@ -121,6 +136,7 @@ function computeMemberExpressionDependencies({
121
136
  }
122
137
  function computeIdentifierOrThisExpressionDependencies() {
123
138
  let dependency = computeDependencyFromProperty()
139
+ /* v8 ignore next 2 -- @preserve Unhandled cases */
124
140
  if (!dependency) {
125
141
  return []
126
142
  }