@ntnyq/eslint-config 5.6.0 → 5.7.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.ts +127 -3
- package/dist/index.js +201 -180
- package/package.json +26 -26
package/dist/index.d.ts
CHANGED
|
@@ -694,6 +694,11 @@ type ConfigJavaScriptOptions = OptionsOverrides & {
|
|
|
694
694
|
* @default false
|
|
695
695
|
*/
|
|
696
696
|
strict?: boolean;
|
|
697
|
+
/**
|
|
698
|
+
* The ECMAScript version of the code being linted
|
|
699
|
+
* @default 'latest'
|
|
700
|
+
*/
|
|
701
|
+
ecmaVersion?: OptionsShareable['ecmaVersion'];
|
|
697
702
|
};
|
|
698
703
|
/**
|
|
699
704
|
* Config for JavaScript
|
|
@@ -710,7 +715,7 @@ declare const configJSX: () => TypedConfigItem[];
|
|
|
710
715
|
/**
|
|
711
716
|
* Options type of {@link configTypeScript}
|
|
712
717
|
*/
|
|
713
|
-
type ConfigTypeScriptOptions = OptionsFiles & OptionsOverrides & Pick<OptionsShareable, 'extraFileExtensions'> & {
|
|
718
|
+
type ConfigTypeScriptOptions = OptionsFiles & OptionsOverrides & Pick<OptionsShareable, 'extraFileExtensions' | 'ecmaVersion'> & {
|
|
714
719
|
/**
|
|
715
720
|
* Glob patterns for files that should be type aware.
|
|
716
721
|
* @default ['**\/*.{ts,tsx}']
|
|
@@ -1084,6 +1089,11 @@ interface RuleOptions {
|
|
|
1084
1089
|
* @see https://html-eslint.org/docs/rules/no-restricted-attrs
|
|
1085
1090
|
*/
|
|
1086
1091
|
'@html-eslint/no-restricted-attrs'?: Linter.RuleEntry<HtmlEslintNoRestrictedAttrs>;
|
|
1092
|
+
/**
|
|
1093
|
+
* Disallow specified tags
|
|
1094
|
+
* @see https://html-eslint.org/docs/rules/no-restricted-tags
|
|
1095
|
+
*/
|
|
1096
|
+
'@html-eslint/no-restricted-tags'?: Linter.RuleEntry<HtmlEslintNoRestrictedTags>;
|
|
1087
1097
|
/**
|
|
1088
1098
|
* Enforce to omit type attributes for style sheets and scripts
|
|
1089
1099
|
* @see https://html-eslint.org/docs/rules/no-script-style-type
|
|
@@ -1626,7 +1636,7 @@ interface RuleOptions {
|
|
|
1626
1636
|
* Disallow member access on a value with type `any`
|
|
1627
1637
|
* @see https://typescript-eslint.io/rules/no-unsafe-member-access
|
|
1628
1638
|
*/
|
|
1629
|
-
'@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<
|
|
1639
|
+
'@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<TypescriptEslintNoUnsafeMemberAccess>;
|
|
1630
1640
|
/**
|
|
1631
1641
|
* Disallow returning a value with type `any` from a function
|
|
1632
1642
|
* @see https://typescript-eslint.io/rules/no-unsafe-return
|
|
@@ -3039,6 +3049,11 @@ interface RuleOptions {
|
|
|
3039
3049
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
|
|
3040
3050
|
*/
|
|
3041
3051
|
'jsdoc/empty-tags'?: Linter.RuleEntry<JsdocEmptyTags>;
|
|
3052
|
+
/**
|
|
3053
|
+
* Reports use of JSDoc tags in non-tag positions (in the default "typescript" mode).
|
|
3054
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/escape-inline-tags.md#repos-sticky-header
|
|
3055
|
+
*/
|
|
3056
|
+
'jsdoc/escape-inline-tags'?: Linter.RuleEntry<JsdocEscapeInlineTags>;
|
|
3042
3057
|
/**
|
|
3043
3058
|
* Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors).
|
|
3044
3059
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
|
|
@@ -3119,6 +3134,11 @@ interface RuleOptions {
|
|
|
3119
3134
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
|
|
3120
3135
|
*/
|
|
3121
3136
|
'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>;
|
|
3137
|
+
/**
|
|
3138
|
+
* Prefer `@import` tags to inline `import()` statements.
|
|
3139
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/prefer-import-tag.md#repos-sticky-header
|
|
3140
|
+
*/
|
|
3141
|
+
'jsdoc/prefer-import-tag'?: Linter.RuleEntry<JsdocPreferImportTag>;
|
|
3122
3142
|
/**
|
|
3123
3143
|
* Reports use of `any` or `*` type
|
|
3124
3144
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header
|
|
@@ -3244,6 +3264,11 @@ interface RuleOptions {
|
|
|
3244
3264
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
|
|
3245
3265
|
*/
|
|
3246
3266
|
'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>;
|
|
3267
|
+
/**
|
|
3268
|
+
* Requires a description for `@template` tags
|
|
3269
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header
|
|
3270
|
+
*/
|
|
3271
|
+
'jsdoc/require-template-description'?: Linter.RuleEntry<[]>;
|
|
3247
3272
|
/**
|
|
3248
3273
|
* Requires that throw statements are documented with `@throws` tags.
|
|
3249
3274
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
|
|
@@ -3294,6 +3319,26 @@ interface RuleOptions {
|
|
|
3294
3319
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
|
|
3295
3320
|
*/
|
|
3296
3321
|
'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>;
|
|
3322
|
+
/**
|
|
3323
|
+
* Prefers either function properties or method signatures
|
|
3324
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-method-signature-style.md#repos-sticky-header
|
|
3325
|
+
*/
|
|
3326
|
+
'jsdoc/ts-method-signature-style'?: Linter.RuleEntry<JsdocTsMethodSignatureStyle>;
|
|
3327
|
+
/**
|
|
3328
|
+
* Warns against use of the empty object type
|
|
3329
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header
|
|
3330
|
+
*/
|
|
3331
|
+
'jsdoc/ts-no-empty-object-type'?: Linter.RuleEntry<[]>;
|
|
3332
|
+
/**
|
|
3333
|
+
* Catches unnecessary template expressions such as string expressions within a template literal.
|
|
3334
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-unnecessary-template-expression.md#repos-sticky-header
|
|
3335
|
+
*/
|
|
3336
|
+
'jsdoc/ts-no-unnecessary-template-expression'?: Linter.RuleEntry<JsdocTsNoUnnecessaryTemplateExpression>;
|
|
3337
|
+
/**
|
|
3338
|
+
* Prefers function types over call signatures when there are no other properties.
|
|
3339
|
+
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-prefer-function-type.md#repos-sticky-header
|
|
3340
|
+
*/
|
|
3341
|
+
'jsdoc/ts-prefer-function-type'?: Linter.RuleEntry<JsdocTsPreferFunctionType>;
|
|
3297
3342
|
/**
|
|
3298
3343
|
* Formats JSDoc type values.
|
|
3299
3344
|
* @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
|
|
@@ -5021,6 +5066,11 @@ interface RuleOptions {
|
|
|
5021
5066
|
* @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-unused-catalog-item.test.ts
|
|
5022
5067
|
*/
|
|
5023
5068
|
'pnpm/yaml-no-unused-catalog-item'?: Linter.RuleEntry<[]>;
|
|
5069
|
+
/**
|
|
5070
|
+
* Ensure all package patterns in `pnpm-workspace.yaml` match at least one directory
|
|
5071
|
+
* @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-valid-packages.test.ts
|
|
5072
|
+
*/
|
|
5073
|
+
'pnpm/yaml-valid-packages'?: Linter.RuleEntry<[]>;
|
|
5024
5074
|
/**
|
|
5025
5075
|
* Require using arrow functions for callbacks
|
|
5026
5076
|
* @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
|
|
@@ -6925,7 +6975,7 @@ interface RuleOptions {
|
|
|
6925
6975
|
*/
|
|
6926
6976
|
'vars-on-top'?: Linter.RuleEntry<[]>;
|
|
6927
6977
|
/**
|
|
6928
|
-
* require
|
|
6978
|
+
* require test file pattern
|
|
6929
6979
|
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
|
|
6930
6980
|
*/
|
|
6931
6981
|
'vitest/consistent-test-filename'?: Linter.RuleEntry<VitestConsistentTestFilename>;
|
|
@@ -7105,6 +7155,11 @@ interface RuleOptions {
|
|
|
7105
7155
|
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
|
|
7106
7156
|
*/
|
|
7107
7157
|
'vitest/padding-around-test-blocks'?: Linter.RuleEntry<[]>;
|
|
7158
|
+
/**
|
|
7159
|
+
* Prefer `toHaveBeenCalledExactlyOnceWith` over `toHaveBeenCalledOnce` and `toHaveBeenCalledWith`
|
|
7160
|
+
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-exactly-once-with.md
|
|
7161
|
+
*/
|
|
7162
|
+
'vitest/prefer-called-exactly-once-with'?: Linter.RuleEntry<[]>;
|
|
7108
7163
|
/**
|
|
7109
7164
|
* enforce using `toBeCalledOnce()` or `toHaveBeenCalledOnce()`
|
|
7110
7165
|
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-once.md
|
|
@@ -7165,6 +7220,11 @@ interface RuleOptions {
|
|
|
7165
7220
|
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
|
|
7166
7221
|
*/
|
|
7167
7222
|
'vitest/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
|
|
7223
|
+
/**
|
|
7224
|
+
* prefer dynamic import in mock
|
|
7225
|
+
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-import-in-mock.md
|
|
7226
|
+
*/
|
|
7227
|
+
'vitest/prefer-import-in-mock'?: Linter.RuleEntry<[]>;
|
|
7168
7228
|
/**
|
|
7169
7229
|
* enforce importing Vitest globals
|
|
7170
7230
|
* @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md
|
|
@@ -8761,6 +8821,11 @@ type HtmlEslintNoRestrictedAttrs = {
|
|
|
8761
8821
|
attrPatterns: string[];
|
|
8762
8822
|
message?: string;
|
|
8763
8823
|
}[];
|
|
8824
|
+
// ----- @html-eslint/no-restricted-tags -----
|
|
8825
|
+
type HtmlEslintNoRestrictedTags = {
|
|
8826
|
+
tagPatterns: string[];
|
|
8827
|
+
message?: string;
|
|
8828
|
+
}[];
|
|
8764
8829
|
// ----- @html-eslint/quotes -----
|
|
8765
8830
|
type HtmlEslintQuotes = [] | [("single" | "double")] | [("single" | "double"), {
|
|
8766
8831
|
enforceTemplatedAttrValue?: boolean;
|
|
@@ -9495,6 +9560,10 @@ type TypescriptEslintNoUnnecessaryTypeAssertion = [] | [{
|
|
|
9495
9560
|
checkLiteralConstAssertions?: boolean;
|
|
9496
9561
|
typesToIgnore?: string[];
|
|
9497
9562
|
}];
|
|
9563
|
+
// ----- @typescript-eslint/no-unsafe-member-access -----
|
|
9564
|
+
type TypescriptEslintNoUnsafeMemberAccess = [] | [{
|
|
9565
|
+
allowOptionalChaining?: boolean;
|
|
9566
|
+
}];
|
|
9498
9567
|
// ----- @typescript-eslint/no-unused-expressions -----
|
|
9499
9568
|
type TypescriptEslintNoUnusedExpressions = [] | [{
|
|
9500
9569
|
allowShortCircuit?: boolean;
|
|
@@ -9512,6 +9581,7 @@ type TypescriptEslintNoUnusedVars = [] | [(("all" | "local") | {
|
|
|
9512
9581
|
destructuredArrayIgnorePattern?: string;
|
|
9513
9582
|
ignoreClassWithStaticInitBlock?: boolean;
|
|
9514
9583
|
ignoreRestSiblings?: boolean;
|
|
9584
|
+
ignoreUsingDeclarations?: boolean;
|
|
9515
9585
|
reportUsedIgnorePattern?: boolean;
|
|
9516
9586
|
vars?: ("all" | "local");
|
|
9517
9587
|
varsIgnorePattern?: string;
|
|
@@ -10488,6 +10558,7 @@ type JsdocCheckPropertyNames = [] | [{
|
|
|
10488
10558
|
type JsdocCheckTagNames = [] | [{
|
|
10489
10559
|
definedTags?: string[];
|
|
10490
10560
|
enableFixer?: boolean;
|
|
10561
|
+
inlineTags?: string[];
|
|
10491
10562
|
jsxTags?: boolean;
|
|
10492
10563
|
typed?: boolean;
|
|
10493
10564
|
}];
|
|
@@ -10530,6 +10601,12 @@ type JsdocConvertToJsdocComments = [] | [{
|
|
|
10530
10601
|
type JsdocEmptyTags = [] | [{
|
|
10531
10602
|
tags?: string[];
|
|
10532
10603
|
}];
|
|
10604
|
+
// ----- jsdoc/escape-inline-tags -----
|
|
10605
|
+
type JsdocEscapeInlineTags = [] | [{
|
|
10606
|
+
allowedInlineTags?: string[];
|
|
10607
|
+
enableFixer?: boolean;
|
|
10608
|
+
fixType?: ("backticks" | "backslash");
|
|
10609
|
+
}];
|
|
10533
10610
|
// ----- jsdoc/implements-on-classes -----
|
|
10534
10611
|
type JsdocImplementsOnClasses = [] | [{
|
|
10535
10612
|
contexts?: (string | {
|
|
@@ -10646,10 +10723,17 @@ type JsdocNoTypes = [] | [{
|
|
|
10646
10723
|
}];
|
|
10647
10724
|
// ----- jsdoc/no-undefined-types -----
|
|
10648
10725
|
type JsdocNoUndefinedTypes = [] | [{
|
|
10726
|
+
checkUsedTypedefs?: boolean;
|
|
10649
10727
|
definedTypes?: string[];
|
|
10650
10728
|
disableReporting?: boolean;
|
|
10651
10729
|
markVariablesAsUsed?: boolean;
|
|
10652
10730
|
}];
|
|
10731
|
+
// ----- jsdoc/prefer-import-tag -----
|
|
10732
|
+
type JsdocPreferImportTag = [] | [{
|
|
10733
|
+
enableFixer?: boolean;
|
|
10734
|
+
exemptTypedefs?: boolean;
|
|
10735
|
+
outputType?: ("named-import" | "namespaced-import");
|
|
10736
|
+
}];
|
|
10653
10737
|
// ----- jsdoc/require-asterisk-prefix -----
|
|
10654
10738
|
type JsdocRequireAsteriskPrefix = [] | [("always" | "never" | "any")] | [("always" | "never" | "any"), {
|
|
10655
10739
|
tags?: {
|
|
@@ -10809,6 +10893,7 @@ type JsdocRequireReturns = [] | [{
|
|
|
10809
10893
|
type JsdocRequireReturnsCheck = [] | [{
|
|
10810
10894
|
exemptAsync?: boolean;
|
|
10811
10895
|
exemptGenerators?: boolean;
|
|
10896
|
+
noNativeTypes?: boolean;
|
|
10812
10897
|
reportMissingReturnForUndefinedTypes?: boolean;
|
|
10813
10898
|
}];
|
|
10814
10899
|
// ----- jsdoc/require-returns-description -----
|
|
@@ -10897,16 +10982,44 @@ type JsdocTextEscaping = [] | [{
|
|
|
10897
10982
|
escapeHTML?: boolean;
|
|
10898
10983
|
escapeMarkdown?: boolean;
|
|
10899
10984
|
}];
|
|
10985
|
+
// ----- jsdoc/ts-method-signature-style -----
|
|
10986
|
+
type JsdocTsMethodSignatureStyle = [] | [("method" | "property")] | [("method" | "property"), {
|
|
10987
|
+
enableFixer?: boolean;
|
|
10988
|
+
}];
|
|
10989
|
+
// ----- jsdoc/ts-no-unnecessary-template-expression -----
|
|
10990
|
+
type JsdocTsNoUnnecessaryTemplateExpression = [] | [{
|
|
10991
|
+
enableFixer?: boolean;
|
|
10992
|
+
}];
|
|
10993
|
+
// ----- jsdoc/ts-prefer-function-type -----
|
|
10994
|
+
type JsdocTsPreferFunctionType = [] | [{
|
|
10995
|
+
enableFixer?: boolean;
|
|
10996
|
+
}];
|
|
10900
10997
|
// ----- jsdoc/type-formatting -----
|
|
10901
10998
|
type JsdocTypeFormatting = [] | [{
|
|
10902
10999
|
arrayBrackets?: ("angle" | "square");
|
|
11000
|
+
arrowFunctionPostReturnMarkerSpacing?: string;
|
|
11001
|
+
arrowFunctionPreReturnMarkerSpacing?: string;
|
|
10903
11002
|
enableFixer?: boolean;
|
|
11003
|
+
functionOrClassParameterSpacing?: string;
|
|
11004
|
+
functionOrClassPostGenericSpacing?: string;
|
|
11005
|
+
functionOrClassPostReturnMarkerSpacing?: string;
|
|
11006
|
+
functionOrClassPreReturnMarkerSpacing?: string;
|
|
11007
|
+
functionOrClassTypeParameterSpacing?: string;
|
|
11008
|
+
genericAndTupleElementSpacing?: string;
|
|
10904
11009
|
genericDot?: boolean;
|
|
11010
|
+
keyValuePostColonSpacing?: string;
|
|
11011
|
+
keyValuePostKeySpacing?: string;
|
|
11012
|
+
keyValuePostOptionalSpacing?: string;
|
|
11013
|
+
keyValuePostVariadicSpacing?: string;
|
|
11014
|
+
methodQuotes?: ("double" | "single");
|
|
10905
11015
|
objectFieldIndent?: string;
|
|
10906
11016
|
objectFieldQuote?: ("double" | "single" | null);
|
|
10907
11017
|
objectFieldSeparator?: ("comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak");
|
|
10908
11018
|
objectFieldSeparatorOptionalLinebreak?: boolean;
|
|
10909
11019
|
objectFieldSeparatorTrailingPunctuation?: boolean;
|
|
11020
|
+
parameterDefaultValueSpacing?: string;
|
|
11021
|
+
postMethodNameSpacing?: string;
|
|
11022
|
+
postNewSpacing?: string;
|
|
10910
11023
|
separatorForSingleObjectField?: boolean;
|
|
10911
11024
|
stringQuotes?: ("double" | "single");
|
|
10912
11025
|
typeBracketSpacing?: string;
|
|
@@ -11995,12 +12108,14 @@ type NoRestrictedImports = ((string | {
|
|
|
11995
12108
|
message?: string;
|
|
11996
12109
|
importNames?: string[];
|
|
11997
12110
|
allowImportNames?: string[];
|
|
12111
|
+
allowTypeImports?: boolean;
|
|
11998
12112
|
})[] | [] | [{
|
|
11999
12113
|
paths?: (string | {
|
|
12000
12114
|
name: string;
|
|
12001
12115
|
message?: string;
|
|
12002
12116
|
importNames?: string[];
|
|
12003
12117
|
allowImportNames?: string[];
|
|
12118
|
+
allowTypeImports?: boolean;
|
|
12004
12119
|
})[];
|
|
12005
12120
|
patterns?: (string[] | ({
|
|
12006
12121
|
[k: string]: unknown | undefined;
|
|
@@ -14254,6 +14369,7 @@ type PnpmJsonEnforceCatalog = [] | [{
|
|
|
14254
14369
|
reuseExistingCatalog?: boolean;
|
|
14255
14370
|
conflicts?: ("new-catalog" | "overrides" | "error");
|
|
14256
14371
|
fields?: string[];
|
|
14372
|
+
ignores?: string[];
|
|
14257
14373
|
}];
|
|
14258
14374
|
// ----- pnpm/json-prefer-workspace-settings -----
|
|
14259
14375
|
type PnpmJsonPreferWorkspaceSettings = [] | [{
|
|
@@ -14270,6 +14386,7 @@ type PnpmJsonValidCatalog = [] | [{
|
|
|
14270
14386
|
// ----- pnpm/yaml-no-duplicate-catalog-item -----
|
|
14271
14387
|
type PnpmYamlNoDuplicateCatalogItem = [] | [{
|
|
14272
14388
|
allow?: string[];
|
|
14389
|
+
checkDuplicates?: ("name-only" | "exact-version");
|
|
14273
14390
|
}];
|
|
14274
14391
|
// ----- prefer-arrow-callback -----
|
|
14275
14392
|
type PreferArrowCallback = [] | [{
|
|
@@ -15624,6 +15741,7 @@ type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
|
|
|
15624
15741
|
destructuredArrayIgnorePattern?: string;
|
|
15625
15742
|
ignoreClassWithStaticInitBlock?: boolean;
|
|
15626
15743
|
ignoreRestSiblings?: boolean;
|
|
15744
|
+
ignoreUsingDeclarations?: boolean;
|
|
15627
15745
|
reportUsedIgnorePattern?: boolean;
|
|
15628
15746
|
vars?: ("all" | "local");
|
|
15629
15747
|
varsIgnorePattern?: string;
|
|
@@ -15637,6 +15755,7 @@ type UnusedImportsNoUnusedVars = [] | [(("all" | "local") | {
|
|
|
15637
15755
|
destructuredArrayIgnorePattern?: string;
|
|
15638
15756
|
ignoreClassWithStaticInitBlock?: boolean;
|
|
15639
15757
|
ignoreRestSiblings?: boolean;
|
|
15758
|
+
ignoreUsingDeclarations?: boolean;
|
|
15640
15759
|
reportUsedIgnorePattern?: boolean;
|
|
15641
15760
|
vars?: ("all" | "local");
|
|
15642
15761
|
varsIgnorePattern?: string;
|
|
@@ -17223,6 +17342,11 @@ interface OptionsOverrides<Rules extends TypedConfigItem['rules'] = TypedConfigI
|
|
|
17223
17342
|
* Options for shareable cross plugins
|
|
17224
17343
|
*/
|
|
17225
17344
|
interface OptionsShareable {
|
|
17345
|
+
/**
|
|
17346
|
+
* The ECMAScript version of the code being linted
|
|
17347
|
+
* @default 'latest'
|
|
17348
|
+
*/
|
|
17349
|
+
ecmaVersion?: Linter.EcmaVersion;
|
|
17226
17350
|
/**
|
|
17227
17351
|
* @see {@link https://typescript-eslint.io/packages/parser/#extrafileextensions}
|
|
17228
17352
|
*/
|
package/dist/index.js
CHANGED
|
@@ -333,7 +333,7 @@ const unCategorizedRules = {
|
|
|
333
333
|
* @returns ESLint configs
|
|
334
334
|
*/
|
|
335
335
|
const configVue = (options = {}) => {
|
|
336
|
-
const { files = [GLOB_VUE], extraFileExtensions = [] } = options;
|
|
336
|
+
const { files = [GLOB_VUE], ecmaVersion = "latest", extraFileExtensions = [] } = options;
|
|
337
337
|
const sfcBlocks = options.sfcBlocks === true ? {} : options.sfcBlocks ?? {};
|
|
338
338
|
function getVueProcessor() {
|
|
339
339
|
const processorVueSFC = pluginVue.processors[".vue"];
|
|
@@ -359,7 +359,7 @@ const configVue = (options = {}) => {
|
|
|
359
359
|
languageOptions: {
|
|
360
360
|
parser: parserVue,
|
|
361
361
|
parserOptions: {
|
|
362
|
-
ecmaVersion
|
|
362
|
+
ecmaVersion,
|
|
363
363
|
extraFileExtensions,
|
|
364
364
|
parser: parserTypeScript,
|
|
365
365
|
sourceType: "module",
|
|
@@ -1289,6 +1289,10 @@ const configAstro = async (options = {}) => {
|
|
|
1289
1289
|
|
|
1290
1290
|
//#endregion
|
|
1291
1291
|
//#region src/configs/jsdoc.ts
|
|
1292
|
+
const SPECIAL_CHAR = {
|
|
1293
|
+
emptyString: "",
|
|
1294
|
+
singleSpace: " "
|
|
1295
|
+
};
|
|
1292
1296
|
/**
|
|
1293
1297
|
* JavaScript specific rules
|
|
1294
1298
|
*/
|
|
@@ -1321,6 +1325,7 @@ const configJsdoc = (options = {}) => [{
|
|
|
1321
1325
|
name: "ntnyq/jsdoc",
|
|
1322
1326
|
plugins: { jsdoc: pluginJsdoc },
|
|
1323
1327
|
rules: {
|
|
1328
|
+
"jsdoc/prefer-import-tag": "off",
|
|
1324
1329
|
"jsdoc/require-tags": "off",
|
|
1325
1330
|
"jsdoc/tag-lines": "off",
|
|
1326
1331
|
"jsdoc/text-escaping": "off",
|
|
@@ -1332,6 +1337,7 @@ const configJsdoc = (options = {}) => [{
|
|
|
1332
1337
|
"jsdoc/require-property-name": "warn",
|
|
1333
1338
|
"jsdoc/require-returns-check": "warn",
|
|
1334
1339
|
"jsdoc/require-returns-description": "warn",
|
|
1340
|
+
"jsdoc/require-template-description": "warn",
|
|
1335
1341
|
"jsdoc/require-yields-check": "warn",
|
|
1336
1342
|
"jsdoc/require-next-description": "warn",
|
|
1337
1343
|
"jsdoc/require-next-type": "warn",
|
|
@@ -1339,6 +1345,9 @@ const configJsdoc = (options = {}) => [{
|
|
|
1339
1345
|
"jsdoc/require-throws-type": "warn",
|
|
1340
1346
|
"jsdoc/require-yields-description": "warn",
|
|
1341
1347
|
"jsdoc/require-yields-type": "warn",
|
|
1348
|
+
"jsdoc/ts-method-signature-style": "warn",
|
|
1349
|
+
"jsdoc/ts-no-empty-object-type": "warn",
|
|
1350
|
+
"jsdoc/ts-no-unnecessary-template-expression": "warn",
|
|
1342
1351
|
"jsdoc/check-alignment": "error",
|
|
1343
1352
|
"jsdoc/check-line-alignment": "error",
|
|
1344
1353
|
"jsdoc/check-param-names": "error",
|
|
@@ -1376,12 +1385,16 @@ const configJsdoc = (options = {}) => [{
|
|
|
1376
1385
|
arrayBrackets: "square",
|
|
1377
1386
|
enableFixer: true,
|
|
1378
1387
|
genericDot: false,
|
|
1379
|
-
|
|
1388
|
+
keyValuePostColonSpacing: SPECIAL_CHAR.singleSpace,
|
|
1389
|
+
keyValuePostKeySpacing: SPECIAL_CHAR.emptyString,
|
|
1390
|
+
keyValuePostOptionalSpacing: SPECIAL_CHAR.emptyString,
|
|
1391
|
+
keyValuePostVariadicSpacing: SPECIAL_CHAR.emptyString,
|
|
1392
|
+
objectFieldIndent: SPECIAL_CHAR.emptyString,
|
|
1380
1393
|
objectFieldQuote: null,
|
|
1381
1394
|
objectFieldSeparator: "comma",
|
|
1382
1395
|
stringQuotes: "single",
|
|
1383
|
-
typeBracketSpacing:
|
|
1384
|
-
unionSpacing:
|
|
1396
|
+
typeBracketSpacing: SPECIAL_CHAR.emptyString,
|
|
1397
|
+
unionSpacing: SPECIAL_CHAR.singleSpace
|
|
1385
1398
|
}],
|
|
1386
1399
|
...options.typescript ? typescriptRules : javscriptRules,
|
|
1387
1400
|
...options.overrides
|
|
@@ -2475,180 +2488,184 @@ const strictRules = {
|
|
|
2475
2488
|
* @param options - {@link ConfigJavaScriptOptions}
|
|
2476
2489
|
* @returns ESLint configs
|
|
2477
2490
|
*/
|
|
2478
|
-
const configJavaScript = (options = {}) =>
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
"consistent-return": "off",
|
|
2493
|
-
"no-return-assign": "off",
|
|
2494
|
-
"no-useless-escape": "off",
|
|
2495
|
-
"require-await": "off",
|
|
2496
|
-
"sort-imports": "off",
|
|
2497
|
-
"accessor-pairs": ["error", {
|
|
2498
|
-
enforceForClassMembers: true,
|
|
2499
|
-
setWithoutGet: true
|
|
2500
|
-
}],
|
|
2501
|
-
"array-callback-return": "error",
|
|
2502
|
-
"block-scoped-var": "error",
|
|
2503
|
-
camelcase: ["error", {
|
|
2504
|
-
allow: ["^UNSAFE_"],
|
|
2505
|
-
ignoreGlobals: true,
|
|
2506
|
-
properties: "never"
|
|
2507
|
-
}],
|
|
2508
|
-
"constructor-super": "error",
|
|
2509
|
-
curly: ["error", "all"],
|
|
2510
|
-
"default-case-last": "error",
|
|
2511
|
-
"dot-notation": ["error", { allowKeywords: true }],
|
|
2512
|
-
eqeqeq: ["error", "smart"],
|
|
2513
|
-
"new-cap": ["error", {
|
|
2514
|
-
capIsNew: false,
|
|
2515
|
-
newIsCap: true,
|
|
2516
|
-
properties: true
|
|
2517
|
-
}],
|
|
2518
|
-
"no-alert": "error",
|
|
2519
|
-
"no-array-constructor": "error",
|
|
2520
|
-
"no-async-promise-executor": "error",
|
|
2521
|
-
"no-caller": "error",
|
|
2522
|
-
"no-case-declarations": "error",
|
|
2523
|
-
"no-class-assign": "error",
|
|
2524
|
-
"no-compare-neg-zero": "error",
|
|
2525
|
-
"no-cond-assign": "error",
|
|
2526
|
-
"no-const-assign": "error",
|
|
2527
|
-
"no-constant-condition": ["error", { checkLoops: false }],
|
|
2528
|
-
"no-control-regex": "error",
|
|
2529
|
-
"no-debugger": "error",
|
|
2530
|
-
"no-delete-var": "error",
|
|
2531
|
-
"no-dupe-args": "error",
|
|
2532
|
-
"no-dupe-class-members": "error",
|
|
2533
|
-
"no-dupe-keys": "error",
|
|
2534
|
-
"no-duplicate-case": "error",
|
|
2535
|
-
"no-empty": ["error", { allowEmptyCatch: true }],
|
|
2536
|
-
"no-empty-character-class": "error",
|
|
2537
|
-
"no-empty-pattern": "error",
|
|
2538
|
-
"no-empty-static-block": "error",
|
|
2539
|
-
"no-eval": "error",
|
|
2540
|
-
"no-ex-assign": "error",
|
|
2541
|
-
"no-extend-native": "error",
|
|
2542
|
-
"no-extra-bind": "error",
|
|
2543
|
-
"no-extra-boolean-cast": "error",
|
|
2544
|
-
"no-fallthrough": "error",
|
|
2545
|
-
"no-func-assign": "error",
|
|
2546
|
-
"no-global-assign": "error",
|
|
2547
|
-
"no-implied-eval": "error",
|
|
2548
|
-
"no-import-assign": "error",
|
|
2549
|
-
"no-invalid-regexp": "error",
|
|
2550
|
-
"no-irregular-whitespace": "error",
|
|
2551
|
-
"no-iterator": "error",
|
|
2552
|
-
"no-labels": ["error", {
|
|
2553
|
-
allowLoop: false,
|
|
2554
|
-
allowSwitch: false
|
|
2555
|
-
}],
|
|
2556
|
-
"no-lone-blocks": "error",
|
|
2557
|
-
"no-loss-of-precision": "error",
|
|
2558
|
-
"no-misleading-character-class": "error",
|
|
2559
|
-
"no-multi-str": "error",
|
|
2560
|
-
"no-negated-condition": "error",
|
|
2561
|
-
"no-new": "error",
|
|
2562
|
-
"no-new-func": "error",
|
|
2563
|
-
"no-new-native-nonconstructor": "error",
|
|
2564
|
-
"no-new-wrappers": "error",
|
|
2565
|
-
"no-obj-calls": "error",
|
|
2566
|
-
"no-octal": "error",
|
|
2567
|
-
"no-octal-escape": "error",
|
|
2568
|
-
"no-proto": "error",
|
|
2569
|
-
"no-prototype-builtins": "error",
|
|
2570
|
-
"no-redeclare": ["error", { builtinGlobals: false }],
|
|
2571
|
-
"no-regex-spaces": "error",
|
|
2572
|
-
"no-self-assign": ["error", { props: true }],
|
|
2573
|
-
"no-self-compare": "error",
|
|
2574
|
-
"no-sequences": "error",
|
|
2575
|
-
"no-shadow-restricted-names": "error",
|
|
2576
|
-
"no-sparse-arrays": "error",
|
|
2577
|
-
"no-template-curly-in-string": "error",
|
|
2578
|
-
"no-this-before-super": "error",
|
|
2579
|
-
"no-throw-literal": "error",
|
|
2580
|
-
"no-undef": "error",
|
|
2581
|
-
"no-undef-init": "error",
|
|
2582
|
-
"no-unexpected-multiline": "error",
|
|
2583
|
-
"no-unmodified-loop-condition": "error",
|
|
2584
|
-
"no-unneeded-ternary": ["error", { defaultAssignment: false }],
|
|
2585
|
-
"no-unreachable": "error",
|
|
2586
|
-
"no-unreachable-loop": "error",
|
|
2587
|
-
"no-unsafe-finally": "error",
|
|
2588
|
-
"no-unsafe-negation": "error",
|
|
2589
|
-
"no-unused-expressions": ["error", {
|
|
2590
|
-
allowShortCircuit: true,
|
|
2591
|
-
allowTaggedTemplates: true,
|
|
2592
|
-
allowTernary: true
|
|
2593
|
-
}],
|
|
2594
|
-
"no-unused-vars": ["error", {
|
|
2595
|
-
args: "none",
|
|
2596
|
-
caughtErrors: "none",
|
|
2597
|
-
ignoreRestSiblings: true,
|
|
2598
|
-
vars: "all"
|
|
2599
|
-
}],
|
|
2600
|
-
"no-use-before-define": ["error", {
|
|
2601
|
-
allowNamedExports: false,
|
|
2602
|
-
classes: false,
|
|
2603
|
-
functions: false,
|
|
2604
|
-
variables: true
|
|
2605
|
-
}],
|
|
2606
|
-
"no-useless-backreference": "error",
|
|
2607
|
-
"no-useless-call": "error",
|
|
2608
|
-
"no-useless-catch": "error",
|
|
2609
|
-
"no-useless-computed-key": "error",
|
|
2610
|
-
"no-useless-constructor": "error",
|
|
2611
|
-
"no-useless-rename": "error",
|
|
2612
|
-
"no-useless-return": "error",
|
|
2613
|
-
"no-var": "error",
|
|
2614
|
-
"no-void": "error",
|
|
2615
|
-
"no-with": "error",
|
|
2616
|
-
"object-shorthand": [
|
|
2617
|
-
"error",
|
|
2618
|
-
"always",
|
|
2619
|
-
{
|
|
2620
|
-
avoidQuotes: true,
|
|
2621
|
-
ignoreConstructors: false
|
|
2491
|
+
const configJavaScript = (options = {}) => {
|
|
2492
|
+
const { ecmaVersion = "latest" } = options;
|
|
2493
|
+
return [{
|
|
2494
|
+
...jsConfig.configs.recommended,
|
|
2495
|
+
name: "ntnyq/js/recommended"
|
|
2496
|
+
}, {
|
|
2497
|
+
name: "ntnyq/js/core",
|
|
2498
|
+
languageOptions: {
|
|
2499
|
+
ecmaVersion,
|
|
2500
|
+
sourceType: "module",
|
|
2501
|
+
globals: {
|
|
2502
|
+
...globals.browser,
|
|
2503
|
+
...globals.es2021,
|
|
2504
|
+
...globals.node
|
|
2622
2505
|
}
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2506
|
+
},
|
|
2507
|
+
rules: {
|
|
2508
|
+
"consistent-return": "off",
|
|
2509
|
+
"no-return-assign": "off",
|
|
2510
|
+
"no-useless-escape": "off",
|
|
2511
|
+
"require-await": "off",
|
|
2512
|
+
"sort-imports": "off",
|
|
2513
|
+
"accessor-pairs": ["error", {
|
|
2514
|
+
enforceForClassMembers: true,
|
|
2515
|
+
setWithoutGet: true
|
|
2516
|
+
}],
|
|
2517
|
+
"array-callback-return": "error",
|
|
2518
|
+
"block-scoped-var": "error",
|
|
2519
|
+
camelcase: ["error", {
|
|
2520
|
+
allow: ["^UNSAFE_"],
|
|
2521
|
+
ignoreGlobals: true,
|
|
2522
|
+
properties: "never"
|
|
2523
|
+
}],
|
|
2524
|
+
"constructor-super": "error",
|
|
2525
|
+
curly: ["error", "all"],
|
|
2526
|
+
"default-case-last": "error",
|
|
2527
|
+
"dot-notation": ["error", { allowKeywords: true }],
|
|
2528
|
+
eqeqeq: ["error", "smart"],
|
|
2529
|
+
"new-cap": ["error", {
|
|
2530
|
+
capIsNew: false,
|
|
2531
|
+
newIsCap: true,
|
|
2532
|
+
properties: true
|
|
2533
|
+
}],
|
|
2534
|
+
"no-alert": "error",
|
|
2535
|
+
"no-array-constructor": "error",
|
|
2536
|
+
"no-async-promise-executor": "error",
|
|
2537
|
+
"no-caller": "error",
|
|
2538
|
+
"no-case-declarations": "error",
|
|
2539
|
+
"no-class-assign": "error",
|
|
2540
|
+
"no-compare-neg-zero": "error",
|
|
2541
|
+
"no-cond-assign": "error",
|
|
2542
|
+
"no-const-assign": "error",
|
|
2543
|
+
"no-constant-condition": ["error", { checkLoops: false }],
|
|
2544
|
+
"no-control-regex": "error",
|
|
2545
|
+
"no-debugger": "error",
|
|
2546
|
+
"no-delete-var": "error",
|
|
2547
|
+
"no-dupe-args": "error",
|
|
2548
|
+
"no-dupe-class-members": "error",
|
|
2549
|
+
"no-dupe-keys": "error",
|
|
2550
|
+
"no-duplicate-case": "error",
|
|
2551
|
+
"no-empty": ["error", { allowEmptyCatch: true }],
|
|
2552
|
+
"no-empty-character-class": "error",
|
|
2553
|
+
"no-empty-pattern": "error",
|
|
2554
|
+
"no-empty-static-block": "error",
|
|
2555
|
+
"no-eval": "error",
|
|
2556
|
+
"no-ex-assign": "error",
|
|
2557
|
+
"no-extend-native": "error",
|
|
2558
|
+
"no-extra-bind": "error",
|
|
2559
|
+
"no-extra-boolean-cast": "error",
|
|
2560
|
+
"no-fallthrough": "error",
|
|
2561
|
+
"no-func-assign": "error",
|
|
2562
|
+
"no-global-assign": "error",
|
|
2563
|
+
"no-implied-eval": "error",
|
|
2564
|
+
"no-import-assign": "error",
|
|
2565
|
+
"no-invalid-regexp": "error",
|
|
2566
|
+
"no-irregular-whitespace": "error",
|
|
2567
|
+
"no-iterator": "error",
|
|
2568
|
+
"no-labels": ["error", {
|
|
2569
|
+
allowLoop: false,
|
|
2570
|
+
allowSwitch: false
|
|
2571
|
+
}],
|
|
2572
|
+
"no-lone-blocks": "error",
|
|
2573
|
+
"no-loss-of-precision": "error",
|
|
2574
|
+
"no-misleading-character-class": "error",
|
|
2575
|
+
"no-multi-str": "error",
|
|
2576
|
+
"no-negated-condition": "error",
|
|
2577
|
+
"no-new": "error",
|
|
2578
|
+
"no-new-func": "error",
|
|
2579
|
+
"no-new-native-nonconstructor": "error",
|
|
2580
|
+
"no-new-wrappers": "error",
|
|
2581
|
+
"no-obj-calls": "error",
|
|
2582
|
+
"no-octal": "error",
|
|
2583
|
+
"no-octal-escape": "error",
|
|
2584
|
+
"no-proto": "error",
|
|
2585
|
+
"no-prototype-builtins": "error",
|
|
2586
|
+
"no-redeclare": ["error", { builtinGlobals: false }],
|
|
2587
|
+
"no-regex-spaces": "error",
|
|
2588
|
+
"no-self-assign": ["error", { props: true }],
|
|
2589
|
+
"no-self-compare": "error",
|
|
2590
|
+
"no-sequences": "error",
|
|
2591
|
+
"no-shadow-restricted-names": "error",
|
|
2592
|
+
"no-sparse-arrays": "error",
|
|
2593
|
+
"no-template-curly-in-string": "error",
|
|
2594
|
+
"no-this-before-super": "error",
|
|
2595
|
+
"no-throw-literal": "error",
|
|
2596
|
+
"no-undef": "error",
|
|
2597
|
+
"no-undef-init": "error",
|
|
2598
|
+
"no-unexpected-multiline": "error",
|
|
2599
|
+
"no-unmodified-loop-condition": "error",
|
|
2600
|
+
"no-unneeded-ternary": ["error", { defaultAssignment: false }],
|
|
2601
|
+
"no-unreachable": "error",
|
|
2602
|
+
"no-unreachable-loop": "error",
|
|
2603
|
+
"no-unsafe-finally": "error",
|
|
2604
|
+
"no-unsafe-negation": "error",
|
|
2605
|
+
"no-unused-expressions": ["error", {
|
|
2606
|
+
allowShortCircuit: true,
|
|
2607
|
+
allowTaggedTemplates: true,
|
|
2608
|
+
allowTernary: true
|
|
2609
|
+
}],
|
|
2610
|
+
"no-unused-vars": ["error", {
|
|
2611
|
+
args: "none",
|
|
2612
|
+
caughtErrors: "none",
|
|
2613
|
+
ignoreRestSiblings: true,
|
|
2614
|
+
vars: "all"
|
|
2615
|
+
}],
|
|
2616
|
+
"no-use-before-define": ["error", {
|
|
2617
|
+
allowNamedExports: false,
|
|
2618
|
+
classes: false,
|
|
2619
|
+
functions: false,
|
|
2620
|
+
variables: true
|
|
2621
|
+
}],
|
|
2622
|
+
"no-useless-backreference": "error",
|
|
2623
|
+
"no-useless-call": "error",
|
|
2624
|
+
"no-useless-catch": "error",
|
|
2625
|
+
"no-useless-computed-key": "error",
|
|
2626
|
+
"no-useless-constructor": "error",
|
|
2627
|
+
"no-useless-rename": "error",
|
|
2628
|
+
"no-useless-return": "error",
|
|
2629
|
+
"no-var": "error",
|
|
2630
|
+
"no-void": "error",
|
|
2631
|
+
"no-with": "error",
|
|
2632
|
+
"object-shorthand": [
|
|
2633
|
+
"error",
|
|
2634
|
+
"always",
|
|
2635
|
+
{
|
|
2636
|
+
avoidQuotes: true,
|
|
2637
|
+
ignoreConstructors: false
|
|
2638
|
+
}
|
|
2639
|
+
],
|
|
2640
|
+
"one-var": ["error", "never"],
|
|
2641
|
+
"prefer-arrow-callback": ["error", {
|
|
2642
|
+
allowNamedFunctions: false,
|
|
2643
|
+
allowUnboundThis: true
|
|
2644
|
+
}],
|
|
2645
|
+
"prefer-const": ["error", {
|
|
2646
|
+
destructuring: "all",
|
|
2647
|
+
ignoreReadBeforeAssign: true
|
|
2648
|
+
}],
|
|
2649
|
+
"prefer-promise-reject-errors": "error",
|
|
2650
|
+
"prefer-regex-literals": ["error", { disallowRedundantWrapping: true }],
|
|
2651
|
+
"prefer-rest-params": "error",
|
|
2652
|
+
"prefer-spread": "error",
|
|
2653
|
+
"prefer-template": "error",
|
|
2654
|
+
"preserve-caught-error": ["error", { requireCatchParameter: true }],
|
|
2655
|
+
"symbol-description": "error",
|
|
2656
|
+
"unicode-bom": ["error", "never"],
|
|
2657
|
+
"use-isnan": ["error", {
|
|
2658
|
+
enforceForIndexOf: true,
|
|
2659
|
+
enforceForSwitchCase: true
|
|
2660
|
+
}],
|
|
2661
|
+
"valid-typeof": ["error", { requireStringLiterals: true }],
|
|
2662
|
+
"vars-on-top": "error",
|
|
2663
|
+
yoda: ["error", "never"],
|
|
2664
|
+
...options.strict ? strictRules : {},
|
|
2665
|
+
...options.overrides
|
|
2666
|
+
}
|
|
2667
|
+
}];
|
|
2668
|
+
};
|
|
2652
2669
|
const configJSX = () => [{
|
|
2653
2670
|
name: "ntnyq/jsx",
|
|
2654
2671
|
files: [GLOB_JSX_ONLY],
|
|
@@ -2713,7 +2730,7 @@ const configTypeScript = (options = {}) => {
|
|
|
2713
2730
|
* @see {@link https://typescript-eslint.io/troubleshooting/typed-linting}
|
|
2714
2731
|
*/
|
|
2715
2732
|
const enableTypeAwareLint = !!options?.tsconfigPath;
|
|
2716
|
-
const { allowDefaultProject = [], extraFileExtensions = [], filesTypeAware = [GLOB_TS, GLOB_TSX], ignoresTypeAware = [GLOB_ASTRO, `${GLOB_MARKDOWN}/**`], overridesTypeAwareRules = {}, parserOptions = {} } = options;
|
|
2733
|
+
const { allowDefaultProject = [], ecmaVersion = "latest", extraFileExtensions = [], filesTypeAware = [GLOB_TS, GLOB_TSX], ignoresTypeAware = [GLOB_ASTRO, `${GLOB_MARKDOWN}/**`], overridesTypeAwareRules = {}, parserOptions = {} } = options;
|
|
2717
2734
|
const files = options.files ?? [
|
|
2718
2735
|
GLOB_TS,
|
|
2719
2736
|
GLOB_TSX,
|
|
@@ -2721,6 +2738,7 @@ const configTypeScript = (options = {}) => {
|
|
|
2721
2738
|
];
|
|
2722
2739
|
function createParserConfig(enableTypeAware = false, files$1 = [], ignores = []) {
|
|
2723
2740
|
const typescriptParserOptions = {
|
|
2741
|
+
ecmaVersion,
|
|
2724
2742
|
extraFileExtensions,
|
|
2725
2743
|
sourceType: "module",
|
|
2726
2744
|
...enableTypeAware ? {
|
|
@@ -3107,12 +3125,13 @@ const configESLintComments = (options = {}) => [{
|
|
|
3107
3125
|
function defineESLintConfig(options = {}, ...userConfigs) {
|
|
3108
3126
|
const { shareable = {}, vue: enableVue = hasVue(), pinia: enablePinia = hasPinia(), test: enableTest = hasVitest(), unocss: enableUnoCSS = hasUnoCSS(), typescript: enableTypeScript = hasTypeScript(), yml: enableYML = true, sort: enableSort = true, toml: enableTOML = true, jsonc: enableJSONC = true, antfu: enableAntfu = true, ntnyq: enableNtnyq = true, depend: enableDepend = true, regexp: enableRegexp = true, unicorn: enableUnicorn = true, deMorgan: enableDeMorgan = true, prettier: enablePrettier = true, markdown: enableMarkdown = true, gitignore: enableGitIgnore = true, jsdoc: enableJsdoc = true, importX: enableImportX = true, specials: enableSpecials = true, githubAction: enableGitHubAction = true, perfectionist: enablePerfectionist = true, pnpm: enablePnpm = false, svgo: enableSVGO = false, html: enableHTML = false, astro: enableAstro = false, svelte: enableSvelte = false, eslintPlugin: enableESLintPlugin = false } = options;
|
|
3109
3127
|
const configs = [];
|
|
3110
|
-
const { extraFileExtensions = [] } = shareable;
|
|
3128
|
+
const { ecmaVersion = "latest", extraFileExtensions = [] } = shareable;
|
|
3111
3129
|
if (enableVue) extraFileExtensions.push(".vue");
|
|
3112
3130
|
if (enableAstro) extraFileExtensions.push(".astro");
|
|
3113
3131
|
if (enableSvelte) extraFileExtensions.push(".svelte");
|
|
3114
3132
|
if (enableGitIgnore) configs.push(configGitIgnore(resolveSubOptions(options, "gitignore")));
|
|
3115
3133
|
configs.push(configIgnores(options.ignores), configJSX(), configNode({ overrides: getOverrides(options, "node") }), configCommand(resolveSubOptions(options, "command")), configESLintComments({ overrides: getOverrides(options, "eslintComments") }), configJavaScript({
|
|
3134
|
+
ecmaVersion,
|
|
3116
3135
|
...resolveSubOptions(options, "javascript"),
|
|
3117
3136
|
overrides: getOverrides(options, "javascript")
|
|
3118
3137
|
}));
|
|
@@ -3141,11 +3160,13 @@ function defineESLintConfig(options = {}, ...userConfigs) {
|
|
|
3141
3160
|
overrides: getOverrides(options, "regexp")
|
|
3142
3161
|
}));
|
|
3143
3162
|
if (enableTypeScript) configs.push(configTypeScript({
|
|
3163
|
+
ecmaVersion,
|
|
3144
3164
|
...resolveSubOptions(options, "typescript"),
|
|
3145
3165
|
overrides: getOverrides(options, "typescript"),
|
|
3146
3166
|
extraFileExtensions
|
|
3147
3167
|
}));
|
|
3148
3168
|
if (enableVue) configs.push(configVue({
|
|
3169
|
+
ecmaVersion,
|
|
3149
3170
|
...resolveSubOptions(options, "vue"),
|
|
3150
3171
|
typescript: !!enableTypeScript,
|
|
3151
3172
|
overrides: getOverrides(options, "vue"),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ntnyq/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.7.0",
|
|
5
5
|
"description": "An opinionated ESLint config preset of ntnyq",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"eslint",
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
"tag": "latest"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
|
-
"@html-eslint/eslint-plugin": "^0.
|
|
40
|
-
"@html-eslint/parser": "^0.
|
|
39
|
+
"@html-eslint/eslint-plugin": "^0.47.0",
|
|
40
|
+
"@html-eslint/parser": "^0.47.0",
|
|
41
41
|
"astro-eslint-parser": "^1.2.2",
|
|
42
42
|
"eslint": "^9.20.0",
|
|
43
43
|
"eslint-plugin-astro": "^1.3.1",
|
|
44
44
|
"eslint-plugin-eslint-plugin": "^7.0.0",
|
|
45
45
|
"eslint-plugin-format": "^1.0.2",
|
|
46
|
-
"eslint-plugin-pnpm": "^1.
|
|
46
|
+
"eslint-plugin-pnpm": "^1.2.0",
|
|
47
47
|
"eslint-plugin-svelte": "^3.12.4",
|
|
48
48
|
"eslint-plugin-unused-imports": "^4.2.0",
|
|
49
|
-
"svelte": "^5.
|
|
49
|
+
"svelte": "^5.40.0",
|
|
50
50
|
"svelte-eslint-parser": "^1.3.3"
|
|
51
51
|
},
|
|
52
52
|
"peerDependenciesMeta": {
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
"@antfu/install-pkg": "^1.1.0",
|
|
89
89
|
"@clack/prompts": "^0.11.0",
|
|
90
90
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
|
|
91
|
-
"@eslint/js": "^9.
|
|
92
|
-
"@eslint/markdown": "^7.
|
|
93
|
-
"@unocss/eslint-plugin": "^66.5.
|
|
94
|
-
"@vitest/eslint-plugin": "^1.3.
|
|
91
|
+
"@eslint/js": "^9.38.0",
|
|
92
|
+
"@eslint/markdown": "^7.5.0",
|
|
93
|
+
"@unocss/eslint-plugin": "^66.5.4",
|
|
94
|
+
"@vitest/eslint-plugin": "^1.3.23",
|
|
95
95
|
"eslint-config-flat-gitignore": "^2.1.0",
|
|
96
96
|
"eslint-flat-config-utils": "^2.1.4",
|
|
97
97
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
@@ -99,53 +99,53 @@
|
|
|
99
99
|
"eslint-parser-plain": "^0.1.1",
|
|
100
100
|
"eslint-plugin-antfu": "^3.1.1",
|
|
101
101
|
"eslint-plugin-command": "^3.3.1",
|
|
102
|
-
"eslint-plugin-de-morgan": "^
|
|
102
|
+
"eslint-plugin-de-morgan": "^2.0.0",
|
|
103
103
|
"eslint-plugin-depend": "^1.3.1",
|
|
104
104
|
"eslint-plugin-github-action": "^0.0.16",
|
|
105
105
|
"eslint-plugin-import-x": "^4.16.1",
|
|
106
|
-
"eslint-plugin-jsdoc": "^
|
|
107
|
-
"eslint-plugin-jsonc": "^2.
|
|
106
|
+
"eslint-plugin-jsdoc": "^61.1.5",
|
|
107
|
+
"eslint-plugin-jsonc": "^2.21.0",
|
|
108
108
|
"eslint-plugin-n": "^17.23.1",
|
|
109
109
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
110
110
|
"eslint-plugin-ntnyq": "^0.12.0",
|
|
111
|
-
"eslint-plugin-perfectionist": "^4.15.
|
|
111
|
+
"eslint-plugin-perfectionist": "^4.15.1",
|
|
112
112
|
"eslint-plugin-pinia": "^0.4.1",
|
|
113
113
|
"eslint-plugin-prettier": "^5.5.4",
|
|
114
114
|
"eslint-plugin-regexp": "^2.10.0",
|
|
115
115
|
"eslint-plugin-svgo": "^0.11.3",
|
|
116
116
|
"eslint-plugin-toml": "^0.12.0",
|
|
117
117
|
"eslint-plugin-unicorn": "^61.0.2",
|
|
118
|
-
"eslint-plugin-vue": "^10.5.
|
|
119
|
-
"eslint-plugin-yml": "^1.
|
|
118
|
+
"eslint-plugin-vue": "^10.5.1",
|
|
119
|
+
"eslint-plugin-yml": "^1.19.0",
|
|
120
120
|
"eslint-processor-vue-blocks": "^2.0.0",
|
|
121
121
|
"globals": "^16.4.0",
|
|
122
122
|
"jsonc-eslint-parser": "^2.4.1",
|
|
123
123
|
"local-pkg": "^1.1.2",
|
|
124
124
|
"toml-eslint-parser": "^0.10.0",
|
|
125
|
-
"typescript-eslint": "^8.
|
|
125
|
+
"typescript-eslint": "^8.46.2",
|
|
126
126
|
"vue-eslint-parser": "^10.2.0",
|
|
127
127
|
"yaml-eslint-parser": "^1.3.0"
|
|
128
128
|
},
|
|
129
129
|
"devDependencies": {
|
|
130
130
|
"@ntnyq/prettier-config": "^3.0.1",
|
|
131
|
-
"@types/node": "^24.
|
|
132
|
-
"@typescript-eslint/types": "^8.
|
|
133
|
-
"@typescript-eslint/utils": "^8.
|
|
134
|
-
"bumpp": "^10.
|
|
131
|
+
"@types/node": "^24.9.1",
|
|
132
|
+
"@typescript-eslint/types": "^8.46.2",
|
|
133
|
+
"@typescript-eslint/utils": "^8.46.2",
|
|
134
|
+
"bumpp": "^10.3.1",
|
|
135
135
|
"consola": "^3.4.2",
|
|
136
|
-
"eslint": "^9.
|
|
136
|
+
"eslint": "^9.38.0",
|
|
137
137
|
"eslint-typegen": "^2.3.0",
|
|
138
138
|
"husky": "^9.1.7",
|
|
139
|
-
"jiti": "^2.6.
|
|
139
|
+
"jiti": "^2.6.1",
|
|
140
140
|
"nano-staged": "^0.8.0",
|
|
141
141
|
"npm-run-all2": "^8.0.4",
|
|
142
142
|
"prettier": "^3.6.2",
|
|
143
143
|
"tinyglobby": "^0.2.15",
|
|
144
|
-
"tsdown": "^0.15.
|
|
145
|
-
"tsx": "^4.20.
|
|
146
|
-
"typescript": "^5.9.
|
|
144
|
+
"tsdown": "^0.15.9",
|
|
145
|
+
"tsx": "^4.20.6",
|
|
146
|
+
"typescript": "^5.9.3",
|
|
147
147
|
"uncase": "^0.2.0",
|
|
148
|
-
"vitest": "^
|
|
148
|
+
"vitest": "^4.0.1"
|
|
149
149
|
},
|
|
150
150
|
"engines": {
|
|
151
151
|
"node": "^20.11.0 || >=21.1.0"
|