eslint-plugin-perfectionist 5.2.0 → 5.3.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/types.d.ts +15 -18
- package/dist/rules/sort-array-includes/types.js +2 -2
- package/dist/rules/sort-array-includes.js +13 -10
- package/dist/rules/sort-classes/compute-dependencies.d.ts +24 -0
- package/dist/rules/sort-classes/compute-dependencies.js +147 -0
- package/dist/rules/sort-classes/compute-dependency-name.d.ts +9 -0
- package/dist/rules/sort-classes/compute-dependency-name.js +8 -0
- package/dist/rules/sort-classes/compute-identifier-name-details.d.ts +16 -0
- package/dist/rules/sort-classes/compute-identifier-name-details.js +27 -0
- package/dist/rules/sort-classes/get-overload-signature-groups.js +4 -3
- package/dist/rules/sort-classes/node-info/common-modifiers.d.ts +39 -0
- package/dist/rules/sort-classes/node-info/common-modifiers.js +62 -0
- package/dist/rules/sort-classes/node-info/compute-accessor-details.d.ts +26 -0
- package/dist/rules/sort-classes/node-info/compute-accessor-details.js +43 -0
- package/dist/rules/sort-classes/node-info/compute-index-signature-details.d.ts +23 -0
- package/dist/rules/sort-classes/node-info/compute-index-signature-details.js +21 -0
- package/dist/rules/sort-classes/node-info/compute-method-details.d.ts +29 -0
- package/dist/rules/sort-classes/node-info/compute-method-details.js +80 -0
- package/dist/rules/sort-classes/node-info/compute-method-or-property-name-details.d.ts +21 -0
- package/dist/rules/sort-classes/node-info/compute-method-or-property-name-details.js +17 -0
- package/dist/rules/sort-classes/node-info/compute-property-details.d.ts +36 -0
- package/dist/rules/sort-classes/node-info/compute-property-details.js +109 -0
- package/dist/rules/sort-classes/node-info/compute-static-block-details.d.ts +26 -0
- package/dist/rules/sort-classes/node-info/compute-static-block-details.js +18 -0
- package/dist/rules/sort-classes/types.d.ts +15 -18
- package/dist/rules/sort-classes/types.js +6 -2
- package/dist/rules/sort-classes.js +79 -291
- package/dist/rules/sort-decorators/types.d.ts +10 -12
- package/dist/rules/sort-decorators.js +57 -56
- package/dist/rules/sort-enums/build-comparator-by-options-computer.js +6 -0
- package/dist/rules/sort-enums/types.d.ts +16 -19
- package/dist/rules/sort-enums/types.js +2 -2
- package/dist/rules/sort-enums.js +13 -11
- package/dist/rules/sort-export-attributes/types.d.ts +6 -8
- package/dist/rules/sort-export-attributes.js +2 -1
- package/dist/rules/sort-exports/types.d.ts +11 -10
- package/dist/rules/sort-exports/types.js +6 -2
- package/dist/rules/sort-exports.js +7 -6
- package/dist/rules/sort-heritage-clauses/types.d.ts +6 -8
- package/dist/rules/sort-heritage-clauses.js +2 -1
- package/dist/rules/sort-import-attributes/types.d.ts +6 -8
- package/dist/rules/sort-import-attributes.js +2 -1
- package/dist/rules/sort-imports/comparator-by-options-computer.js +5 -0
- package/dist/rules/sort-imports/compute-specifier-modifiers.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/types.d.ts +18 -24
- package/dist/rules/sort-imports/types.js +9 -6
- package/dist/rules/sort-imports.js +25 -17
- package/dist/rules/sort-jsx-props/types.d.ts +18 -18
- package/dist/rules/sort-jsx-props/types.js +6 -2
- package/dist/rules/sort-jsx-props.js +14 -7
- package/dist/rules/sort-maps/types.d.ts +10 -16
- package/dist/rules/sort-maps.js +11 -6
- package/dist/rules/sort-modules/build-comparator-by-options-computer.js +2 -0
- package/dist/rules/sort-modules/compute-dependencies.d.ts +2 -5
- package/dist/rules/sort-modules/compute-dependencies.js +3 -0
- package/dist/rules/sort-modules/compute-node-details.d.ts +38 -0
- package/dist/rules/sort-modules/compute-node-details.js +127 -0
- 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/types.d.ts +24 -17
- package/dist/rules/sort-modules/types.js +2 -2
- package/dist/rules/sort-modules.js +72 -141
- package/dist/rules/sort-named-exports/compute-node-name.js +1 -1
- package/dist/rules/sort-named-exports/types.d.ts +16 -16
- package/dist/rules/sort-named-exports/types.js +6 -2
- package/dist/rules/sort-named-exports.js +6 -5
- package/dist/rules/sort-named-imports/compute-node-name.js +1 -1
- package/dist/rules/sort-named-imports/types.d.ts +16 -17
- package/dist/rules/sort-named-imports/types.js +6 -2
- package/dist/rules/sort-named-imports.js +7 -6
- package/dist/rules/sort-object-types/comparator-by-options-computer.js +3 -0
- package/dist/rules/sort-object-types/is-member-optional.js +1 -1
- package/dist/rules/sort-object-types/is-node-function-type.js +20 -0
- package/dist/rules/sort-object-types/types.d.ts +21 -34
- package/dist/rules/sort-object-types/types.js +9 -6
- package/dist/rules/sort-object-types.js +7 -6
- package/dist/rules/sort-objects/types.d.ts +17 -21
- package/dist/rules/sort-objects/types.js +3 -3
- package/dist/rules/sort-objects.js +5 -3
- package/dist/rules/sort-sets.js +5 -4
- package/dist/rules/sort-switch-case.js +6 -4
- package/dist/rules/sort-union-types/types.d.ts +12 -12
- package/dist/rules/sort-union-types/types.js +2 -2
- package/dist/rules/sort-union-types.js +37 -35
- package/dist/rules/sort-variable-declarations/types.d.ts +12 -13
- package/dist/rules/sort-variable-declarations/types.js +2 -2
- package/dist/rules/sort-variable-declarations.js +14 -12
- package/dist/types/all-common-options.d.ts +14 -0
- package/dist/types/common-groups-options.d.ts +73 -95
- package/dist/types/common-options.d.ts +60 -55
- package/dist/utils/build-default-options-by-group-index-computer.d.ts +1 -1
- package/dist/utils/compare/build-string-formatter.d.ts +4 -5
- package/dist/utils/compare/build-subgroup-order-comparator.d.ts +10 -0
- package/dist/utils/compare/build-subgroup-order-comparator.js +49 -0
- package/dist/utils/compare/default-comparator-by-options-computer.d.ts +4 -1
- package/dist/utils/compare/default-comparator-by-options-computer.js +9 -0
- package/dist/utils/compute-group.d.ts +9 -9
- package/dist/utils/compute-overridden-options-by-group-index.d.ts +1 -1
- package/dist/utils/does-custom-group-match.d.ts +6 -4
- package/dist/utils/get-comment-above-that-should-exist.d.ts +1 -1
- package/dist/utils/get-newlines-between-errors.d.ts +1 -1
- package/dist/utils/get-newlines-between-option.d.ts +1 -7
- package/dist/utils/get-node-range.d.ts +2 -9
- package/dist/utils/get-settings.d.ts +1 -1
- package/dist/utils/is-group-with-overrides-option.d.ts +3 -6
- package/dist/utils/json-schemas/common-groups-json-schemas.d.ts +6 -6
- package/dist/utils/json-schemas/common-groups-json-schemas.js +12 -10
- package/dist/utils/json-schemas/common-json-schemas.d.ts +5 -5
- package/dist/utils/json-schemas/common-json-schemas.js +13 -12
- package/dist/utils/make-comment-above-fixes.d.ts +1 -1
- package/dist/utils/make-fixes.d.ts +3 -5
- package/dist/utils/make-newlines-between-fixes.d.ts +1 -1
- package/dist/utils/make-order-fixes.d.ts +2 -5
- package/dist/utils/report-all-errors.d.ts +19 -17
- package/dist/utils/report-errors.d.ts +3 -1
- package/dist/utils/should-partition.d.ts +2 -5
- package/dist/utils/validate-custom-sort-configuration.d.ts +1 -1
- package/dist/utils/validate-groups-configuration.d.ts +1 -1
- package/dist/utils/validate-newlines-and-partition-configuration.d.ts +1 -1
- package/package.json +2 -2
- package/readme.md +1 -1
- package/dist/types/join.d.ts +0 -19
- package/dist/utils/is-node-function-type.js +0 -13
- /package/dist/{utils → rules/sort-object-types}/is-node-function-type.d.ts +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils'
|
|
2
|
+
import {
|
|
3
|
+
computeStaticModifier,
|
|
4
|
+
computeAbstractModifier,
|
|
5
|
+
computeDecoratedModifier,
|
|
6
|
+
computeOverrideModifier,
|
|
7
|
+
computeAccessibilityModifier,
|
|
8
|
+
computeOptionalModifier,
|
|
9
|
+
computeAsyncModifier,
|
|
10
|
+
} from './common-modifiers.js'
|
|
11
|
+
import { computeMethodOrPropertyNameDetails } from './compute-method-or-property-name-details.js'
|
|
12
|
+
import { UnreachableCaseError } from '../../../utils/unreachable-case-error.js'
|
|
13
|
+
function computeMethodDetails({
|
|
14
|
+
hasParentDeclare,
|
|
15
|
+
isDecorated,
|
|
16
|
+
sourceCode,
|
|
17
|
+
method,
|
|
18
|
+
}) {
|
|
19
|
+
let { hasPrivateHash, name } = computeMethodOrPropertyNameDetails(
|
|
20
|
+
method,
|
|
21
|
+
sourceCode,
|
|
22
|
+
)
|
|
23
|
+
return {
|
|
24
|
+
addSafetySemicolonWhenInline: shouldAddSafetySemicolonWhenInline({
|
|
25
|
+
hasParentDeclare,
|
|
26
|
+
method,
|
|
27
|
+
}),
|
|
28
|
+
modifiers: computeModifiers({
|
|
29
|
+
hasPrivateHash,
|
|
30
|
+
isDecorated,
|
|
31
|
+
method,
|
|
32
|
+
}),
|
|
33
|
+
selectors: computeSelectors(method),
|
|
34
|
+
name,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function computeSelectors(method) {
|
|
38
|
+
return [...computeSetterOrConstructorSelector(), 'method']
|
|
39
|
+
function computeSetterOrConstructorSelector() {
|
|
40
|
+
switch (method.kind) {
|
|
41
|
+
case 'constructor':
|
|
42
|
+
return ['constructor']
|
|
43
|
+
case 'method':
|
|
44
|
+
return []
|
|
45
|
+
case 'set':
|
|
46
|
+
return ['set-method']
|
|
47
|
+
case 'get':
|
|
48
|
+
return ['get-method']
|
|
49
|
+
/* v8 ignore next 2 -- @preserve Exhaustive guard. */
|
|
50
|
+
default:
|
|
51
|
+
throw new UnreachableCaseError(method.kind)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function computeModifiers({ hasPrivateHash, isDecorated, method }) {
|
|
56
|
+
return [
|
|
57
|
+
...computeStaticModifier(method),
|
|
58
|
+
...computeAbstractModifier(method),
|
|
59
|
+
...computeDecoratedModifier(isDecorated),
|
|
60
|
+
...computeOverrideModifier(method),
|
|
61
|
+
...computeAccessibilityModifier({
|
|
62
|
+
hasPrivateHash,
|
|
63
|
+
node: method,
|
|
64
|
+
}),
|
|
65
|
+
...computeOptionalModifier(method),
|
|
66
|
+
...computeAsyncModifier(method.value),
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
function shouldAddSafetySemicolonWhenInline({ hasParentDeclare, method }) {
|
|
70
|
+
switch (method.type) {
|
|
71
|
+
case AST_NODE_TYPES.TSAbstractMethodDefinition:
|
|
72
|
+
return true
|
|
73
|
+
case AST_NODE_TYPES.MethodDefinition:
|
|
74
|
+
return hasParentDeclare
|
|
75
|
+
/* v8 ignore next 2 -- @preserve Exhaustive guard. */
|
|
76
|
+
default:
|
|
77
|
+
throw new UnreachableCaseError(method)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export { computeMethodDetails }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TSESTree } from '@typescript-eslint/types'
|
|
2
|
+
import { TSESLint } from '@typescript-eslint/utils'
|
|
3
|
+
import { NodeNameDetails } from '../compute-identifier-name-details.js'
|
|
4
|
+
/**
|
|
5
|
+
* Computes the name details of a method or property node.
|
|
6
|
+
*
|
|
7
|
+
* @param node - The method or property node to compute the name for.
|
|
8
|
+
* @param sourceCode - The ESLint source code object.
|
|
9
|
+
* @returns An object containing the name, whether it has a private hash, and
|
|
10
|
+
* the name without the starting hash.
|
|
11
|
+
*/
|
|
12
|
+
export declare function computeMethodOrPropertyNameDetails(
|
|
13
|
+
node:
|
|
14
|
+
| TSESTree.TSAbstractPropertyDefinition
|
|
15
|
+
| TSESTree.TSAbstractMethodDefinition
|
|
16
|
+
| TSESTree.TSAbstractAccessorProperty
|
|
17
|
+
| TSESTree.PropertyDefinition
|
|
18
|
+
| TSESTree.MethodDefinition
|
|
19
|
+
| TSESTree.AccessorProperty,
|
|
20
|
+
sourceCode: TSESLint.SourceCode,
|
|
21
|
+
): NodeNameDetails
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils'
|
|
2
|
+
import { computeIdentifierNameDetails } from '../compute-identifier-name-details.js'
|
|
3
|
+
function computeMethodOrPropertyNameDetails(node, sourceCode) {
|
|
4
|
+
switch (node.key.type) {
|
|
5
|
+
case AST_NODE_TYPES.PrivateIdentifier:
|
|
6
|
+
case AST_NODE_TYPES.Identifier:
|
|
7
|
+
case AST_NODE_TYPES.Literal:
|
|
8
|
+
return computeIdentifierNameDetails(node.key)
|
|
9
|
+
default:
|
|
10
|
+
return {
|
|
11
|
+
nameWithoutStartingHash: sourceCode.getText(node.key),
|
|
12
|
+
name: sourceCode.getText(node.key),
|
|
13
|
+
hasPrivateHash: false,
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export { computeMethodOrPropertyNameDetails }
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TSESTree } from '@typescript-eslint/types'
|
|
2
|
+
import { TSESLint } from '@typescript-eslint/utils'
|
|
3
|
+
import { RegexOption } from '../../../types/common-options.js'
|
|
4
|
+
import { Modifier, Selector } from '../types.js'
|
|
5
|
+
/**
|
|
6
|
+
* Computes details related to a property.
|
|
7
|
+
*
|
|
8
|
+
* @param params - Parameters object.
|
|
9
|
+
* @param params.isDecorated - Whether the accessor is decorated.
|
|
10
|
+
* @param params.property - The property node to compute information for.
|
|
11
|
+
* @param params.ignoreCallbackDependenciesPatterns - Patterns to ignore when
|
|
12
|
+
* computing dependencies.
|
|
13
|
+
* @param params.sourceCode - The source code object.
|
|
14
|
+
* @param params.className - The name of the class containing the property.
|
|
15
|
+
* @returns An object containing various details about the property.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computePropertyDetails({
|
|
18
|
+
ignoreCallbackDependenciesPatterns,
|
|
19
|
+
isDecorated,
|
|
20
|
+
sourceCode,
|
|
21
|
+
className,
|
|
22
|
+
property,
|
|
23
|
+
}: {
|
|
24
|
+
property: TSESTree.TSAbstractPropertyDefinition | TSESTree.PropertyDefinition
|
|
25
|
+
ignoreCallbackDependenciesPatterns: RegexOption
|
|
26
|
+
sourceCode: TSESLint.SourceCode
|
|
27
|
+
className: undefined | string
|
|
28
|
+
isDecorated: boolean
|
|
29
|
+
}): {
|
|
30
|
+
memberValue: undefined | string
|
|
31
|
+
dependencyNames: string[]
|
|
32
|
+
dependencies: string[]
|
|
33
|
+
modifiers: Modifier[]
|
|
34
|
+
selectors: Selector[]
|
|
35
|
+
name: string
|
|
36
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils'
|
|
2
|
+
import {
|
|
3
|
+
computeStaticModifier,
|
|
4
|
+
computeAbstractModifier,
|
|
5
|
+
computeDecoratedModifier,
|
|
6
|
+
computeOverrideModifier,
|
|
7
|
+
computeReadonlyModifier,
|
|
8
|
+
computeAccessibilityModifier,
|
|
9
|
+
computeOptionalModifier,
|
|
10
|
+
computeAsyncModifier,
|
|
11
|
+
} from './common-modifiers.js'
|
|
12
|
+
import { computeMethodOrPropertyNameDetails } from './compute-method-or-property-name-details.js'
|
|
13
|
+
import { computeDependencyName } from '../compute-dependency-name.js'
|
|
14
|
+
import { computeDependencies } from '../compute-dependencies.js'
|
|
15
|
+
function computePropertyDetails({
|
|
16
|
+
ignoreCallbackDependenciesPatterns,
|
|
17
|
+
isDecorated,
|
|
18
|
+
sourceCode,
|
|
19
|
+
className,
|
|
20
|
+
property,
|
|
21
|
+
}) {
|
|
22
|
+
let { nameWithoutStartingHash, hasPrivateHash, name } =
|
|
23
|
+
computeMethodOrPropertyNameDetails(property, sourceCode)
|
|
24
|
+
let modifiers = computeModifiers({
|
|
25
|
+
hasPrivateHash,
|
|
26
|
+
isDecorated,
|
|
27
|
+
property,
|
|
28
|
+
})
|
|
29
|
+
return {
|
|
30
|
+
dependencyNames: [
|
|
31
|
+
computeDependencyName({
|
|
32
|
+
nodeNameWithoutStartingHash: nameWithoutStartingHash,
|
|
33
|
+
isStatic: modifiers.includes('static'),
|
|
34
|
+
hasPrivateHash,
|
|
35
|
+
}),
|
|
36
|
+
],
|
|
37
|
+
memberValue:
|
|
38
|
+
!isFunctionExpression(property.value) && property.value
|
|
39
|
+
? sourceCode.getText(property.value)
|
|
40
|
+
: void 0,
|
|
41
|
+
dependencies: computePropertyDependencies({
|
|
42
|
+
ignoreCallbackDependenciesPatterns,
|
|
43
|
+
className,
|
|
44
|
+
property,
|
|
45
|
+
}),
|
|
46
|
+
selectors: computeSelectors(property),
|
|
47
|
+
modifiers,
|
|
48
|
+
name,
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function computeModifiers({ hasPrivateHash, isDecorated, property }) {
|
|
52
|
+
return [
|
|
53
|
+
...computeStaticModifier(property),
|
|
54
|
+
...computeDeclareModifier(),
|
|
55
|
+
...computeAbstractModifier(property),
|
|
56
|
+
...computeDecoratedModifier(isDecorated),
|
|
57
|
+
...computeOverrideModifier(property),
|
|
58
|
+
...computeReadonlyModifier(property),
|
|
59
|
+
...computeAccessibilityModifier({
|
|
60
|
+
hasPrivateHash,
|
|
61
|
+
node: property,
|
|
62
|
+
}),
|
|
63
|
+
...computeOptionalModifier(property),
|
|
64
|
+
...computeAsyncModifierIfFunctionProperty(),
|
|
65
|
+
]
|
|
66
|
+
function computeDeclareModifier() {
|
|
67
|
+
return property.declare ? ['declare'] : []
|
|
68
|
+
}
|
|
69
|
+
function computeAsyncModifierIfFunctionProperty() {
|
|
70
|
+
if (!isFunctionExpression(property.value)) {
|
|
71
|
+
return []
|
|
72
|
+
}
|
|
73
|
+
return computeAsyncModifier(property.value)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function computePropertyDependencies({
|
|
77
|
+
ignoreCallbackDependenciesPatterns,
|
|
78
|
+
className,
|
|
79
|
+
property,
|
|
80
|
+
}) {
|
|
81
|
+
if (isFunctionExpression(property.value)) {
|
|
82
|
+
return []
|
|
83
|
+
}
|
|
84
|
+
if (!property.value) {
|
|
85
|
+
return []
|
|
86
|
+
}
|
|
87
|
+
return computeDependencies({
|
|
88
|
+
ignoreCallbackDependenciesPatterns,
|
|
89
|
+
isMemberStatic: property.static,
|
|
90
|
+
expression: property.value,
|
|
91
|
+
className,
|
|
92
|
+
})
|
|
93
|
+
}
|
|
94
|
+
function computeSelectors(property) {
|
|
95
|
+
return [...computeFunctionPropertySelector(), 'property']
|
|
96
|
+
function computeFunctionPropertySelector() {
|
|
97
|
+
return isFunctionExpression(property.value) ? ['function-property'] : []
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function isFunctionExpression(node) {
|
|
101
|
+
if (!node) {
|
|
102
|
+
return false
|
|
103
|
+
}
|
|
104
|
+
return (
|
|
105
|
+
node.type === AST_NODE_TYPES.ArrowFunctionExpression ||
|
|
106
|
+
node.type === AST_NODE_TYPES.FunctionExpression
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
export { computePropertyDetails }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TSESTree } from '@typescript-eslint/types'
|
|
2
|
+
import { RegexOption } from '../../../types/common-options.js'
|
|
3
|
+
import { Modifier, Selector } from '../types.js'
|
|
4
|
+
/**
|
|
5
|
+
* Computes details related to a static block.
|
|
6
|
+
*
|
|
7
|
+
* @param params - Parameters object.
|
|
8
|
+
* @param params.staticBlock - The static block node to compute information for.
|
|
9
|
+
* @param params.ignoreCallbackDependenciesPatterns - Patterns to ignore when
|
|
10
|
+
* computing dependencies.
|
|
11
|
+
* @param params.className - The name of the class containing the property.
|
|
12
|
+
* @returns An object containing various details about the static block.
|
|
13
|
+
*/
|
|
14
|
+
export declare function computeStaticBlockDetails({
|
|
15
|
+
ignoreCallbackDependenciesPatterns,
|
|
16
|
+
staticBlock,
|
|
17
|
+
className,
|
|
18
|
+
}: {
|
|
19
|
+
ignoreCallbackDependenciesPatterns: RegexOption
|
|
20
|
+
staticBlock: TSESTree.StaticBlock
|
|
21
|
+
className: undefined | string
|
|
22
|
+
}): {
|
|
23
|
+
dependencies: string[]
|
|
24
|
+
selectors: Selector[]
|
|
25
|
+
modifiers: Modifier[]
|
|
26
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { computeDependencies } from '../compute-dependencies.js'
|
|
2
|
+
function computeStaticBlockDetails({
|
|
3
|
+
ignoreCallbackDependenciesPatterns,
|
|
4
|
+
staticBlock,
|
|
5
|
+
className,
|
|
6
|
+
}) {
|
|
7
|
+
return {
|
|
8
|
+
dependencies: computeDependencies({
|
|
9
|
+
ignoreCallbackDependenciesPatterns,
|
|
10
|
+
expression: staticBlock,
|
|
11
|
+
isMemberStatic: true,
|
|
12
|
+
className,
|
|
13
|
+
}),
|
|
14
|
+
selectors: ['static-block'],
|
|
15
|
+
modifiers: [],
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export { computeStaticBlockDetails }
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { JSONSchema4 } from '@typescript-eslint/utils/json-schema'
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
RegexOption,
|
|
5
|
-
TypeOption,
|
|
6
|
-
} from '../../types/common-options.js'
|
|
7
|
-
import { CommonPartitionOptions } from '../../types/common-partition-options.js'
|
|
8
|
-
import { CommonGroupsOptions } from '../../types/common-groups-options.js'
|
|
2
|
+
import { RegexOption, TypeOption } from '../../types/common-options.js'
|
|
3
|
+
import { AllCommonOptions } from '../../types/all-common-options.js'
|
|
9
4
|
/**
|
|
10
5
|
* Configuration options for the sort-classes rule.
|
|
11
6
|
*
|
|
@@ -21,13 +16,11 @@ export type SortClassesOptions = [
|
|
|
21
16
|
* inside these callbacks won't influence the ordering.
|
|
22
17
|
*/
|
|
23
18
|
ignoreCallbackDependenciesPatterns: RegexOption
|
|
24
|
-
} &
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
>
|
|
29
|
-
CommonOptions<TypeOption> &
|
|
30
|
-
CommonPartitionOptions
|
|
19
|
+
} & AllCommonOptions<
|
|
20
|
+
TypeOption,
|
|
21
|
+
AdditionalSortOptions,
|
|
22
|
+
CustomGroupMatchOptions
|
|
23
|
+
>
|
|
31
24
|
>,
|
|
32
25
|
]
|
|
33
26
|
/**
|
|
@@ -47,7 +40,7 @@ export type Modifier = (typeof allModifiers)[number]
|
|
|
47
40
|
* property, etc.) and various patterns matching their names, values, or
|
|
48
41
|
* decorators.
|
|
49
42
|
*/
|
|
50
|
-
interface
|
|
43
|
+
interface CustomGroupMatchOptions {
|
|
51
44
|
/** Pattern to match decorator names (e.g., '@Component'). */
|
|
52
45
|
decoratorNamePattern?: RegexOption
|
|
53
46
|
/**
|
|
@@ -60,6 +53,7 @@ interface SingleCustomGroup {
|
|
|
60
53
|
/** The type of class member this group applies to. */
|
|
61
54
|
selector?: Selector
|
|
62
55
|
}
|
|
56
|
+
type AdditionalSortOptions = object
|
|
63
57
|
/**
|
|
64
58
|
* Complete list of available class member selectors. Used for validation and
|
|
65
59
|
* JSON schema generation.
|
|
@@ -93,11 +87,14 @@ export declare let allModifiers: readonly [
|
|
|
93
87
|
'optional',
|
|
94
88
|
]
|
|
95
89
|
/**
|
|
96
|
-
* JSON schema
|
|
97
|
-
*
|
|
90
|
+
* Additional custom group match options JSON schema. Used by ESLint to validate
|
|
91
|
+
* rule options at configuration time.
|
|
98
92
|
*
|
|
99
93
|
* Note: Ideally, we should generate as many schemas as there are selectors, and
|
|
100
94
|
* ensure that users do not enter invalid modifiers for a given selector.
|
|
101
95
|
*/
|
|
102
|
-
export declare let
|
|
96
|
+
export declare let additionalCustomGroupMatchOptionsJsonSchema: Record<
|
|
97
|
+
string,
|
|
98
|
+
JSONSchema4
|
|
99
|
+
>
|
|
103
100
|
export {}
|
|
@@ -27,10 +27,14 @@ let allModifiers = [
|
|
|
27
27
|
'declare',
|
|
28
28
|
'optional',
|
|
29
29
|
]
|
|
30
|
-
let
|
|
30
|
+
let additionalCustomGroupMatchOptionsJsonSchema = {
|
|
31
31
|
modifiers: buildCustomGroupModifiersJsonSchema(allModifiers),
|
|
32
32
|
selector: buildCustomGroupSelectorJsonSchema(allSelectors),
|
|
33
33
|
decoratorNamePattern: buildRegexJsonSchema(),
|
|
34
34
|
elementValuePattern: buildRegexJsonSchema(),
|
|
35
35
|
}
|
|
36
|
-
export {
|
|
36
|
+
export {
|
|
37
|
+
additionalCustomGroupMatchOptionsJsonSchema,
|
|
38
|
+
allModifiers,
|
|
39
|
+
allSelectors,
|
|
40
|
+
}
|