eslint-plugin-perfectionist 5.11.1 → 5.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json.js +1 -1
- package/dist/rules/sort-array-includes.js +1 -1
- package/dist/rules/sort-arrays/compute-array-elements.js +1 -1
- package/dist/rules/sort-arrays/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-arrays/compute-node-name.js +1 -1
- package/dist/rules/sort-arrays/sort-array.js +1 -1
- package/dist/rules/sort-arrays.js +1 -1
- package/dist/rules/sort-classes/compute-dependencies-by-sorting-node.js +1 -1
- package/dist/rules/sort-classes/compute-dependencies.js +1 -1
- package/dist/rules/sort-classes/compute-identifier-name-details.js +1 -1
- package/dist/rules/sort-classes/compute-matched-context-options.js +2 -18
- package/dist/rules/sort-classes/compute-overload-signature-groups.js +1 -1
- package/dist/rules/sort-classes/is-known-class-element.js +1 -1
- package/dist/rules/sort-classes/node-info/common-modifiers.js +1 -1
- package/dist/rules/sort-classes/node-info/compute-method-details.js +1 -1
- package/dist/rules/sort-classes/node-info/compute-method-or-property-name-details.js +1 -1
- package/dist/rules/sort-classes/node-info/is-function-expression.js +1 -1
- package/dist/rules/sort-classes/sort-class.js +1 -1
- package/dist/rules/sort-classes.js +1 -1
- package/dist/rules/sort-decorators.js +1 -1
- package/dist/rules/sort-enums/build-comparator-by-options-computer.js +6 -26
- package/dist/rules/sort-enums/compute-dependencies-by-sorting-node.js +1 -1
- package/dist/rules/sort-enums/compute-dependencies.js +1 -1
- package/dist/rules/sort-enums/compute-expression-number-value.js +1 -1
- package/dist/rules/sort-enums/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-enums/compute-node-name.js +1 -1
- package/dist/rules/sort-enums/sort-enum.js +1 -1
- package/dist/rules/sort-enums.js +1 -1
- package/dist/rules/sort-export-attributes.js +1 -1
- package/dist/rules/sort-exports.js +1 -1
- package/dist/rules/sort-heritage-clauses/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-heritage-clauses/compute-node-name.js +1 -1
- package/dist/rules/sort-heritage-clauses/sort-heritage-clause.js +1 -1
- package/dist/rules/sort-heritage-clauses.js +1 -1
- package/dist/rules/sort-import-attributes/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-import-attributes/compute-node-name.js +1 -1
- package/dist/rules/sort-import-attributes.js +1 -1
- package/dist/rules/sort-imports/comparator-by-options-computer.js +6 -37
- package/dist/rules/sort-imports/compute-common-selectors.js +19 -18
- package/dist/rules/sort-imports/compute-dependencies.js +1 -1
- package/dist/rules/sort-imports/compute-dependency-names.js +1 -1
- package/dist/rules/sort-imports/compute-node-name.js +1 -1
- package/dist/rules/sort-imports/compute-specifier-modifiers.js +1 -1
- package/dist/rules/sort-imports/compute-specifier-name.js +1 -1
- package/dist/rules/sort-imports/is-non-external-reference-ts-import-equals.js +1 -1
- package/dist/rules/sort-imports/is-side-effect-import.js +1 -1
- package/dist/rules/sort-imports.js +1 -1
- package/dist/rules/sort-interfaces.js +1 -1
- package/dist/rules/sort-intersection-types.js +1 -1
- package/dist/rules/sort-jsx-props/compute-matched-context-options.js +1 -1
- package/dist/rules/sort-jsx-props/compute-node-name.js +1 -1
- package/dist/rules/sort-jsx-props/sort-jsx-object.js +1 -1
- package/dist/rules/sort-jsx-props.js +1 -1
- package/dist/rules/sort-maps/compute-matched-context-options.js +2 -18
- package/dist/rules/sort-maps/compute-node-name.js +1 -1
- package/dist/rules/sort-maps/sort-potential-map.js +1 -1
- package/dist/rules/sort-maps.js +1 -1
- package/dist/rules/sort-modules/compute-dependencies.js +1 -1
- package/dist/rules/sort-modules/compute-node-details.js +1 -1
- package/dist/rules/sort-modules/compute-overload-signature-groups.js +1 -1
- package/dist/rules/sort-modules/dependencies/compute-dependencies-by-sorting-node.js +1 -1
- package/dist/rules/sort-modules/dependencies/is-identifier-in-decorator-metadata-type-position.js +1 -1
- package/dist/rules/sort-modules/is-arrow-function-node.js +1 -1
- package/dist/rules/sort-modules/is-property-or-accessor-node.js +1 -1
- package/dist/rules/sort-modules.js +1 -1
- package/dist/rules/sort-named-exports/compute-node-name.js +1 -1
- package/dist/rules/sort-named-exports.js +1 -1
- package/dist/rules/sort-named-imports/compute-matched-context-options.js +1 -1
- package/dist/rules/sort-named-imports/compute-node-name.js +1 -1
- package/dist/rules/sort-named-imports/sort-named-import.js +1 -1
- package/dist/rules/sort-named-imports.js +1 -1
- package/dist/rules/sort-object-types/compute-matched-context-options.js +1 -1
- package/dist/rules/sort-object-types/compute-node-name.js +1 -1
- package/dist/rules/sort-object-types/compute-node-parent-name.js +1 -1
- package/dist/rules/sort-object-types/is-member-optional.js +1 -1
- package/dist/rules/sort-object-types/is-node-function-type.js +1 -1
- package/dist/rules/sort-object-types/passes-declaration-comment-matches-filter.js +1 -1
- package/dist/rules/sort-object-types/sort-object-type-elements.js +3 -3
- package/dist/rules/sort-object-types/types.js +1 -1
- package/dist/rules/sort-object-types.js +1 -1
- package/dist/rules/sort-objects/compute-dependencies.js +1 -1
- package/dist/rules/sort-objects/compute-dependency-names.js +1 -1
- package/dist/rules/sort-objects/compute-matched-context-options.js +1 -1
- package/dist/rules/sort-objects/compute-node-value.js +1 -1
- package/dist/rules/sort-objects/compute-property-or-variable-declarator-name.js +1 -1
- package/dist/rules/sort-objects/is-style-component.js +1 -1
- package/dist/rules/sort-objects/passes-calling-function-name-pattern-filter.js +1 -1
- package/dist/rules/sort-objects/passes-declaration-comment-matches-filter.js +1 -1
- package/dist/rules/sort-objects/passes-declaration-matches-pattern-filter.js +1 -1
- package/dist/rules/sort-objects/sort-object.js +3 -3
- package/dist/rules/sort-objects/types.js +1 -1
- package/dist/rules/sort-objects.js +1 -1
- package/dist/rules/sort-sets.js +1 -1
- package/dist/rules/sort-switch-case/is-condition-expression.js +1 -1
- package/dist/rules/sort-switch-case.js +1 -1
- package/dist/rules/sort-union-or-intersection-types/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-union-or-intersection-types/compute-node-name.js +1 -1
- package/dist/rules/sort-union-or-intersection-types/sort-union-or-intersection-types.js +1 -1
- package/dist/rules/sort-union-or-intersection-types/type-contains-callable-type.js +1 -1
- package/dist/rules/sort-union-types.js +1 -1
- package/dist/rules/sort-variable-declarations/compute-dependencies.js +1 -1
- package/dist/rules/sort-variable-declarations/compute-matched-context-options.js +1 -17
- package/dist/rules/sort-variable-declarations/compute-node-name.js +1 -1
- package/dist/rules/sort-variable-declarations.js +1 -1
- package/dist/types/common-options.d.ts +3 -4
- package/dist/utils/compare/default-comparator-by-options-computer.d.ts +13 -0
- package/dist/utils/compare/default-comparator-by-options-computer.js +44 -23
- package/dist/utils/compare/name-or-value-comparator-by-options-computer.d.ts +23 -0
- package/dist/utils/compare/name-or-value-comparator-by-options-computer.js +27 -0
- package/dist/utils/context-matching/is-context-option-matching.d.ts +30 -0
- package/dist/utils/context-matching/is-context-option-matching.js +33 -0
- package/dist/utils/create-eslint-rule.d.ts +1 -1
- package/dist/utils/create-eslint-rule.js +1 -1
- package/dist/utils/create-fix-provider.d.ts +1 -1
- package/dist/utils/create-fix-provider.js +1 -1
- package/dist/utils/does-node-end-with-expression.js +1 -1
- package/dist/utils/get-eslint-disabled-rules.d.ts +13 -2
- package/dist/utils/get-eslint-disabled-rules.js +61 -13
- package/dist/utils/get-node-range.js +1 -1
- package/dist/utils/is-node-immediately-called.js +1 -1
- package/dist/utils/is-node-inside-deferred-function.js +1 -1
- package/dist/utils/report-all-errors.d.ts +2 -2
- package/dist/utils/report-all-errors.js +10 -4
- package/dist/utils/sort-nodes-by-dependencies.d.ts +2 -2
- package/dist/utils/sort-nodes-by-dependencies.js +2 -2
- package/dist/utils/unreachable-case-error.d.ts +1 -1
- package/dist/utils/unreachable-case-error.js +1 -1
- package/package.json +2 -1
- package/dist/rules/sort-object-types/comparator-by-options-computer.d.ts +0 -6
- package/dist/rules/sort-object-types/comparator-by-options-computer.js +0 -39
- package/dist/rules/sort-objects/comparator-by-options-computer.d.ts +0 -6
- package/dist/rules/sort-objects/comparator-by-options-computer.js +0 -39
package/dist/package.json.js
CHANGED
|
@@ -18,7 +18,7 @@ import { buildAstListeners } from '../utils/build-ast-listeners.js'
|
|
|
18
18
|
import { createEslintRule } from '../utils/create-eslint-rule.js'
|
|
19
19
|
import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
|
|
20
20
|
import { sortArray } from './sort-arrays/sort-array.js'
|
|
21
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
21
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
22
22
|
/**
|
|
23
23
|
* Cache computed groups by modifiers and selectors for performance.
|
|
24
24
|
*/
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
|
|
1
|
+
import { isContextOptionMatching } from '../../utils/context-matching/is-context-option-matching.js'
|
|
3
2
|
import { computeNodeName } from './compute-node-name.js'
|
|
4
3
|
/**
|
|
5
4
|
* Computes the matched context options for a given array node.
|
|
@@ -33,19 +32,4 @@ function computeMatchedContextOptions({
|
|
|
33
32
|
}),
|
|
34
33
|
)
|
|
35
34
|
}
|
|
36
|
-
function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
|
|
37
|
-
if (!options.useConfigurationIf) {
|
|
38
|
-
return true
|
|
39
|
-
}
|
|
40
|
-
return (
|
|
41
|
-
passesAllNamesMatchPatternFilter({
|
|
42
|
-
allNamesMatchPattern: options.useConfigurationIf.allNamesMatchPattern,
|
|
43
|
-
nodeNames,
|
|
44
|
-
}) &&
|
|
45
|
-
passesAstSelectorFilter({
|
|
46
|
-
matchesAstSelector: options.useConfigurationIf.matchesAstSelector,
|
|
47
|
-
matchedAstSelectors,
|
|
48
|
-
})
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
35
|
export { computeMatchedContextOptions }
|
|
@@ -19,7 +19,7 @@ import { allSelectors } from './types.js'
|
|
|
19
19
|
import { computeNodeName } from './compute-node-name.js'
|
|
20
20
|
import { computeMatchedContextOptions } from './compute-matched-context-options.js'
|
|
21
21
|
import { computeArrayElements } from './compute-array-elements.js'
|
|
22
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
22
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
23
23
|
function sortArray({
|
|
24
24
|
cachedGroupsByModifiersAndSelectors,
|
|
25
25
|
mustHaveMatchedContextOptions,
|
|
@@ -18,7 +18,7 @@ import { buildAstListeners } from '../utils/build-ast-listeners.js'
|
|
|
18
18
|
import { createEslintRule } from '../utils/create-eslint-rule.js'
|
|
19
19
|
import { additionalCustomGroupMatchOptionsJsonSchema } from './sort-arrays/types.js'
|
|
20
20
|
import { sortArray } from './sort-arrays/sort-array.js'
|
|
21
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
21
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
22
22
|
/**
|
|
23
23
|
* Cache computed groups by modifiers and selectors for performance.
|
|
24
24
|
*/
|
|
@@ -2,7 +2,7 @@ import { computeDependenciesBySortingNode as computeDependenciesBySortingNode$1
|
|
|
2
2
|
import { isNodeInsideDeferredFunction } from '../../utils/is-node-inside-deferred-function.js'
|
|
3
3
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
4
4
|
import { computeIdentifierNameDetails } from './compute-identifier-name-details.js'
|
|
5
|
-
import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/
|
|
5
|
+
import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '@typescript-eslint/types'
|
|
6
6
|
function computeDependenciesBySortingNode({
|
|
7
7
|
ignoreCallbackDependenciesPatterns,
|
|
8
8
|
sortingNodes,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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 { AST_NODE_TYPES } from '@typescript-eslint/
|
|
4
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
5
5
|
/**
|
|
6
6
|
* Computes the dependencies of a class member AST node.
|
|
7
7
|
*
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
|
|
1
|
+
import { isContextOptionMatching } from '../../utils/context-matching/is-context-option-matching.js'
|
|
3
2
|
import { computeMethodOrPropertyNameDetails } from './node-info/compute-method-or-property-name-details.js'
|
|
4
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
3
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
5
4
|
/**
|
|
6
5
|
* Computes the matched context options for a given class node.
|
|
7
6
|
*
|
|
@@ -34,19 +33,4 @@ function computeMatchedContextOptions({
|
|
|
34
33
|
}),
|
|
35
34
|
)
|
|
36
35
|
}
|
|
37
|
-
function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
|
|
38
|
-
if (!options.useConfigurationIf) {
|
|
39
|
-
return true
|
|
40
|
-
}
|
|
41
|
-
return (
|
|
42
|
-
passesAllNamesMatchPatternFilter({
|
|
43
|
-
allNamesMatchPattern: options.useConfigurationIf.allNamesMatchPattern,
|
|
44
|
-
nodeNames,
|
|
45
|
-
}) &&
|
|
46
|
-
passesAstSelectorFilter({
|
|
47
|
-
matchesAstSelector: options.useConfigurationIf.matchesAstSelector,
|
|
48
|
-
matchedAstSelectors,
|
|
49
|
-
})
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
36
|
export { computeMatchedContextOptions }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
2
2
|
import { isSortable } from '../../utils/is-sortable.js'
|
|
3
3
|
import { OverloadSignatureGroup } from '../../utils/overload-signature/overload-signature-group.js'
|
|
4
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
4
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
5
5
|
/**
|
|
6
6
|
* Returns a list of groups of overload signatures.
|
|
7
7
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../../utils/unreachable-case-error.js'
|
|
2
2
|
import '../../../utils/assert-is-never.js'
|
|
3
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
3
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
4
4
|
function computeAccessibilityModifier({ hasPrivateHash, node }) {
|
|
5
5
|
if (hasPrivateHash) {
|
|
6
6
|
return ['private']
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
computeStaticModifier,
|
|
10
10
|
} from './common-modifiers.js'
|
|
11
11
|
import { computeMethodOrPropertyNameDetails } from './compute-method-or-property-name-details.js'
|
|
12
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
12
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
13
13
|
/**
|
|
14
14
|
* Computes details related to a method.
|
|
15
15
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { computeIdentifierNameDetails } from '../compute-identifier-name-details.js'
|
|
2
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
2
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
3
3
|
/**
|
|
4
4
|
* Computes the name details of a method or property node.
|
|
5
5
|
*
|
|
@@ -41,7 +41,7 @@ import { computePropertyDetails } from './node-info/compute-property-details.js'
|
|
|
41
41
|
import { computeAccessorDetails } from './node-info/compute-accessor-details.js'
|
|
42
42
|
import { computeMethodDetails } from './node-info/compute-method-details.js'
|
|
43
43
|
import { isKnownClassElement } from './is-known-class-element.js'
|
|
44
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
44
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
45
45
|
/**
|
|
46
46
|
* Cache computed groups by modifiers and selectors for performance.
|
|
47
47
|
*/
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
additionalCustomGroupMatchOptionsJsonSchema,
|
|
32
32
|
} from './sort-classes/types.js'
|
|
33
33
|
import { defaultOptions, sortClass } from './sort-classes/sort-class.js'
|
|
34
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
34
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
35
35
|
var sort_classes_default = createEslintRule({
|
|
36
36
|
meta: {
|
|
37
37
|
schema: {
|
|
@@ -29,7 +29,7 @@ import { complete } from '../utils/complete.js'
|
|
|
29
29
|
import { createEslintRule } from '../utils/create-eslint-rule.js'
|
|
30
30
|
import { getNodeDecorators } from '../utils/get-node-decorators.js'
|
|
31
31
|
import { getDecoratorName } from '../utils/get-decorator-name.js'
|
|
32
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
32
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
33
33
|
const ORDER_ERROR_ID = 'unexpectedDecoratorsOrder'
|
|
34
34
|
const GROUP_ORDER_ERROR_ID = 'unexpectedDecoratorsGroupOrder'
|
|
35
35
|
const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenDecorators'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
2
|
-
import { buildLineLengthComparator } from '../../utils/compare/build-line-length-comparator.js'
|
|
3
|
-
import { compareAlphabetically } from '../../utils/compare/compare-alphabetically.js'
|
|
4
|
-
import { compareByCustomSort } from '../../utils/compare/compare-by-custom-sort.js'
|
|
5
2
|
import { unsortedComparator } from '../../utils/compare/unsorted-comparator.js'
|
|
6
3
|
import { compareNaturally } from '../../utils/compare/compare-naturally.js'
|
|
7
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
buildStringComparatorByOptionsComputer,
|
|
6
|
+
defaultComparatorByOptionsComputer,
|
|
7
|
+
} from '../../utils/compare/default-comparator-by-options-computer.js'
|
|
8
8
|
/**
|
|
9
9
|
* Builds a comparator computer function for sorting enum members.
|
|
10
10
|
*
|
|
@@ -37,28 +37,8 @@ function buildComparatorByOptionsComputer(isNumericEnum) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
let byNonNumericValueComparatorComputer =
|
|
41
|
-
|
|
42
|
-
/* v8 ignore next 2 -- @preserve Untested for now as not a relevant sort for this rule. */
|
|
43
|
-
case 'subgroup-order':
|
|
44
|
-
return defaultComparatorByOptionsComputer(options)
|
|
45
|
-
case 'alphabetical':
|
|
46
|
-
return (a, b) =>
|
|
47
|
-
compareAlphabetically(a.value ?? '', b.value ?? '', options)
|
|
48
|
-
case 'line-length':
|
|
49
|
-
return buildLineLengthComparator(options)
|
|
50
|
-
case 'unsorted':
|
|
51
|
-
return unsortedComparator
|
|
52
|
-
case 'natural':
|
|
53
|
-
return (a, b) => compareNaturally(a.value ?? '', b.value ?? '', options)
|
|
54
|
-
case 'custom':
|
|
55
|
-
return (a, b) =>
|
|
56
|
-
compareByCustomSort(a.value ?? '', b.value ?? '', options)
|
|
57
|
-
/* v8 ignore next 2 -- @preserve Exhaustive guard. */
|
|
58
|
-
default:
|
|
59
|
-
throw new UnreachableCaseError(options.type)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
40
|
+
let byNonNumericValueComparatorComputer =
|
|
41
|
+
buildStringComparatorByOptionsComputer(node => node.value ?? '')
|
|
62
42
|
let byNumericValueComparatorComputer = options => {
|
|
63
43
|
switch (options.type) {
|
|
64
44
|
/* v8 ignore next 2 -- @preserve Untested for now as not a relevant sort for this rule. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { computeDependenciesBySortingNode as computeDependenciesBySortingNode$1 } from '../../utils/compute-dependencies-by-sorting-node.js'
|
|
2
2
|
import { computeParentNodesWithTypes } from '../../utils/compute-parent-nodes-with-types.js'
|
|
3
3
|
import { doesSortingNodeHaveOneOfDependencyNames } from '../../utils/does-sorting-node-have-one-of-dependency-names.js'
|
|
4
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
4
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
5
5
|
function computeDependenciesBySortingNode({
|
|
6
6
|
sortingNodes,
|
|
7
7
|
sourceCode,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
|
|
1
|
+
import { isContextOptionMatching } from '../../utils/context-matching/is-context-option-matching.js'
|
|
3
2
|
import { computeNodeName } from './compute-node-name.js'
|
|
4
3
|
/**
|
|
5
4
|
* Computes the matched context options for a given enum node.
|
|
@@ -30,19 +29,4 @@ function computeMatchedContextOptions({
|
|
|
30
29
|
}),
|
|
31
30
|
)
|
|
32
31
|
}
|
|
33
|
-
function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
|
|
34
|
-
if (!options.useConfigurationIf) {
|
|
35
|
-
return true
|
|
36
|
-
}
|
|
37
|
-
return (
|
|
38
|
-
passesAllNamesMatchPatternFilter({
|
|
39
|
-
allNamesMatchPattern: options.useConfigurationIf.allNamesMatchPattern,
|
|
40
|
-
nodeNames,
|
|
41
|
-
}) &&
|
|
42
|
-
passesAstSelectorFilter({
|
|
43
|
-
matchesAstSelector: options.useConfigurationIf.matchesAstSelector,
|
|
44
|
-
matchedAstSelectors,
|
|
45
|
-
})
|
|
46
|
-
)
|
|
47
|
-
}
|
|
48
32
|
export { computeMatchedContextOptions }
|
|
@@ -29,7 +29,7 @@ import { computeExpressionNumberValue } from './compute-expression-number-value.
|
|
|
29
29
|
import { computeNodeName } from './compute-node-name.js'
|
|
30
30
|
import { computeMatchedContextOptions } from './compute-matched-context-options.js'
|
|
31
31
|
import { computeDependencies } from './compute-dependencies.js'
|
|
32
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
32
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
33
33
|
let defaultOptions = {
|
|
34
34
|
useExperimentalDependencyDetection: true,
|
|
35
35
|
fallbackSort: { type: 'unsorted' },
|
package/dist/rules/sort-enums.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
additionalCustomGroupMatchOptionsJsonSchema,
|
|
28
28
|
} from './sort-enums/types.js'
|
|
29
29
|
import { defaultOptions, sortEnum } from './sort-enums/sort-enum.js'
|
|
30
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
30
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
31
31
|
var sort_enums_default = createEslintRule({
|
|
32
32
|
meta: {
|
|
33
33
|
schema: {
|
|
@@ -8,7 +8,7 @@ import { buildAstListeners } from '../utils/build-ast-listeners.js'
|
|
|
8
8
|
import { createEslintRule } from '../utils/create-eslint-rule.js'
|
|
9
9
|
import { sortImportOrExportAttributes } from './sort-import-attributes/sort-import-or-export-attributes.js'
|
|
10
10
|
import { jsonSchema } from './sort-import-attributes.js'
|
|
11
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
11
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
12
12
|
const ORDER_ERROR_ID = 'unexpectedExportAttributesOrder'
|
|
13
13
|
const GROUP_ORDER_ERROR_ID = 'unexpectedExportAttributesGroupOrder'
|
|
14
14
|
const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenExportAttributes'
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
allModifiers,
|
|
36
36
|
allSelectors,
|
|
37
37
|
} from './sort-exports/types.js'
|
|
38
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
38
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
39
39
|
/**
|
|
40
40
|
* Cache computed groups by modifiers and selectors for performance.
|
|
41
41
|
*/
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
|
|
1
|
+
import { isContextOptionMatching } from '../../utils/context-matching/is-context-option-matching.js'
|
|
3
2
|
import { computeNodeName } from './compute-node-name.js'
|
|
4
3
|
/**
|
|
5
4
|
* Computes the matched context options for a given heritage clause parent node.
|
|
@@ -27,19 +26,4 @@ function computeMatchedContextOptions({
|
|
|
27
26
|
}),
|
|
28
27
|
)
|
|
29
28
|
}
|
|
30
|
-
function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
|
|
31
|
-
if (!options.useConfigurationIf) {
|
|
32
|
-
return true
|
|
33
|
-
}
|
|
34
|
-
return (
|
|
35
|
-
passesAllNamesMatchPatternFilter({
|
|
36
|
-
allNamesMatchPattern: options.useConfigurationIf.allNamesMatchPattern,
|
|
37
|
-
nodeNames,
|
|
38
|
-
}) &&
|
|
39
|
-
passesAstSelectorFilter({
|
|
40
|
-
matchesAstSelector: options.useConfigurationIf.matchesAstSelector,
|
|
41
|
-
matchedAstSelectors,
|
|
42
|
-
})
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
29
|
export { computeMatchedContextOptions }
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from './types.js'
|
|
23
23
|
import { computeNodeName } from './compute-node-name.js'
|
|
24
24
|
import { computeMatchedContextOptions } from './compute-matched-context-options.js'
|
|
25
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
25
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
26
26
|
let defaultOptions = {
|
|
27
27
|
fallbackSort: { type: 'unsorted' },
|
|
28
28
|
newlinesInside: 'newlinesBetween',
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
defaultOptions,
|
|
27
27
|
sortHeritageClause,
|
|
28
28
|
} from './sort-heritage-clauses/sort-heritage-clause.js'
|
|
29
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
29
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
30
30
|
var sort_heritage_clauses_default = createEslintRule({
|
|
31
31
|
meta: {
|
|
32
32
|
schema: {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { passesAstSelectorFilter } from '../../utils/context-matching/passes-ast-selector-filter.js'
|
|
1
|
+
import { isContextOptionMatching } from '../../utils/context-matching/is-context-option-matching.js'
|
|
3
2
|
import { computeNodeName } from './compute-node-name.js'
|
|
4
3
|
/**
|
|
5
4
|
* Computes the matched context options for a given import/export attributes
|
|
@@ -29,19 +28,4 @@ function computeMatchedContextOptions({
|
|
|
29
28
|
}),
|
|
30
29
|
)
|
|
31
30
|
}
|
|
32
|
-
function isContextOptionMatching({ matchedAstSelectors, nodeNames, options }) {
|
|
33
|
-
if (!options.useConfigurationIf) {
|
|
34
|
-
return true
|
|
35
|
-
}
|
|
36
|
-
return (
|
|
37
|
-
passesAllNamesMatchPatternFilter({
|
|
38
|
-
allNamesMatchPattern: options.useConfigurationIf.allNamesMatchPattern,
|
|
39
|
-
nodeNames,
|
|
40
|
-
}) &&
|
|
41
|
-
passesAstSelectorFilter({
|
|
42
|
-
matchesAstSelector: options.useConfigurationIf.matchesAstSelector,
|
|
43
|
-
matchedAstSelectors,
|
|
44
|
-
})
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
31
|
export { computeMatchedContextOptions }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
2
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
2
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
3
3
|
/**
|
|
4
4
|
* Extracts the name of an import attribute for sorting purposes.
|
|
5
5
|
*
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import { buildAstListeners } from '../utils/build-ast-listeners.js'
|
|
18
18
|
import { createEslintRule } from '../utils/create-eslint-rule.js'
|
|
19
19
|
import { sortImportOrExportAttributes } from './sort-import-attributes/sort-import-or-export-attributes.js'
|
|
20
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
20
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
21
21
|
const ORDER_ERROR_ID = 'unexpectedImportAttributesOrder'
|
|
22
22
|
const GROUP_ORDER_ERROR_ID = 'unexpectedImportAttributesGroupOrder'
|
|
23
23
|
const EXTRA_SPACING_ERROR_ID = 'extraSpacingBetweenImportAttributes'
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
2
2
|
import { computeOrderedValue } from '../../utils/compare/compute-ordered-value.js'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { compareNaturally } from '../../utils/compare/compare-naturally.js'
|
|
8
|
-
import { defaultComparatorByOptionsComputer } from '../../utils/compare/default-comparator-by-options-computer.js'
|
|
3
|
+
import {
|
|
4
|
+
buildStringComparatorByOptionsComputer,
|
|
5
|
+
defaultComparatorByOptionsComputer,
|
|
6
|
+
} from '../../utils/compare/default-comparator-by-options-computer.js'
|
|
9
7
|
let comparatorByOptionsComputer = options => {
|
|
10
8
|
switch (options.type) {
|
|
11
9
|
case 'type-import-first':
|
|
@@ -56,35 +54,6 @@ function compareTypeImportFirst(a, b, options) {
|
|
|
56
54
|
}
|
|
57
55
|
return computeOrderedValue(a.isTypeImport ? -1 : 1, options.order)
|
|
58
56
|
}
|
|
59
|
-
let bySpecifierComparatorByOptionsComputer =
|
|
60
|
-
|
|
61
|
-
/* v8 ignore next 2 -- @preserve Untested for now as not a relevant sort for this rule. */
|
|
62
|
-
case 'subgroup-order':
|
|
63
|
-
return defaultComparatorByOptionsComputer(options)
|
|
64
|
-
case 'alphabetical':
|
|
65
|
-
return (a, b) =>
|
|
66
|
-
compareAlphabetically(
|
|
67
|
-
a.specifierName ?? '',
|
|
68
|
-
b.specifierName ?? '',
|
|
69
|
-
options,
|
|
70
|
-
)
|
|
71
|
-
case 'line-length':
|
|
72
|
-
return buildLineLengthComparator(options)
|
|
73
|
-
case 'unsorted':
|
|
74
|
-
return unsortedComparator
|
|
75
|
-
case 'natural':
|
|
76
|
-
return (a, b) =>
|
|
77
|
-
compareNaturally(a.specifierName ?? '', b.specifierName ?? '', options)
|
|
78
|
-
case 'custom':
|
|
79
|
-
return (a, b) =>
|
|
80
|
-
compareByCustomSort(
|
|
81
|
-
a.specifierName ?? '',
|
|
82
|
-
b.specifierName ?? '',
|
|
83
|
-
options,
|
|
84
|
-
)
|
|
85
|
-
/* v8 ignore next 2 -- @preserve Exhaustive guard. */
|
|
86
|
-
default:
|
|
87
|
-
throw new UnreachableCaseError(options.type)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
57
|
+
let bySpecifierComparatorByOptionsComputer =
|
|
58
|
+
buildStringComparatorByOptionsComputer(node => node.specifierName ?? '')
|
|
90
59
|
export { comparatorByOptionsComputer }
|
|
@@ -40,7 +40,7 @@ function computeCommonSelectors({ tsConfigOutput, filename, options, name }) {
|
|
|
40
40
|
) {
|
|
41
41
|
commonSelectors.push('tsconfig-path')
|
|
42
42
|
}
|
|
43
|
-
if (
|
|
43
|
+
if (indexModules.has(name)) {
|
|
44
44
|
commonSelectors.push('index')
|
|
45
45
|
}
|
|
46
46
|
if (isSibling(name)) {
|
|
@@ -75,7 +75,25 @@ let bunModules = /* @__PURE__ */ new Set([
|
|
|
75
75
|
'ws',
|
|
76
76
|
])
|
|
77
77
|
let nodeBuiltinModules = new Set(builtinModules)
|
|
78
|
+
/**
|
|
79
|
+
* Import paths that resolve to an index file.
|
|
80
|
+
*/
|
|
81
|
+
let indexModules = /* @__PURE__ */ new Set([
|
|
82
|
+
'./index.d.js',
|
|
83
|
+
'./index.d.ts',
|
|
84
|
+
'./index.js',
|
|
85
|
+
'./index.ts',
|
|
86
|
+
'./index',
|
|
87
|
+
'./',
|
|
88
|
+
'.',
|
|
89
|
+
])
|
|
90
|
+
/**
|
|
91
|
+
* Node.js builtin modules that can only be imported with the `node:` prefix.
|
|
92
|
+
* Since Node.js 23.5.0, `builtinModules` lists them with the prefix. The
|
|
93
|
+
* explicit entries cover older versions.
|
|
94
|
+
*/
|
|
78
95
|
let builtinPrefixOnlyModules = /* @__PURE__ */ new Set([
|
|
96
|
+
...builtinModules.filter(name => name.startsWith('node:')),
|
|
79
97
|
'node:sqlite',
|
|
80
98
|
'node:test',
|
|
81
99
|
'node:sea',
|
|
@@ -151,23 +169,6 @@ function isCoreModule(value, environment) {
|
|
|
151
169
|
}
|
|
152
170
|
return environment === 'bun' && bunModules.has(value)
|
|
153
171
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Checks if an import is an index file import.
|
|
156
|
-
*
|
|
157
|
-
* @param value - Import path to check.
|
|
158
|
-
* @returns True if importing an index file.
|
|
159
|
-
*/
|
|
160
|
-
function isIndex(value) {
|
|
161
|
-
return [
|
|
162
|
-
'./index.d.js',
|
|
163
|
-
'./index.d.ts',
|
|
164
|
-
'./index.js',
|
|
165
|
-
'./index.ts',
|
|
166
|
-
'./index',
|
|
167
|
-
'./',
|
|
168
|
-
'.',
|
|
169
|
-
].includes(value)
|
|
170
|
-
}
|
|
171
172
|
/**
|
|
172
173
|
* Checks if an import is a sibling module (same directory).
|
|
173
174
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnreachableCaseError } from '../../utils/unreachable-case-error.js'
|
|
2
|
-
import { AST_NODE_TYPES } from '@typescript-eslint/
|
|
2
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/types'
|
|
3
3
|
function computeSpecifierName({ sourceCode, node }) {
|
|
4
4
|
switch (node.type) {
|
|
5
5
|
case AST_NODE_TYPES.TSImportEqualsDeclaration:
|