@pengzhanbo/eslint-config 2.4.1 → 2.5.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/index.d.mts +150 -65
- package/dist/index.mjs +21 -50
- package/package.json +37 -37
package/dist/index.d.mts
CHANGED
|
@@ -462,12 +462,12 @@ interface RuleOptions {
|
|
|
462
462
|
*/
|
|
463
463
|
'angular/use-pipe-transform-interface'?: Linter.RuleEntry<[]>;
|
|
464
464
|
/**
|
|
465
|
-
*
|
|
465
|
+
* Enforce consistent line breaks for chaining member access
|
|
466
466
|
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-chaining.md
|
|
467
467
|
*/
|
|
468
468
|
'antfu/consistent-chaining'?: Linter.RuleEntry<AntfuConsistentChaining>;
|
|
469
469
|
/**
|
|
470
|
-
*
|
|
470
|
+
* Enforce consistent line breaks inside braces and parentheses
|
|
471
471
|
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-list-newline.md
|
|
472
472
|
*/
|
|
473
473
|
'antfu/consistent-list-newline'?: Linter.RuleEntry<AntfuConsistentListNewline>;
|
|
@@ -493,22 +493,22 @@ interface RuleOptions {
|
|
|
493
493
|
'antfu/indent-unindent'?: Linter.RuleEntry<AntfuIndentUnindent>;
|
|
494
494
|
/**
|
|
495
495
|
* Prevent importing modules in `dist` folder
|
|
496
|
-
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-dist.
|
|
496
|
+
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-dist.md
|
|
497
497
|
*/
|
|
498
498
|
'antfu/no-import-dist'?: Linter.RuleEntry<[]>;
|
|
499
499
|
/**
|
|
500
500
|
* Prevent importing modules in `node_modules` folder by relative or absolute path
|
|
501
|
-
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-node-modules-by-path.
|
|
501
|
+
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-node-modules-by-path.md
|
|
502
502
|
*/
|
|
503
503
|
'antfu/no-import-node-modules-by-path'?: Linter.RuleEntry<[]>;
|
|
504
504
|
/**
|
|
505
505
|
* Prevent using top-level await
|
|
506
|
-
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-top-level-await.
|
|
506
|
+
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-top-level-await.md
|
|
507
507
|
*/
|
|
508
508
|
'antfu/no-top-level-await'?: Linter.RuleEntry<[]>;
|
|
509
509
|
/**
|
|
510
510
|
* Do not use `exports =`
|
|
511
|
-
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-ts-export-equal.
|
|
511
|
+
* @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-ts-export-equal.md
|
|
512
512
|
*/
|
|
513
513
|
'antfu/no-ts-export-equal'?: Linter.RuleEntry<[]>;
|
|
514
514
|
/**
|
|
@@ -3728,46 +3728,46 @@ interface RuleOptions {
|
|
|
3728
3728
|
'react/immutability'?: Linter.RuleEntry<[]>;
|
|
3729
3729
|
/**
|
|
3730
3730
|
* Disallows passing 'children' as a prop.
|
|
3731
|
-
* @see https://eslint-react.xyz/docs/rules/no-children-prop
|
|
3731
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-children-prop
|
|
3732
3732
|
*/
|
|
3733
3733
|
'react/jsx-no-children-prop'?: Linter.RuleEntry<[]>;
|
|
3734
3734
|
/**
|
|
3735
3735
|
* Disallows passing 'children' as a prop when children are also passed as nested content.
|
|
3736
|
-
* @see https://eslint-react.xyz/docs/rules/no-children-prop-with-children
|
|
3736
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-children-prop-with-children
|
|
3737
3737
|
*/
|
|
3738
3738
|
'react/jsx-no-children-prop-with-children'?: Linter.RuleEntry<[]>;
|
|
3739
3739
|
/**
|
|
3740
3740
|
* Prevents comment strings from being accidentally inserted into a JSX element's text nodes.
|
|
3741
|
-
* @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
|
|
3741
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes
|
|
3742
3742
|
*/
|
|
3743
3743
|
'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
|
|
3744
3744
|
/**
|
|
3745
3745
|
* Prevent patterns that cause deoptimization when using the automatic JSX runtime.
|
|
3746
|
-
* @see https://eslint-react.xyz/docs/rules/no-key-after-spread
|
|
3746
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-key-after-spread
|
|
3747
3747
|
*/
|
|
3748
3748
|
'react/jsx-no-key-after-spread'?: Linter.RuleEntry<[]>;
|
|
3749
3749
|
/**
|
|
3750
3750
|
* Catches `$` before `{expr}` in JSX — typically from template literal `${expr}` being copy-pasted into JSX without removing the `$`. The `$` "leaks" into the rendered output.
|
|
3751
|
-
* @see https://eslint-react.xyz/docs/rules/no-leaked-dollar
|
|
3751
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-leaked-dollar
|
|
3752
3752
|
*/
|
|
3753
3753
|
'react/jsx-no-leaked-dollar'?: Linter.RuleEntry<[]>;
|
|
3754
3754
|
/**
|
|
3755
3755
|
* Catches `;` at the start of JSX text nodes — typically from accidentally placing a statement-ending `;` inside JSX. The `;` "leaks" into the rendered output.
|
|
3756
|
-
* @see https://eslint-react.xyz/docs/rules/no-leaked-semicolon
|
|
3756
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-leaked-semicolon
|
|
3757
3757
|
*/
|
|
3758
3758
|
'react/jsx-no-leaked-semicolon'?: Linter.RuleEntry<[]>;
|
|
3759
3759
|
/**
|
|
3760
3760
|
* Disallow JSX namespace syntax, as React does not support them.
|
|
3761
|
-
* @see https://eslint-react.xyz/docs/rules/no-namespace
|
|
3761
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-namespace
|
|
3762
3762
|
*/
|
|
3763
3763
|
'react/jsx-no-namespace'?: Linter.RuleEntry<[]>;
|
|
3764
3764
|
/**
|
|
3765
3765
|
* Disallows useless fragment elements.
|
|
3766
|
-
* @see https://eslint-react.xyz/docs/rules/no-useless-fragment
|
|
3766
|
+
* @see https://eslint-react.xyz/docs/rules/jsx-no-useless-fragment
|
|
3767
3767
|
*/
|
|
3768
3768
|
'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>;
|
|
3769
3769
|
/**
|
|
3770
|
-
* Enforces
|
|
3770
|
+
* Enforces identifier names assigned from `createContext` calls to be a valid component name with the suffix `Context`.
|
|
3771
3771
|
* @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
|
|
3772
3772
|
*/
|
|
3773
3773
|
'react/naming-convention-context-name'?: Linter.RuleEntry<[]>;
|
|
@@ -3847,7 +3847,7 @@ interface RuleOptions {
|
|
|
3847
3847
|
*/
|
|
3848
3848
|
'react/no-context-provider'?: Linter.RuleEntry<[]>;
|
|
3849
3849
|
/**
|
|
3850
|
-
* Disallows 'createRef' in function components.
|
|
3850
|
+
* Disallows 'createRef' in function components and Hooks.
|
|
3851
3851
|
* @see https://eslint-react.xyz/docs/rules/no-create-ref
|
|
3852
3852
|
*/
|
|
3853
3853
|
'react/no-create-ref'?: Linter.RuleEntry<[]>;
|
|
@@ -3972,7 +3972,7 @@ interface RuleOptions {
|
|
|
3972
3972
|
*/
|
|
3973
3973
|
'react/no-unused-props'?: Linter.RuleEntry<[]>;
|
|
3974
3974
|
/**
|
|
3975
|
-
* Warns about state variables that are defined but never used
|
|
3975
|
+
* Warns about state variables that are defined but never used.
|
|
3976
3976
|
* @see https://eslint-react.xyz/docs/rules/no-unused-state
|
|
3977
3977
|
*/
|
|
3978
3978
|
'react/no-unused-state'?: Linter.RuleEntry<[]>;
|
|
@@ -3993,7 +3993,7 @@ interface RuleOptions {
|
|
|
3993
3993
|
'react/refs'?: Linter.RuleEntry<[]>;
|
|
3994
3994
|
/**
|
|
3995
3995
|
* Validates and transforms React Client/Server Function definitions.
|
|
3996
|
-
* @see https://eslint-react.xyz/docs/rules/function-definition
|
|
3996
|
+
* @see https://eslint-react.xyz/docs/rules/rsc-function-definition
|
|
3997
3997
|
*/
|
|
3998
3998
|
'react/rsc-function-definition'?: Linter.RuleEntry<[]>;
|
|
3999
3999
|
/**
|
|
@@ -4142,7 +4142,7 @@ interface RuleOptions {
|
|
|
4142
4142
|
*/
|
|
4143
4143
|
'react/x-no-context-provider'?: Linter.RuleEntry<[]>;
|
|
4144
4144
|
/**
|
|
4145
|
-
* Disallows 'createRef' in function components.
|
|
4145
|
+
* Disallows 'createRef' in function components and Hooks.
|
|
4146
4146
|
* @see https://eslint-react.xyz/docs/rules/no-create-ref
|
|
4147
4147
|
*/
|
|
4148
4148
|
'react/x-no-create-ref'?: Linter.RuleEntry<[]>;
|
|
@@ -4267,7 +4267,7 @@ interface RuleOptions {
|
|
|
4267
4267
|
*/
|
|
4268
4268
|
'react/x-no-unused-props'?: Linter.RuleEntry<[]>;
|
|
4269
4269
|
/**
|
|
4270
|
-
* Warns about state variables that are defined but never used
|
|
4270
|
+
* Warns about state variables that are defined but never used.
|
|
4271
4271
|
* @see https://eslint-react.xyz/docs/rules/no-unused-state
|
|
4272
4272
|
*/
|
|
4273
4273
|
'react/x-no-unused-state'?: Linter.RuleEntry<[]>;
|
|
@@ -5609,6 +5609,11 @@ interface RuleOptions {
|
|
|
5609
5609
|
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/
|
|
5610
5610
|
*/
|
|
5611
5611
|
'svelte/no-navigation-without-resolve'?: Linter.RuleEntry<SvelteNoNavigationWithoutResolve>;
|
|
5612
|
+
/**
|
|
5613
|
+
* disallow `<style>` elements nested inside other elements or blocks
|
|
5614
|
+
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-nested-style-tag/
|
|
5615
|
+
*/
|
|
5616
|
+
'svelte/no-nested-style-tag'?: Linter.RuleEntry<[]>;
|
|
5612
5617
|
/**
|
|
5613
5618
|
* disallow use of not function in event handler
|
|
5614
5619
|
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-not-function-handler/
|
|
@@ -5724,6 +5729,11 @@ interface RuleOptions {
|
|
|
5724
5729
|
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-const/
|
|
5725
5730
|
*/
|
|
5726
5731
|
'svelte/prefer-const'?: Linter.RuleEntry<SveltePreferConst>;
|
|
5732
|
+
/**
|
|
5733
|
+
* disallow unnecessary `$derived.by()` when `$derived()` is sufficient
|
|
5734
|
+
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-derived-over-derived-by/
|
|
5735
|
+
*/
|
|
5736
|
+
'svelte/prefer-derived-over-derived-by'?: Linter.RuleEntry<[]>;
|
|
5727
5737
|
/**
|
|
5728
5738
|
* destructure values from object stores for better change tracking & fewer redraws
|
|
5729
5739
|
* @see https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-destructured-store-props/
|
|
@@ -8163,7 +8173,7 @@ interface RuleOptions {
|
|
|
8163
8173
|
*/
|
|
8164
8174
|
'vue/jsx-uses-vars'?: Linter.RuleEntry<[]>;
|
|
8165
8175
|
/**
|
|
8166
|
-
* Enforce consistent spacing between
|
|
8176
|
+
* Enforce consistent spacing between property names and type annotations in types and interfaces in `<template>`
|
|
8167
8177
|
* @see https://eslint.vuejs.org/rules/key-spacing.html
|
|
8168
8178
|
*/
|
|
8169
8179
|
'vue/key-spacing'?: Linter.RuleEntry<VueKeySpacing>;
|
|
@@ -8885,7 +8895,7 @@ interface RuleOptions {
|
|
|
8885
8895
|
*/
|
|
8886
8896
|
'vue/prop-name-casing'?: Linter.RuleEntry<VuePropNameCasing>;
|
|
8887
8897
|
/**
|
|
8888
|
-
* Require quotes around object literal property names in `<template>`
|
|
8898
|
+
* Require quotes around object literal, type literal, interfaces and enums property names in `<template>`
|
|
8889
8899
|
* @see https://eslint.vuejs.org/rules/quote-props.html
|
|
8890
8900
|
*/
|
|
8891
8901
|
'vue/quote-props'?: Linter.RuleEntry<VueQuoteProps>;
|
|
@@ -9403,6 +9413,7 @@ type AngularTemplateConditionalComplexity = [] | [{
|
|
|
9403
9413
|
}]; // ----- angular-template/cyclomatic-complexity -----
|
|
9404
9414
|
type AngularTemplateCyclomaticComplexity = [] | [{
|
|
9405
9415
|
maxComplexity?: number;
|
|
9416
|
+
variant?: ("classic" | "modified");
|
|
9406
9417
|
}]; // ----- angular-template/elements-content -----
|
|
9407
9418
|
type AngularTemplateElementsContent = [] | [{
|
|
9408
9419
|
allowList?: string[];
|
|
@@ -17822,6 +17833,7 @@ type VueArrayElementNewline = [] | [(_VueArrayElementNewlineBasicConfig | {
|
|
|
17822
17833
|
ArrayPattern?: _VueArrayElementNewlineBasicConfig;
|
|
17823
17834
|
})];
|
|
17824
17835
|
type _VueArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
|
|
17836
|
+
consistent?: boolean;
|
|
17825
17837
|
multiline?: boolean;
|
|
17826
17838
|
minItems?: (number | null);
|
|
17827
17839
|
}); // ----- vue/arrow-spacing -----
|
|
@@ -17881,9 +17893,14 @@ type VueCommaDangle = [] | [(_VueCommaDangleValue | {
|
|
|
17881
17893
|
imports?: _VueCommaDangleValueWithIgnore;
|
|
17882
17894
|
exports?: _VueCommaDangleValueWithIgnore;
|
|
17883
17895
|
functions?: _VueCommaDangleValueWithIgnore;
|
|
17896
|
+
importAttributes?: _VueCommaDangleValueWithIgnore;
|
|
17897
|
+
dynamicImports?: _VueCommaDangleValueWithIgnore;
|
|
17898
|
+
enums?: _VueCommaDangleValueWithIgnore;
|
|
17899
|
+
generics?: _VueCommaDangleValueWithIgnore;
|
|
17900
|
+
tuples?: _VueCommaDangleValueWithIgnore;
|
|
17884
17901
|
})];
|
|
17885
17902
|
type _VueCommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline");
|
|
17886
|
-
type _VueCommaDangleValueWithIgnore = ("always-multiline" | "always" | "
|
|
17903
|
+
type _VueCommaDangleValueWithIgnore = ("always-multiline" | "always" | "never" | "only-multiline" | "ignore"); // ----- vue/comma-spacing -----
|
|
17887
17904
|
type VueCommaSpacing = [] | [{
|
|
17888
17905
|
before?: boolean;
|
|
17889
17906
|
after?: boolean;
|
|
@@ -17933,6 +17950,10 @@ type VueFirstAttributeLinebreak = [] | [{
|
|
|
17933
17950
|
}]; // ----- vue/func-call-spacing -----
|
|
17934
17951
|
type VueFuncCallSpacing = ([] | ["never"] | [] | ["always"] | ["always", {
|
|
17935
17952
|
allowNewlines?: boolean;
|
|
17953
|
+
optionalChain?: {
|
|
17954
|
+
before?: boolean;
|
|
17955
|
+
after?: boolean;
|
|
17956
|
+
};
|
|
17936
17957
|
}]); // ----- vue/html-button-has-type -----
|
|
17937
17958
|
type VueHtmlButtonHasType = [] | [{
|
|
17938
17959
|
button?: boolean;
|
|
@@ -18004,6 +18025,7 @@ type VueKeySpacing = [] | [({
|
|
|
18004
18025
|
mode?: ("strict" | "minimum");
|
|
18005
18026
|
beforeColon?: boolean;
|
|
18006
18027
|
afterColon?: boolean;
|
|
18028
|
+
ignoredNodes?: ("ObjectExpression" | "ObjectPattern" | "ImportDeclaration" | "ExportNamedDeclaration" | "ExportAllDeclaration" | "TSTypeLiteral" | "TSInterfaceBody" | "ClassBody")[];
|
|
18007
18029
|
} | {
|
|
18008
18030
|
singleLine?: {
|
|
18009
18031
|
mode?: ("strict" | "minimum");
|
|
@@ -18047,18 +18069,6 @@ type VueKeywordSpacing = [] | [{
|
|
|
18047
18069
|
before?: boolean;
|
|
18048
18070
|
after?: boolean;
|
|
18049
18071
|
};
|
|
18050
|
-
as?: {
|
|
18051
|
-
before?: boolean;
|
|
18052
|
-
after?: boolean;
|
|
18053
|
-
};
|
|
18054
|
-
async?: {
|
|
18055
|
-
before?: boolean;
|
|
18056
|
-
after?: boolean;
|
|
18057
|
-
};
|
|
18058
|
-
await?: {
|
|
18059
|
-
before?: boolean;
|
|
18060
|
-
after?: boolean;
|
|
18061
|
-
};
|
|
18062
18072
|
boolean?: {
|
|
18063
18073
|
before?: boolean;
|
|
18064
18074
|
after?: boolean;
|
|
@@ -18151,18 +18161,10 @@ type VueKeywordSpacing = [] | [{
|
|
|
18151
18161
|
before?: boolean;
|
|
18152
18162
|
after?: boolean;
|
|
18153
18163
|
};
|
|
18154
|
-
from?: {
|
|
18155
|
-
before?: boolean;
|
|
18156
|
-
after?: boolean;
|
|
18157
|
-
};
|
|
18158
18164
|
function?: {
|
|
18159
18165
|
before?: boolean;
|
|
18160
18166
|
after?: boolean;
|
|
18161
18167
|
};
|
|
18162
|
-
get?: {
|
|
18163
|
-
before?: boolean;
|
|
18164
|
-
after?: boolean;
|
|
18165
|
-
};
|
|
18166
18168
|
goto?: {
|
|
18167
18169
|
before?: boolean;
|
|
18168
18170
|
after?: boolean;
|
|
@@ -18195,10 +18197,6 @@ type VueKeywordSpacing = [] | [{
|
|
|
18195
18197
|
before?: boolean;
|
|
18196
18198
|
after?: boolean;
|
|
18197
18199
|
};
|
|
18198
|
-
let?: {
|
|
18199
|
-
before?: boolean;
|
|
18200
|
-
after?: boolean;
|
|
18201
|
-
};
|
|
18202
18200
|
long?: {
|
|
18203
18201
|
before?: boolean;
|
|
18204
18202
|
after?: boolean;
|
|
@@ -18215,10 +18213,6 @@ type VueKeywordSpacing = [] | [{
|
|
|
18215
18213
|
before?: boolean;
|
|
18216
18214
|
after?: boolean;
|
|
18217
18215
|
};
|
|
18218
|
-
of?: {
|
|
18219
|
-
before?: boolean;
|
|
18220
|
-
after?: boolean;
|
|
18221
|
-
};
|
|
18222
18216
|
package?: {
|
|
18223
18217
|
before?: boolean;
|
|
18224
18218
|
after?: boolean;
|
|
@@ -18239,10 +18233,6 @@ type VueKeywordSpacing = [] | [{
|
|
|
18239
18233
|
before?: boolean;
|
|
18240
18234
|
after?: boolean;
|
|
18241
18235
|
};
|
|
18242
|
-
set?: {
|
|
18243
|
-
before?: boolean;
|
|
18244
|
-
after?: boolean;
|
|
18245
|
-
};
|
|
18246
18236
|
short?: {
|
|
18247
18237
|
before?: boolean;
|
|
18248
18238
|
after?: boolean;
|
|
@@ -18311,10 +18301,66 @@ type VueKeywordSpacing = [] | [{
|
|
|
18311
18301
|
before?: boolean;
|
|
18312
18302
|
after?: boolean;
|
|
18313
18303
|
};
|
|
18304
|
+
arguments?: {
|
|
18305
|
+
before?: boolean;
|
|
18306
|
+
after?: boolean;
|
|
18307
|
+
};
|
|
18308
|
+
as?: {
|
|
18309
|
+
before?: boolean;
|
|
18310
|
+
after?: boolean;
|
|
18311
|
+
};
|
|
18312
|
+
async?: {
|
|
18313
|
+
before?: boolean;
|
|
18314
|
+
after?: boolean;
|
|
18315
|
+
};
|
|
18316
|
+
await?: {
|
|
18317
|
+
before?: boolean;
|
|
18318
|
+
after?: boolean;
|
|
18319
|
+
};
|
|
18320
|
+
eval?: {
|
|
18321
|
+
before?: boolean;
|
|
18322
|
+
after?: boolean;
|
|
18323
|
+
};
|
|
18324
|
+
from?: {
|
|
18325
|
+
before?: boolean;
|
|
18326
|
+
after?: boolean;
|
|
18327
|
+
};
|
|
18328
|
+
get?: {
|
|
18329
|
+
before?: boolean;
|
|
18330
|
+
after?: boolean;
|
|
18331
|
+
};
|
|
18332
|
+
let?: {
|
|
18333
|
+
before?: boolean;
|
|
18334
|
+
after?: boolean;
|
|
18335
|
+
};
|
|
18336
|
+
of?: {
|
|
18337
|
+
before?: boolean;
|
|
18338
|
+
after?: boolean;
|
|
18339
|
+
};
|
|
18340
|
+
set?: {
|
|
18341
|
+
before?: boolean;
|
|
18342
|
+
after?: boolean;
|
|
18343
|
+
};
|
|
18344
|
+
type?: {
|
|
18345
|
+
before?: boolean;
|
|
18346
|
+
after?: boolean;
|
|
18347
|
+
};
|
|
18348
|
+
using?: {
|
|
18349
|
+
before?: boolean;
|
|
18350
|
+
after?: boolean;
|
|
18351
|
+
};
|
|
18314
18352
|
yield?: {
|
|
18315
18353
|
before?: boolean;
|
|
18316
18354
|
after?: boolean;
|
|
18317
18355
|
};
|
|
18356
|
+
accessor?: {
|
|
18357
|
+
before?: boolean;
|
|
18358
|
+
after?: boolean;
|
|
18359
|
+
};
|
|
18360
|
+
satisfies?: {
|
|
18361
|
+
before?: boolean;
|
|
18362
|
+
after?: boolean;
|
|
18363
|
+
};
|
|
18318
18364
|
};
|
|
18319
18365
|
}]; // ----- vue/match-component-file-name -----
|
|
18320
18366
|
type VueMatchComponentFileName = [] | [{
|
|
@@ -18434,7 +18480,9 @@ type VueMultilineHtmlElementContentNewline = [] | [{
|
|
|
18434
18480
|
ignores?: string[];
|
|
18435
18481
|
allowEmptyLines?: boolean;
|
|
18436
18482
|
}]; // ----- vue/multiline-ternary -----
|
|
18437
|
-
type VueMultilineTernary = [] | [("always" | "always-multiline" | "never")]
|
|
18483
|
+
type VueMultilineTernary = [] | [("always" | "always-multiline" | "never")] | [("always" | "always-multiline" | "never"), {
|
|
18484
|
+
ignoreJSX?: boolean;
|
|
18485
|
+
}]; // ----- vue/mustache-interpolation-spacing -----
|
|
18438
18486
|
type VueMustacheInterpolationSpacing = [] | [("always" | "never")]; // ----- vue/new-line-between-multi-line-property -----
|
|
18439
18487
|
type VueNewLineBetweenMultiLineProperty = [] | [{
|
|
18440
18488
|
minLineOfMultilineProperty?: number;
|
|
@@ -18494,6 +18542,13 @@ type VueNoExtraParens = ([] | ["functions"] | [] | ["all"] | ["all", {
|
|
|
18494
18542
|
enforceForNewInMemberExpressions?: boolean;
|
|
18495
18543
|
enforceForFunctionPrototypeMethods?: boolean;
|
|
18496
18544
|
allowParensAfterCommentPattern?: string;
|
|
18545
|
+
nestedConditionalExpressions?: boolean;
|
|
18546
|
+
allowNodesInSpreadElement?: {
|
|
18547
|
+
ConditionalExpression?: boolean;
|
|
18548
|
+
LogicalExpression?: boolean;
|
|
18549
|
+
AwaitExpression?: boolean;
|
|
18550
|
+
};
|
|
18551
|
+
ignoredNodes?: string[];
|
|
18497
18552
|
}]); // ----- vue/no-implicit-coercion -----
|
|
18498
18553
|
type VueNoImplicitCoercion = [] | [{
|
|
18499
18554
|
boolean?: boolean;
|
|
@@ -18717,14 +18772,41 @@ type VueObjectCurlyNewline = [] | [((("always" | "never") | {
|
|
|
18717
18772
|
minProperties?: number;
|
|
18718
18773
|
consistent?: boolean;
|
|
18719
18774
|
});
|
|
18775
|
+
TSTypeLiteral?: (("always" | "never") | {
|
|
18776
|
+
multiline?: boolean;
|
|
18777
|
+
minProperties?: number;
|
|
18778
|
+
consistent?: boolean;
|
|
18779
|
+
});
|
|
18780
|
+
TSInterfaceBody?: (("always" | "never") | {
|
|
18781
|
+
multiline?: boolean;
|
|
18782
|
+
minProperties?: number;
|
|
18783
|
+
consistent?: boolean;
|
|
18784
|
+
});
|
|
18785
|
+
TSEnumBody?: (("always" | "never") | {
|
|
18786
|
+
multiline?: boolean;
|
|
18787
|
+
minProperties?: number;
|
|
18788
|
+
consistent?: boolean;
|
|
18789
|
+
});
|
|
18720
18790
|
})]; // ----- vue/object-curly-spacing -----
|
|
18721
18791
|
type VueObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
|
|
18722
18792
|
arraysInObjects?: boolean;
|
|
18723
18793
|
objectsInObjects?: boolean;
|
|
18794
|
+
overrides?: {
|
|
18795
|
+
ObjectPattern?: ("always" | "never");
|
|
18796
|
+
ObjectExpression?: ("always" | "never");
|
|
18797
|
+
ImportDeclaration?: ("always" | "never");
|
|
18798
|
+
ImportAttributes?: ("always" | "never");
|
|
18799
|
+
ExportNamedDeclaration?: ("always" | "never");
|
|
18800
|
+
ExportAllDeclaration?: ("always" | "never");
|
|
18801
|
+
TSMappedType?: ("always" | "never");
|
|
18802
|
+
TSTypeLiteral?: ("always" | "never");
|
|
18803
|
+
TSInterfaceBody?: ("always" | "never");
|
|
18804
|
+
TSEnumBody?: ("always" | "never");
|
|
18805
|
+
};
|
|
18806
|
+
emptyObjects?: ("ignore" | "always" | "never");
|
|
18724
18807
|
}]; // ----- vue/object-property-newline -----
|
|
18725
18808
|
type VueObjectPropertyNewline = [] | [{
|
|
18726
18809
|
allowAllPropertiesOnSameLine?: boolean;
|
|
18727
|
-
allowMultiplePropertiesPerLine?: boolean;
|
|
18728
18810
|
}]; // ----- vue/object-shorthand -----
|
|
18729
18811
|
type VueObjectShorthand = ([] | [("always" | "methods" | "properties" | "never" | "consistent" | "consistent-as-needed")] | [] | [("always" | "methods" | "properties")] | [("always" | "methods" | "properties"), {
|
|
18730
18812
|
avoidQuotes?: boolean;
|
|
@@ -18734,7 +18816,7 @@ type VueObjectShorthand = ([] | [("always" | "methods" | "properties" | "never"
|
|
|
18734
18816
|
avoidQuotes?: boolean;
|
|
18735
18817
|
avoidExplicitReturnArrows?: boolean;
|
|
18736
18818
|
}]); // ----- vue/operator-linebreak -----
|
|
18737
|
-
type VueOperatorLinebreak = [] | [("after" | "before" | "none" | null)] | [("after" | "before" | "none" | null), {
|
|
18819
|
+
type VueOperatorLinebreak = [] | [(("after" | "before" | "none") | null)] | [(("after" | "before" | "none") | null), {
|
|
18738
18820
|
overrides?: {
|
|
18739
18821
|
[k: string]: ("after" | "before" | "none" | "ignore") | undefined;
|
|
18740
18822
|
};
|
|
@@ -18822,6 +18904,7 @@ type VueSpaceInParens = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
18822
18904
|
}]; // ----- vue/space-infix-ops -----
|
|
18823
18905
|
type VueSpaceInfixOps = [] | [{
|
|
18824
18906
|
int32Hint?: boolean;
|
|
18907
|
+
ignoreTypes?: boolean;
|
|
18825
18908
|
}]; // ----- vue/space-unary-ops -----
|
|
18826
18909
|
type VueSpaceUnaryOps = [] | [{
|
|
18827
18910
|
words?: boolean;
|
|
@@ -19063,7 +19146,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
19063
19146
|
exceptRange?: boolean;
|
|
19064
19147
|
onlyEquality?: boolean;
|
|
19065
19148
|
}]; // Names of all the configs
|
|
19066
|
-
type ConfigNames = 'config/gitignore' | 'config/ignores' | 'config/javascript/setup' | 'config/javascript/rules' | 'config/eslint-comments/rules' | 'config/node/setup' | 'config/node/rules' | 'config/jsdoc/setup' | 'config/jsdoc/rules' | 'config/imports/rules' | 'config/command/rules' | 'config/perfectionist/setup' | 'config/node/setup' | 'config/node/rules' | 'config/jsdoc/setup' | 'config/jsdoc/rules' | 'config/imports/rules' | 'config/unicorn' | 'config/jsx/setup' | 'config/typescript/setup' | 'config/typescript/parser' | 'config/typescript/type-aware-parser' | 'config/typescript/rules' | 'config/typescript/rules-type-aware' | 'config/typescript/erasable-syntax-only' | 'config/stylistic/rules' | 'config/regexp/rules' | 'config/test/setup' | 'config/test/rules' | 'config/vue/setup' | 'config/vue/rules' | 'config/react/setup' | 'config/react/rules' | '
|
|
19149
|
+
type ConfigNames = 'config/gitignore' | 'config/ignores' | 'config/javascript/setup' | 'config/javascript/rules' | 'config/eslint-comments/rules' | 'config/node/setup' | 'config/node/rules' | 'config/jsdoc/setup' | 'config/jsdoc/rules' | 'config/imports/rules' | 'config/command/rules' | 'config/perfectionist/setup' | 'config/node/setup' | 'config/node/rules' | 'config/jsdoc/setup' | 'config/jsdoc/rules' | 'config/imports/rules' | 'config/unicorn' | 'config/jsx/setup' | 'config/typescript/setup' | 'config/typescript/parser' | 'config/typescript/type-aware-parser' | 'config/typescript/rules' | 'config/typescript/rules-type-aware' | 'config/typescript/erasable-syntax-only' | 'config/stylistic/rules' | 'config/regexp/rules' | 'config/test/setup' | 'config/test/rules' | 'config/vue/setup' | 'config/vue/rules' | 'config/react/setup' | 'config/react/rules' | 'config/react/typescript' | 'config/react/type-aware-rules' | 'config/nextjs/setup' | 'config/nextjs/rules' | 'config/solid/setup' | 'config/solid/rules' | 'config/svelte/setup' | 'config/svelte/rules' | 'config/unocss/rules' | 'config/astro/setup' | 'config/astro/rules' | 'antfu/angular/setup' | 'antfu/angular/rules/ts' | 'antfu/angular/rules/template' | 'config/jsonc/setup' | 'config/jsonc/rules' | 'config/sort/package-json' | 'config/sort/tsconfig-json' | 'config/pnpm/package-json' | 'config/pnpm/pnpm-workspace-yaml' | 'config/pnpm/pnpm-workspace-yaml-sort' | 'config/yaml/setup' | 'config/yaml/rules' | 'config/toml/setup' | 'config/toml/rules' | 'config/markdown/setup' | 'config/markdown/processor' | 'config/markdown/parser' | 'config/markdown/rules' | 'config/markdown/disables/code' | 'config/formatters/setup' | 'config/formatter/css' | 'config/formatter/scss' | 'config/formatter/less' | 'config/formatter/html' | 'config/formatter/xml' | 'config/formatter/svg' | 'config/formatter/markdown' | 'config/formatter/astro' | 'config/formatter/astro/disables' | 'config/formatter/graphql' | 'config/disables/scripts' | 'config/disables/cli' | 'config/disables/bin' | 'config/disables/dts' | 'config/disables/cjs' | 'config/disables/config-files';
|
|
19067
19150
|
//#endregion
|
|
19068
19151
|
//#region src/vender/prettier-types.d.ts
|
|
19069
19152
|
/**
|
|
@@ -19393,7 +19476,7 @@ interface OptionsStylistic {
|
|
|
19393
19476
|
interface OptionsStylistic {
|
|
19394
19477
|
stylistic?: boolean | StylisticConfig;
|
|
19395
19478
|
}
|
|
19396
|
-
interface StylisticConfig extends Pick<StylisticCustomizeOptions, "indent" | "quotes" | "jsx" | "semi" | "experimental"> {}
|
|
19479
|
+
interface StylisticConfig extends Pick<StylisticCustomizeOptions, "indent" | "quotes" | "jsx" | "semi" | "braceStyle" | "experimental"> {}
|
|
19397
19480
|
interface OptionsOverrides {
|
|
19398
19481
|
overrides?: TypedFlatConfigItem["rules"];
|
|
19399
19482
|
}
|
|
@@ -19556,6 +19639,12 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
|
|
|
19556
19639
|
*/
|
|
19557
19640
|
unicorn?: boolean | OptionsUnicorn;
|
|
19558
19641
|
/**
|
|
19642
|
+
* Options for eslint-plugin-perfectionist.
|
|
19643
|
+
*
|
|
19644
|
+
* @default true
|
|
19645
|
+
*/
|
|
19646
|
+
perfectionist?: boolean | OptionsOverrides;
|
|
19647
|
+
/**
|
|
19559
19648
|
* Options for eslint-plugin-import-lite.
|
|
19560
19649
|
*
|
|
19561
19650
|
* @default true
|
|
@@ -19725,10 +19814,6 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
|
|
|
19725
19814
|
//#region src/factory.d.ts
|
|
19726
19815
|
declare const defaultPluginRenaming: {
|
|
19727
19816
|
"@eslint-react": string;
|
|
19728
|
-
"@eslint-react/dom": string;
|
|
19729
|
-
"@eslint-react/naming-convention": string;
|
|
19730
|
-
"@eslint-react/rsc": string;
|
|
19731
|
-
"@eslint-react/web-api": string;
|
|
19732
19817
|
"@next/next": string;
|
|
19733
19818
|
"@stylistic": string;
|
|
19734
19819
|
"@typescript-eslint": string;
|
|
@@ -19812,7 +19897,7 @@ declare function node(): Promise<TypedFlatConfigItem[]>;
|
|
|
19812
19897
|
*
|
|
19813
19898
|
* @see https://github.com/azat-io/eslint-plugin-perfectionist
|
|
19814
19899
|
*/
|
|
19815
|
-
declare function perfectionist(): Promise<TypedFlatConfigItem[]>;
|
|
19900
|
+
declare function perfectionist(options: OptionsOverrides): Promise<TypedFlatConfigItem[]>;
|
|
19816
19901
|
//#endregion
|
|
19817
19902
|
//#region src/configs/pnpm.d.ts
|
|
19818
19903
|
declare function pnpm(options: OptionsPnpm): Promise<TypedFlatConfigItem[]>;
|
package/dist/index.mjs
CHANGED
|
@@ -454,6 +454,7 @@ async function e18e(options = {}) {
|
|
|
454
454
|
//#endregion
|
|
455
455
|
//#region src/configs/stylistic.ts
|
|
456
456
|
const StylisticConfigDefaults = {
|
|
457
|
+
braceStyle: "stroustrup",
|
|
457
458
|
experimental: false,
|
|
458
459
|
indent: 2,
|
|
459
460
|
jsx: true,
|
|
@@ -461,12 +462,13 @@ const StylisticConfigDefaults = {
|
|
|
461
462
|
semi: false
|
|
462
463
|
};
|
|
463
464
|
async function stylistic(options = {}) {
|
|
464
|
-
const { experimental, indent, jsx, overrides = {}, lessOpinionated = false, quotes, semi } = {
|
|
465
|
+
const { braceStyle, experimental, indent, jsx, overrides = {}, lessOpinionated = false, quotes, semi } = {
|
|
465
466
|
...StylisticConfigDefaults,
|
|
466
467
|
...options
|
|
467
468
|
};
|
|
468
469
|
const pluginStylistic = await interopDefault(import("@stylistic/eslint-plugin"));
|
|
469
470
|
const config = pluginStylistic.configs.customize({
|
|
471
|
+
braceStyle,
|
|
470
472
|
experimental,
|
|
471
473
|
indent,
|
|
472
474
|
jsx,
|
|
@@ -1063,21 +1065,6 @@ async function markdown(options = {}) {
|
|
|
1063
1065
|
...overridesMarkdown
|
|
1064
1066
|
}
|
|
1065
1067
|
},
|
|
1066
|
-
{
|
|
1067
|
-
files,
|
|
1068
|
-
name: "config/markdown/disables/markdown",
|
|
1069
|
-
rules: {
|
|
1070
|
-
"command/command": "off",
|
|
1071
|
-
"no-irregular-whitespace": "off",
|
|
1072
|
-
"perfectionist/sort-exports": "off",
|
|
1073
|
-
"perfectionist/sort-imports": "off",
|
|
1074
|
-
"regexp/no-legacy-features": "off",
|
|
1075
|
-
"regexp/no-missing-g-flag": "off",
|
|
1076
|
-
"regexp/no-useless-dollar-replacements": "off",
|
|
1077
|
-
"regexp/no-useless-flag": "off",
|
|
1078
|
-
"style/indent": "off"
|
|
1079
|
-
}
|
|
1080
|
-
},
|
|
1081
1068
|
{
|
|
1082
1069
|
files: [GLOB_MARKDOWN_CODE, ...componentExts.map((ext) => `${GLOB_MARKDOWN}/**/*.${ext}`)],
|
|
1083
1070
|
languageOptions: { parserOptions: { ecmaFeatures: { impliedStrict: true } } },
|
|
@@ -1173,7 +1160,8 @@ async function node() {
|
|
|
1173
1160
|
*
|
|
1174
1161
|
* @see https://github.com/azat-io/eslint-plugin-perfectionist
|
|
1175
1162
|
*/
|
|
1176
|
-
async function perfectionist() {
|
|
1163
|
+
async function perfectionist(options) {
|
|
1164
|
+
const { overrides = {} } = options;
|
|
1177
1165
|
return [{
|
|
1178
1166
|
name: "config/perfectionist/setup",
|
|
1179
1167
|
plugins: { perfectionist: pluginPerfectionist },
|
|
@@ -1222,7 +1210,8 @@ async function perfectionist() {
|
|
|
1222
1210
|
order: "asc",
|
|
1223
1211
|
type: "natural"
|
|
1224
1212
|
}]
|
|
1225
|
-
}
|
|
1213
|
+
},
|
|
1214
|
+
...overrides
|
|
1226
1215
|
}];
|
|
1227
1216
|
}
|
|
1228
1217
|
//#endregion
|
|
@@ -1426,11 +1415,10 @@ async function react(options = {}) {
|
|
|
1426
1415
|
},
|
|
1427
1416
|
{
|
|
1428
1417
|
files: filesTypeAware,
|
|
1429
|
-
name: "
|
|
1418
|
+
name: "config/react/typescript",
|
|
1430
1419
|
rules: {
|
|
1431
|
-
"react-
|
|
1432
|
-
"react-
|
|
1433
|
-
"react/jsx-no-duplicate-props": "off"
|
|
1420
|
+
"react/dom-no-string-style-prop": "off",
|
|
1421
|
+
"react/dom-no-unknown-property": "off"
|
|
1434
1422
|
}
|
|
1435
1423
|
},
|
|
1436
1424
|
...isTypeAware ? [{
|
|
@@ -1775,26 +1763,10 @@ async function svelte(options = {}) {
|
|
|
1775
1763
|
vars: "all",
|
|
1776
1764
|
varsIgnorePattern: "^(\\$\\$Props$|\\$\\$Events$|\\$\\$Slots$)"
|
|
1777
1765
|
}],
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
"svelte/no-dupe-style-properties": "error",
|
|
1783
|
-
"svelte/no-dupe-use-directives": "error",
|
|
1784
|
-
"svelte/no-export-load-in-svelte-module-in-kit-pages": "error",
|
|
1785
|
-
"svelte/no-inner-declarations": "error",
|
|
1786
|
-
"svelte/no-not-function-handler": "error",
|
|
1787
|
-
"svelte/no-object-in-text-mustaches": "error",
|
|
1788
|
-
"svelte/no-reactive-functions": "error",
|
|
1789
|
-
"svelte/no-reactive-literals": "error",
|
|
1790
|
-
"svelte/no-shorthand-style-property-overrides": "error",
|
|
1791
|
-
"svelte/no-unknown-style-directive-property": "error",
|
|
1792
|
-
"svelte/no-unused-svelte-ignore": "error",
|
|
1793
|
-
"svelte/no-useless-mustaches": "error",
|
|
1794
|
-
"svelte/require-store-callbacks-use-set-param": "error",
|
|
1795
|
-
"svelte/system": "error",
|
|
1796
|
-
"svelte/valid-compile": "error",
|
|
1797
|
-
"svelte/valid-each-key": "error",
|
|
1766
|
+
...pluginSvelte.configs.recommended.map((config) => config.rules).reduce((acc, rules) => ({
|
|
1767
|
+
...acc,
|
|
1768
|
+
...rules
|
|
1769
|
+
}), {}),
|
|
1798
1770
|
"unused-imports/no-unused-vars": ["error", {
|
|
1799
1771
|
args: "after-used",
|
|
1800
1772
|
argsIgnorePattern: "^_",
|
|
@@ -2131,7 +2103,7 @@ async function vue(options = {}) {
|
|
|
2131
2103
|
...a11y ? ["eslint-plugin-vuejs-accessibility"] : []
|
|
2132
2104
|
]);
|
|
2133
2105
|
const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
|
|
2134
|
-
const { indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic;
|
|
2106
|
+
const { braceStyle = "stroustrup", indent = 2 } = typeof stylistic === "boolean" ? {} : stylistic;
|
|
2135
2107
|
const [pluginVue, parserVue, processorVueBlocks, pluginVueA11y] = await Promise.all([
|
|
2136
2108
|
interopDefault(import("eslint-plugin-vue")),
|
|
2137
2109
|
interopDefault(import("vue-eslint-parser")),
|
|
@@ -2269,7 +2241,7 @@ async function vue(options = {}) {
|
|
|
2269
2241
|
}],
|
|
2270
2242
|
"vue/brace-style": [
|
|
2271
2243
|
"error",
|
|
2272
|
-
|
|
2244
|
+
braceStyle,
|
|
2273
2245
|
{ allowSingleLine: true }
|
|
2274
2246
|
],
|
|
2275
2247
|
"vue/comma-dangle": ["error", "always-multiline"],
|
|
@@ -2389,10 +2361,6 @@ const VuePackages = [
|
|
|
2389
2361
|
];
|
|
2390
2362
|
const defaultPluginRenaming = {
|
|
2391
2363
|
"@eslint-react": "react",
|
|
2392
|
-
"@eslint-react/dom": "react-dom",
|
|
2393
|
-
"@eslint-react/naming-convention": "react-naming-convention",
|
|
2394
|
-
"@eslint-react/rsc": "react-rsc",
|
|
2395
|
-
"@eslint-react/web-api": "react-web-api",
|
|
2396
2364
|
"@next/next": "next",
|
|
2397
2365
|
"@stylistic": "style",
|
|
2398
2366
|
"@typescript-eslint": "ts",
|
|
@@ -2411,7 +2379,7 @@ const defaultPluginRenaming = {
|
|
|
2411
2379
|
* The merged ESLint configurations.
|
|
2412
2380
|
*/
|
|
2413
2381
|
function eslintFlatConfig(options = {}, ...userConfigs) {
|
|
2414
|
-
const { angular: enableAngular = false, astro: enableAstro = false, autoRenamePlugins = true, componentExts = [], e18e: enableE18e = false, gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, jsdoc: enableJsdoc = true, jsx: enableJsx = true, nextjs: enableNextjs = false, node: enableNode = true, pnpm: enableCatalogs = !!findUpSync("pnpm-workspace.yaml"), react: enableReact = false, regexp: enableRegexp = true, svelte: enableSvelte = false, solid: enableSolid = false, type: appType = "app", typescript: enableTypeScript = isPackageExists("typescript") || isPackageExists("@typescript/native-preview"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, tailwindcss: enableTailwindcss = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
|
|
2382
|
+
const { angular: enableAngular = false, astro: enableAstro = false, autoRenamePlugins = true, componentExts = [], e18e: enableE18e = false, gitignore: enableGitignore = true, ignores: userIgnores = [], imports: enableImports = true, jsdoc: enableJsdoc = true, jsx: enableJsx = true, nextjs: enableNextjs = false, node: enableNode = true, perfectionist: enablePerfectionist = true, pnpm: enableCatalogs = !!findUpSync("pnpm-workspace.yaml"), react: enableReact = false, regexp: enableRegexp = true, svelte: enableSvelte = false, solid: enableSolid = false, type: appType = "app", typescript: enableTypeScript = isPackageExists("typescript") || isPackageExists("@typescript/native-preview"), unicorn: enableUnicorn = true, unocss: enableUnoCSS = false, tailwindcss: enableTailwindcss = false, vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
|
|
2415
2383
|
let isInEditor = options.isInEditor;
|
|
2416
2384
|
if (isInEditor == null) {
|
|
2417
2385
|
isInEditor = isInEditorEnv();
|
|
@@ -2433,7 +2401,8 @@ function eslintFlatConfig(options = {}, ...userConfigs) {
|
|
|
2433
2401
|
configs.push(ignores(userIgnores, !enableTypeScript), javascript({
|
|
2434
2402
|
isInEditor,
|
|
2435
2403
|
overrides: getOverrides(options, "javascript")
|
|
2436
|
-
}), comments(), node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), command()
|
|
2404
|
+
}), comments(), node(), jsdoc({ stylistic: stylisticOptions }), imports({ stylistic: stylisticOptions }), command());
|
|
2405
|
+
if (enablePerfectionist) configs.push(perfectionist({ overrides: getOverrides(options, "perfectionist") }));
|
|
2437
2406
|
if (enableNode) configs.push(node());
|
|
2438
2407
|
if (enableJsdoc) configs.push(jsdoc({ stylistic: stylisticOptions }));
|
|
2439
2408
|
if (enableImports) configs.push(imports({
|
|
@@ -2563,6 +2532,7 @@ const CONFIG_PRESET_FULL_ON = {
|
|
|
2563
2532
|
markdown: true,
|
|
2564
2533
|
nextjs: true,
|
|
2565
2534
|
node: true,
|
|
2535
|
+
perfectionist: true,
|
|
2566
2536
|
pnpm: true,
|
|
2567
2537
|
react: true,
|
|
2568
2538
|
regexp: true,
|
|
@@ -2592,6 +2562,7 @@ const CONFIG_PRESET_FULL_OFF = {
|
|
|
2592
2562
|
markdown: false,
|
|
2593
2563
|
nextjs: false,
|
|
2594
2564
|
node: false,
|
|
2565
|
+
perfectionist: false,
|
|
2595
2566
|
pnpm: false,
|
|
2596
2567
|
react: false,
|
|
2597
2568
|
regexp: false,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pengzhanbo/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.0",
|
|
5
5
|
"author": "pengzhanbo <q942450674@outlook.com> (https://github/pengzhanbo/)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/pengzhanbo/configs#readme",
|
|
@@ -22,28 +22,28 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@angular-eslint/eslint-plugin": "^21.
|
|
26
|
-
"@angular-eslint/eslint-plugin-template": "^21.
|
|
27
|
-
"@angular-eslint/template-parser": "^21.
|
|
28
|
-
"@eslint-react/eslint-plugin": "^5.
|
|
29
|
-
"@next/eslint-plugin-next": "^16.2.
|
|
25
|
+
"@angular-eslint/eslint-plugin": "^21.4.0",
|
|
26
|
+
"@angular-eslint/eslint-plugin-template": "^21.4.0",
|
|
27
|
+
"@angular-eslint/template-parser": "^21.4.0",
|
|
28
|
+
"@eslint-react/eslint-plugin": "^5.8.10",
|
|
29
|
+
"@next/eslint-plugin-next": "^16.2.7",
|
|
30
30
|
"@prettier/plugin-xml": "^3.4.2",
|
|
31
|
-
"@unocss/eslint-plugin": "^66.
|
|
31
|
+
"@unocss/eslint-plugin": "^66.7.0",
|
|
32
32
|
"astro-eslint-parser": "^1.4.0",
|
|
33
|
-
"eslint": "^10.
|
|
33
|
+
"eslint": "^10.4.1",
|
|
34
34
|
"eslint-plugin-astro": "^1.7.0",
|
|
35
35
|
"eslint-plugin-format": "^2.0.1",
|
|
36
36
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
37
37
|
"eslint-plugin-solid": "^0.14.5",
|
|
38
|
-
"eslint-plugin-svelte": "^3.
|
|
38
|
+
"eslint-plugin-svelte": "^3.19.0",
|
|
39
39
|
"eslint-plugin-tailwindcss": "^3.18.3",
|
|
40
40
|
"eslint-plugin-vue": "^10.9.1",
|
|
41
41
|
"eslint-plugin-vuejs-accessibility": "^2.4.1",
|
|
42
42
|
"eslint-processor-vue-blocks": "^2.0.0",
|
|
43
43
|
"prettier-plugin-astro": "^0.14.1",
|
|
44
44
|
"prettier-plugin-slidev": "^1.0.5",
|
|
45
|
-
"svelte-eslint-parser": "^1.
|
|
46
|
-
"vue-eslint-parser": "^10.4.
|
|
45
|
+
"svelte-eslint-parser": "^1.7.1",
|
|
46
|
+
"vue-eslint-parser": "^10.4.1"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"@angular-eslint/eslint-plugin": {
|
|
@@ -109,55 +109,55 @@
|
|
|
109
109
|
},
|
|
110
110
|
"dependencies": {
|
|
111
111
|
"@antfu/install-pkg": "^1.1.0",
|
|
112
|
-
"@e18e/eslint-plugin": "^0.
|
|
113
|
-
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.
|
|
114
|
-
"@eslint/markdown": "^8.0.
|
|
112
|
+
"@e18e/eslint-plugin": "^0.5.0",
|
|
113
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
|
|
114
|
+
"@eslint/markdown": "^8.0.2",
|
|
115
115
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
116
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
117
|
-
"@typescript-eslint/parser": "^8.
|
|
118
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
116
|
+
"@typescript-eslint/eslint-plugin": "^8.60.1",
|
|
117
|
+
"@typescript-eslint/parser": "^8.60.1",
|
|
118
|
+
"@vitest/eslint-plugin": "^1.6.19",
|
|
119
119
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
120
120
|
"eslint-flat-config-utils": "^3.2.0",
|
|
121
121
|
"eslint-merge-processors": "^2.0.0",
|
|
122
|
-
"eslint-plugin-antfu": "^3.2.
|
|
122
|
+
"eslint-plugin-antfu": "^3.2.3",
|
|
123
123
|
"eslint-plugin-command": "^3.5.2",
|
|
124
124
|
"eslint-plugin-erasable-syntax-only": "^0.4.1",
|
|
125
125
|
"eslint-plugin-import-lite": "^0.6.0",
|
|
126
|
-
"eslint-plugin-jsdoc": "^
|
|
127
|
-
"eslint-plugin-jsonc": "^3.
|
|
126
|
+
"eslint-plugin-jsdoc": "^63.0.1",
|
|
127
|
+
"eslint-plugin-jsonc": "^3.2.0",
|
|
128
128
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
129
129
|
"eslint-plugin-n": "^18.0.1",
|
|
130
130
|
"eslint-plugin-no-only-tests": "^3.4.0",
|
|
131
131
|
"eslint-plugin-perfectionist": "^5.9.0",
|
|
132
|
-
"eslint-plugin-pnpm": "^1.6.
|
|
132
|
+
"eslint-plugin-pnpm": "^1.6.1",
|
|
133
133
|
"eslint-plugin-regexp": "^3.1.0",
|
|
134
|
-
"eslint-plugin-toml": "^1.
|
|
134
|
+
"eslint-plugin-toml": "^1.4.0",
|
|
135
135
|
"eslint-plugin-unicorn": "^64.0.0",
|
|
136
136
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
137
|
-
"eslint-plugin-yml": "^3.
|
|
137
|
+
"eslint-plugin-yml": "^3.4.0",
|
|
138
138
|
"globals": "^17.6.0",
|
|
139
|
-
"local-pkg": "^1.1
|
|
139
|
+
"local-pkg": "^1.2.1",
|
|
140
140
|
"parse-gitignore": "^2.0.0",
|
|
141
141
|
"toml-eslint-parser": "^1.0.3",
|
|
142
142
|
"yaml-eslint-parser": "^2.0.0"
|
|
143
143
|
},
|
|
144
144
|
"devDependencies": {
|
|
145
|
-
"@angular-eslint/eslint-plugin": "^21.
|
|
146
|
-
"@angular-eslint/eslint-plugin-template": "^21.
|
|
147
|
-
"@angular-eslint/template-parser": "^21.
|
|
148
|
-
"@angular/core": "^21.2.
|
|
149
|
-
"@eslint-react/eslint-plugin": "^5.
|
|
150
|
-
"@eslint/config-inspector": "^
|
|
151
|
-
"@next/eslint-plugin-next": "^16.2.
|
|
145
|
+
"@angular-eslint/eslint-plugin": "^21.4.0",
|
|
146
|
+
"@angular-eslint/eslint-plugin-template": "^21.4.0",
|
|
147
|
+
"@angular-eslint/template-parser": "^21.4.0",
|
|
148
|
+
"@angular/core": "^21.2.15",
|
|
149
|
+
"@eslint-react/eslint-plugin": "^5.8.10",
|
|
150
|
+
"@eslint/config-inspector": "^3.0.4",
|
|
151
|
+
"@next/eslint-plugin-next": "^16.2.7",
|
|
152
152
|
"@prettier/plugin-xml": "^3.4.2",
|
|
153
|
-
"@unocss/eslint-plugin": "^66.
|
|
153
|
+
"@unocss/eslint-plugin": "^66.7.0",
|
|
154
154
|
"astro-eslint-parser": "^1.4.0",
|
|
155
|
-
"eslint": "^10.
|
|
155
|
+
"eslint": "^10.4.1",
|
|
156
156
|
"eslint-plugin-astro": "^1.7.0",
|
|
157
157
|
"eslint-plugin-format": "^2.0.1",
|
|
158
158
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
159
159
|
"eslint-plugin-solid": "^0.14.5",
|
|
160
|
-
"eslint-plugin-svelte": "^3.
|
|
160
|
+
"eslint-plugin-svelte": "^3.19.0",
|
|
161
161
|
"eslint-plugin-tailwindcss": "^3.18.3",
|
|
162
162
|
"eslint-plugin-vue": "^10.9.1",
|
|
163
163
|
"eslint-plugin-vuejs-accessibility": "^2.5.0",
|
|
@@ -166,9 +166,9 @@
|
|
|
166
166
|
"find-up-simple": "^1.0.1",
|
|
167
167
|
"prettier-plugin-astro": "^0.14.1",
|
|
168
168
|
"prettier-plugin-slidev": "^1.0.5",
|
|
169
|
-
"svelte": "^5.
|
|
170
|
-
"svelte-eslint-parser": "^1.
|
|
171
|
-
"vue-eslint-parser": "^10.4.
|
|
169
|
+
"svelte": "^5.56.1",
|
|
170
|
+
"svelte-eslint-parser": "^1.7.1",
|
|
171
|
+
"vue-eslint-parser": "^10.4.1"
|
|
172
172
|
},
|
|
173
173
|
"inlinedDependencies": {
|
|
174
174
|
"find-up-simple": "1.0.1"
|