eslint-plugin-perfectionist 5.8.0 → 5.9.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/index.d.ts +23 -0
- package/dist/index.js +54 -56
- package/dist/package.json.js +2 -2
- package/dist/rules/sort-array-includes/types.d.ts +2 -0
- package/dist/rules/sort-array-includes.d.ts +2 -2
- package/dist/rules/sort-array-includes.js +23 -20
- package/dist/rules/sort-arrays/compute-array-elements.js +8 -1
- package/dist/rules/sort-arrays/compute-matched-context-options.js +20 -2
- package/dist/rules/sort-arrays/compute-node-name.js +8 -0
- package/dist/rules/sort-arrays/sort-array.js +16 -15
- package/dist/rules/sort-arrays/types.js +10 -2
- package/dist/rules/sort-arrays.js +23 -20
- package/dist/rules/sort-classes/compute-dependencies-by-sorting-node.js +11 -11
- package/dist/rules/sort-classes/compute-dependencies.js +21 -5
- package/dist/rules/sort-classes/compute-identifier-name-details.js +8 -1
- package/dist/rules/sort-classes/compute-matched-context-options.js +16 -3
- package/dist/rules/sort-classes/compute-overload-signature-groups.js +11 -6
- package/dist/rules/sort-classes/is-known-class-element.js +10 -0
- package/dist/rules/sort-classes/node-info/common-modifiers.js +5 -3
- package/dist/rules/sort-classes/node-info/compute-accessor-details.js +12 -3
- package/dist/rules/sort-classes/node-info/compute-index-signature-details.js +10 -1
- package/dist/rules/sort-classes/node-info/compute-method-details.js +16 -6
- package/dist/rules/sort-classes/node-info/compute-method-or-property-name-details.js +9 -1
- package/dist/rules/sort-classes/node-info/compute-property-details.js +20 -6
- package/dist/rules/sort-classes/node-info/compute-static-block-details.js +12 -0
- package/dist/rules/sort-classes/sort-class.js +73 -62
- package/dist/rules/sort-classes/types.d.ts +6 -0
- package/dist/rules/sort-classes/types.js +25 -10
- package/dist/rules/sort-classes.js +23 -19
- package/dist/rules/sort-decorators.js +39 -33
- package/dist/rules/sort-enums/build-comparator-by-options-computer.js +15 -4
- package/dist/rules/sort-enums/compute-dependencies-by-sorting-node.js +2 -2
- package/dist/rules/sort-enums/compute-dependencies.js +12 -0
- package/dist/rules/sort-enums/compute-expression-number-value.js +29 -0
- package/dist/rules/sort-enums/compute-matched-context-options.js +19 -2
- package/dist/rules/sort-enums/compute-node-name.js +8 -0
- package/dist/rules/sort-enums/sort-enum.js +46 -41
- package/dist/rules/sort-enums/types.js +10 -6
- package/dist/rules/sort-enums.js +20 -20
- package/dist/rules/sort-export-attributes/types.d.ts +2 -0
- package/dist/rules/sort-export-attributes.d.ts +1 -2
- package/dist/rules/sort-export-attributes.js +13 -13
- package/dist/rules/sort-exports/types.js +16 -4
- package/dist/rules/sort-exports.js +34 -32
- package/dist/rules/sort-heritage-clauses/compute-matched-context-options.js +15 -1
- package/dist/rules/sort-heritage-clauses/compute-node-name.js +11 -0
- package/dist/rules/sort-heritage-clauses/sort-heritage-clause.js +21 -18
- package/dist/rules/sort-heritage-clauses/types.js +4 -4
- package/dist/rules/sort-heritage-clauses.js +19 -19
- package/dist/rules/sort-import-attributes/compute-matched-context-options.js +17 -1
- package/dist/rules/sort-import-attributes/compute-node-name.js +11 -1
- package/dist/rules/sort-import-attributes/sort-import-or-export-attributes.js +12 -9
- package/dist/rules/sort-import-attributes.js +21 -21
- package/dist/rules/sort-imports/comparator-by-options-computer.js +16 -5
- package/dist/rules/sort-imports/compute-common-selectors.js +75 -12
- package/dist/rules/sort-imports/compute-dependencies.js +10 -1
- package/dist/rules/sort-imports/compute-dependency-names.js +9 -1
- package/dist/rules/sort-imports/compute-node-name.js +10 -3
- package/dist/rules/sort-imports/compute-specifier-modifiers.js +6 -0
- package/dist/rules/sort-imports/compute-specifier-name.js +1 -1
- package/dist/rules/sort-imports/get-typescript-import.js +14 -2
- package/dist/rules/sort-imports/is-non-external-reference-ts-import-equals.js +8 -0
- package/dist/rules/sort-imports/is-side-effect-import.js +10 -3
- package/dist/rules/sort-imports/is-side-effect-only-group.js +11 -1
- package/dist/rules/sort-imports/is-string-group-side-effect-only-group.js +9 -0
- package/dist/rules/sort-imports/matches-tsconfig-paths.js +32 -1
- package/dist/rules/sort-imports/read-closest-ts-config-by-path.js +41 -8
- package/dist/rules/sort-imports/types.d.ts +1 -1
- package/dist/rules/sort-imports/types.js +19 -8
- package/dist/rules/sort-imports/validate-side-effects-configuration.js +23 -8
- package/dist/rules/sort-imports.js +91 -82
- package/dist/rules/sort-interfaces/types.d.ts +2 -0
- package/dist/rules/sort-interfaces.d.ts +1 -2
- package/dist/rules/sort-interfaces.js +11 -11
- package/dist/rules/sort-intersection-types/types.d.ts +2 -0
- package/dist/rules/sort-intersection-types.d.ts +1 -2
- package/dist/rules/sort-intersection-types.js +15 -12
- package/dist/rules/sort-jsx-props/compute-matched-context-options.js +12 -2
- package/dist/rules/sort-jsx-props/compute-node-name.js +7 -1
- package/dist/rules/sort-jsx-props/sort-jsx-object.js +33 -28
- package/dist/rules/sort-jsx-props/types.js +21 -9
- package/dist/rules/sort-jsx-props.js +19 -19
- package/dist/rules/sort-maps/compute-matched-context-options.js +19 -3
- package/dist/rules/sort-maps/compute-node-name.js +12 -0
- package/dist/rules/sort-maps/sort-potential-map.js +20 -17
- package/dist/rules/sort-maps/types.js +4 -4
- package/dist/rules/sort-maps.js +17 -17
- package/dist/rules/sort-modules/build-comparator-by-options-computer.js +1 -2
- package/dist/rules/sort-modules/build-usage-comparator.d.ts +1 -4
- package/dist/rules/sort-modules/build-usage-comparator.js +25 -13
- package/dist/rules/sort-modules/compute-dependencies-by-sorting-node.js +14 -12
- package/dist/rules/sort-modules/compute-dependencies.js +14 -4
- package/dist/rules/sort-modules/compute-node-details.js +35 -12
- package/dist/rules/sort-modules/compute-overload-signature-groups.js +14 -6
- package/dist/rules/sort-modules/is-arrow-function-node.js +9 -1
- package/dist/rules/sort-modules/is-property-or-accessor-node.js +7 -0
- package/dist/rules/sort-modules/types.d.ts +16 -10
- package/dist/rules/sort-modules/types.js +18 -14
- package/dist/rules/sort-modules.js +78 -69
- package/dist/rules/sort-named-exports/compute-matched-context-options.js +16 -1
- package/dist/rules/sort-named-exports/compute-node-name.js +8 -1
- package/dist/rules/sort-named-exports/sort-named-export.js +30 -25
- package/dist/rules/sort-named-exports/types.js +22 -8
- package/dist/rules/sort-named-exports.js +21 -21
- package/dist/rules/sort-named-imports/compute-matched-context-options.js +17 -2
- package/dist/rules/sort-named-imports/compute-node-name.js +8 -1
- package/dist/rules/sort-named-imports/sort-named-import.js +31 -26
- package/dist/rules/sort-named-imports/types.js +22 -8
- package/dist/rules/sort-named-imports.js +21 -21
- package/dist/rules/sort-object-types/comparator-by-options-computer.js +4 -4
- package/dist/rules/sort-object-types/compute-matched-context-options.js +19 -4
- package/dist/rules/sort-object-types/compute-node-name.js +12 -2
- package/dist/rules/sort-object-types/compute-node-parent-name.js +8 -1
- package/dist/rules/sort-object-types/is-member-optional.js +11 -1
- package/dist/rules/sort-object-types/is-node-function-type.js +55 -0
- package/dist/rules/sort-object-types/passes-declaration-comment-matches-filter.js +11 -2
- package/dist/rules/sort-object-types/passes-declaration-matches-pattern-filter.js +11 -1
- package/dist/rules/sort-object-types/sort-object-type-elements.js +35 -28
- package/dist/rules/sort-object-types/types.js +26 -10
- package/dist/rules/sort-object-types.js +29 -26
- package/dist/rules/sort-objects/comparator-by-options-computer.js +4 -4
- package/dist/rules/sort-objects/compute-dependencies.js +5 -3
- package/dist/rules/sort-objects/compute-dependency-names.js +1 -1
- package/dist/rules/sort-objects/compute-matched-context-options.js +21 -6
- package/dist/rules/sort-objects/compute-property-or-variable-declarator-name.js +17 -3
- package/dist/rules/sort-objects/is-style-component.js +6 -0
- package/dist/rules/sort-objects/passes-calling-function-name-pattern-filter.js +11 -2
- package/dist/rules/sort-objects/passes-declaration-comment-matches-filter.js +11 -2
- package/dist/rules/sort-objects/passes-declaration-matches-pattern-filter.js +13 -3
- package/dist/rules/sort-objects/sort-object.js +55 -51
- package/dist/rules/sort-objects/types.js +31 -15
- package/dist/rules/sort-objects.js +22 -22
- package/dist/rules/sort-sets/types.d.ts +2 -0
- package/dist/rules/sort-sets.d.ts +1 -2
- package/dist/rules/sort-sets.js +14 -11
- package/dist/rules/sort-switch-case/types.d.ts +2 -0
- package/dist/rules/sort-switch-case.d.ts +1 -2
- package/dist/rules/sort-switch-case.js +69 -37
- package/dist/rules/sort-union-types/compute-matched-context-options.js +20 -2
- package/dist/rules/sort-union-types/compute-node-name.js +12 -0
- package/dist/rules/sort-union-types/sort-union-or-intersection-types.js +19 -17
- package/dist/rules/sort-union-types/types.js +11 -2
- package/dist/rules/sort-union-types.js +24 -21
- package/dist/rules/sort-variable-declarations/compute-dependencies.js +8 -0
- package/dist/rules/sort-variable-declarations/compute-matched-context-options.js +21 -2
- package/dist/rules/sort-variable-declarations/compute-node-name.js +9 -1
- package/dist/rules/sort-variable-declarations/sort-variable-declaration.js +35 -30
- package/dist/rules/sort-variable-declarations/types.js +16 -9
- package/dist/rules/sort-variable-declarations.js +18 -18
- package/dist/types/scoped-regex-option.js +1 -1
- package/dist/utils/alphabet.js +50 -40
- package/dist/utils/assert-is-never.js +6 -0
- package/dist/utils/build-ast-listeners.js +13 -3
- package/dist/utils/build-options-by-group-index-computer.js +19 -0
- package/dist/utils/build-sorting-node-by-node-map.js +6 -0
- package/dist/utils/compare/build-line-length-comparator.js +8 -4
- package/dist/utils/compare/build-string-formatter.js +21 -0
- package/dist/utils/compare/build-subgroup-order-comparator.js +7 -4
- package/dist/utils/compare/compare-alphabetically.js +20 -3
- package/dist/utils/compare/compare-by-custom-sort.js +7 -3
- package/dist/utils/compare/compare-naturally.js +23 -7
- package/dist/utils/compare/compute-comparators.js +19 -5
- package/dist/utils/compare/compute-ordered-value.js +10 -0
- package/dist/utils/compare/default-comparator-by-options-computer.js +2 -2
- package/dist/utils/compare/unsorted-comparator.js +1 -1
- package/dist/utils/complete.js +35 -1
- package/dist/utils/compute-deep-scope-references.js +7 -0
- package/dist/utils/compute-dependencies-by-sorting-node.js +14 -0
- package/dist/utils/compute-dependencies-outside-functions-by-sorting-node.js +12 -11
- package/dist/utils/compute-group-name.js +11 -0
- package/dist/utils/compute-group.js +35 -0
- package/dist/utils/compute-groups-names.js +8 -0
- package/dist/utils/compute-nodes-in-circular-dependencies.js +45 -0
- package/dist/utils/compute-overridden-options-by-group-index.js +40 -3
- package/dist/utils/compute-parent-nodes-with-types.js +12 -0
- package/dist/utils/context-matching/passes-all-names-match-pattern-filter.js +10 -0
- package/dist/utils/context-matching/passes-ast-selector-filter.js +10 -0
- package/dist/utils/convert-boolean-to-sign.js +26 -0
- package/dist/utils/create-eslint-rule.js +13 -1
- package/dist/utils/create-node-index-map.js +25 -0
- package/dist/utils/does-custom-group-match.js +77 -14
- package/dist/utils/does-sorting-node-have-one-of-dependency-names.js +9 -0
- package/dist/utils/generate-predefined-groups.js +26 -0
- package/dist/utils/get-array-combinations.js +7 -0
- package/dist/utils/get-comment-above-that-should-exist.js +47 -5
- package/dist/utils/get-comments-before.js +14 -2
- package/dist/utils/get-decorator-name.js +37 -1
- package/dist/utils/get-enum-members.js +25 -4
- package/dist/utils/get-eslint-disabled-lines.js +69 -7
- package/dist/utils/get-eslint-disabled-rules.js +81 -3
- package/dist/utils/get-group-index.js +31 -0
- package/dist/utils/get-lines-between.js +40 -5
- package/dist/utils/get-newlines-between-errors.js +39 -0
- package/dist/utils/get-newlines-between-option.js +44 -8
- package/dist/utils/get-node-decorators.js +20 -4
- package/dist/utils/get-node-range.js +58 -1
- package/dist/utils/get-options-with-clean-groups.js +62 -0
- package/dist/utils/get-settings.js +43 -1
- package/dist/utils/is-group-with-overrides-option.js +27 -0
- package/dist/utils/is-newlines-between-option.js +33 -0
- package/dist/utils/is-node-dependent-on-other-node.js +40 -0
- package/dist/utils/is-node-eslint-disabled.js +27 -0
- package/dist/utils/is-node-on-single-line.js +6 -0
- package/dist/utils/is-partition-comment.js +67 -0
- package/dist/utils/is-sortable.js +6 -0
- package/dist/utils/json-schemas/common-groups-json-schemas.js +92 -23
- package/dist/utils/json-schemas/common-json-schemas.js +65 -16
- package/dist/utils/json-schemas/common-partition-json-schemas.d.ts +1 -1
- package/dist/utils/json-schemas/common-partition-json-schemas.js +13 -7
- package/dist/utils/json-schemas/scoped-regex-json-schema.js +2 -2
- package/dist/utils/make-comment-above-fixes.js +60 -8
- package/dist/utils/make-comment-after-fixes.js +29 -0
- package/dist/utils/make-fixes.js +49 -0
- package/dist/utils/make-newlines-between-fixes.js +89 -10
- package/dist/utils/make-order-fixes.js +49 -5
- package/dist/utils/make-single-node-comment-after-fixes.js +49 -2
- package/dist/utils/matches.js +45 -0
- package/dist/utils/overload-signature/build-overload-signature-newlines-between-value-getter.d.ts +6 -3
- package/dist/utils/overload-signature/build-overload-signature-newlines-between-value-getter.js +11 -2
- package/dist/utils/overload-signature/overload-signature-group.js +4 -1
- package/dist/utils/overload-signature/populate-sorting-node-groups-with-overload-signature.js +10 -0
- package/dist/utils/pairwise.js +32 -3
- package/dist/utils/populate-sorting-node-groups-with-dependencies.js +9 -0
- package/dist/utils/range-contains-range.js +7 -0
- package/dist/utils/range-to-diff.js +37 -0
- package/dist/utils/report-all-errors.js +88 -14
- package/dist/utils/report-errors.js +90 -12
- package/dist/utils/scoped-regex/matches-scoped-expressions.js +23 -11
- package/dist/utils/scoped-regex/partition-patterns-by-scope.js +7 -2
- package/dist/utils/should-partition.js +83 -3
- package/dist/utils/sort-nodes-by-dependencies.js +91 -0
- package/dist/utils/sort-nodes-by-groups.js +73 -0
- package/dist/utils/sort-nodes.js +17 -0
- package/dist/utils/unreachable-case-error.js +34 -1
- package/dist/utils/validate-custom-sort-configuration.js +13 -0
- package/dist/utils/validate-groups-configuration.js +156 -4
- package/dist/utils/validate-newlines-and-partition-configuration.js +101 -7
- package/dist/utils/validate-no-duplicated-groups.js +7 -0
- package/dist/utils/validate-objects-inside-groups.js +58 -0
- package/package.json +2 -2
- package/readme.md +0 -1
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
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
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
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
'sort-variable-declarations':
|
|
28
|
-
'sort-intersection-types':
|
|
29
|
-
'sort-import-attributes':
|
|
30
|
-
'sort-export-attributes':
|
|
31
|
-
'sort-heritage-clauses':
|
|
32
|
-
'sort-array-includes':
|
|
33
|
-
'sort-named-imports':
|
|
34
|
-
'sort-named-exports':
|
|
35
|
-
'sort-object-types':
|
|
36
|
-
'sort-union-types':
|
|
37
|
-
'sort-switch-case':
|
|
38
|
-
'sort-decorators':
|
|
39
|
-
'sort-interfaces':
|
|
40
|
-
'sort-jsx-props':
|
|
41
|
-
'sort-modules':
|
|
42
|
-
'sort-classes':
|
|
43
|
-
'sort-imports':
|
|
44
|
-
'sort-exports':
|
|
45
|
-
'sort-objects':
|
|
46
|
-
'sort-enums':
|
|
47
|
-
'sort-sets':
|
|
48
|
-
'sort-maps':
|
|
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
|
-
|
|
50
|
+
var rules = {
|
|
51
51
|
...recommendedRules,
|
|
52
|
-
'sort-arrays':
|
|
52
|
+
'sort-arrays': sort_arrays_default,
|
|
53
53
|
}
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
115
|
+
var eslint_plugin_perfectionist_default = {
|
|
118
116
|
...plugin,
|
|
119
117
|
configs,
|
|
120
118
|
}
|
|
121
|
-
export { configs,
|
|
119
|
+
export { configs, eslint_plugin_perfectionist_default as default, rules }
|
package/dist/package.json.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var name = 'eslint-plugin-perfectionist'
|
|
2
|
+
var version = '5.9.1'
|
|
3
3
|
export { name, version }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSONSchema4 } from '@typescript-eslint/utils/json-schema'
|
|
2
|
-
import { Options } from './sort-
|
|
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
|
-
|
|
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 {
|
|
18
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
46
|
+
var jsonSchema = {
|
|
44
47
|
items: {
|
|
45
48
|
properties: {
|
|
46
49
|
...buildCommonJsonSchemas(),
|
|
@@ -54,7 +57,7 @@ let jsonSchema = {
|
|
|
54
57
|
},
|
|
55
58
|
}),
|
|
56
59
|
partitionByComment: partitionByCommentJsonSchema,
|
|
57
|
-
partitionByNewLine:
|
|
60
|
+
partitionByNewLine: partitionByNewlineJsonSchema,
|
|
58
61
|
},
|
|
59
62
|
additionalProperties: false,
|
|
60
63
|
type: 'object',
|
|
@@ -62,7 +65,7 @@ let jsonSchema = {
|
|
|
62
65
|
uniqueItems: true,
|
|
63
66
|
type: 'array',
|
|
64
67
|
}
|
|
65
|
-
|
|
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 {
|
|
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({
|
|
23
|
+
computeNodeName({
|
|
24
|
+
sourceCode: context.sourceCode,
|
|
25
|
+
node: element,
|
|
26
|
+
}),
|
|
13
27
|
)
|
|
14
28
|
return context.options.find(options =>
|
|
15
|
-
isContextOptionMatching({
|
|
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({
|
|
72
|
-
|
|
73
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
3
|
-
|
|
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 {
|
|
18
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
46
|
+
var jsonSchema = {
|
|
44
47
|
items: {
|
|
45
48
|
properties: {
|
|
46
49
|
...buildCommonJsonSchemas(),
|
|
@@ -54,7 +57,7 @@ let jsonSchema = {
|
|
|
54
57
|
},
|
|
55
58
|
}),
|
|
56
59
|
partitionByComment: partitionByCommentJsonSchema,
|
|
57
|
-
partitionByNewLine:
|
|
60
|
+
partitionByNewLine: partitionByNewlineJsonSchema,
|
|
58
61
|
},
|
|
59
62
|
required: ['useConfigurationIf'],
|
|
60
63
|
additionalProperties: false,
|
|
@@ -63,7 +66,7 @@ let jsonSchema = {
|
|
|
63
66
|
uniqueItems: true,
|
|
64
67
|
type: 'array',
|
|
65
68
|
}
|
|
66
|
-
|
|
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 {
|
|
111
|
+
export { sort_arrays_default as default }
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
176
|
-
|
|
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) {
|