@shayanthenerd/eslint-config 0.30.0 → 0.30.2
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/README.md +2 -1
- package/dist/helpers/options/defaultOptions.mjs +2 -1
- package/dist/rules/javascript.mjs +2 -2
- package/dist/rules/typescript.mjs +10 -0
- package/dist/rules/unicorn.mjs +0 -1
- package/dist/rules/vue.mjs +3 -2
- package/dist/rules/zod.mjs +4 -1
- package/dist/types/eslint-schema.d.mts +33 -9
- package/dist/types/options/vue.d.mts +11 -10
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ ESLint configuration for enforcing best practices and maintaining a consistent c
|
|
|
6
6
|
- **Smart**: Context-aware linting with [automatic dependency detection](#automatic-dependency-detection) and _.gitignore_ recognition.
|
|
7
7
|
- **Comprehensive**: [Supports useful plugins](#plugin-support) for TypeScript, React & Next, Vue & Nuxt, Astro, Tailwind, and more.
|
|
8
8
|
- **Type-safe**: [Fully-typed and well-documented API](#api-reference) with `overrides` support for built-in configuration objects.
|
|
9
|
-
- **Modern**: Requires ESLint ^10.
|
|
9
|
+
- **Modern**: Requires ESLint ^10.9.0 and Node.js ^20.19.0 (ESM-only)
|
|
10
10
|
|
|
11
11
|
## Table of Contents
|
|
12
12
|
- [Plugin Support](#plugin-support)
|
|
@@ -705,6 +705,7 @@ For file types that ESLint Stylistic does not handle—such as CSS, JSON, YAML,
|
|
|
705
705
|
})[],
|
|
706
706
|
templateMaxLineLength?: number,
|
|
707
707
|
vForDelimiterStyle?: 'in' | 'of',
|
|
708
|
+
vOnHandlerStyle?: 'inline' | 'inline-function' | ['method', 'inline' | 'inline-function'],
|
|
708
709
|
overrides?: Overrides,
|
|
709
710
|
},
|
|
710
711
|
zod?: boolean | {
|
|
@@ -206,7 +206,7 @@ const defaultOptions = {
|
|
|
206
206
|
"docs"
|
|
207
207
|
],
|
|
208
208
|
componentNameCaseInTemplate: "PascalCase",
|
|
209
|
-
destructureProps: "
|
|
209
|
+
destructureProps: "only-when-assigned",
|
|
210
210
|
ignoredUndefinedComponents: [],
|
|
211
211
|
macrosOrder: [
|
|
212
212
|
"definePage",
|
|
@@ -224,6 +224,7 @@ const defaultOptions = {
|
|
|
224
224
|
restrictedStaticAttributes: [],
|
|
225
225
|
templateMaxLineLength: 130,
|
|
226
226
|
vForDelimiterStyle: "in",
|
|
227
|
+
vOnHandlerStyle: "inline",
|
|
227
228
|
overrides: {}
|
|
228
229
|
},
|
|
229
230
|
zod: {
|
|
@@ -48,7 +48,7 @@ function getJavaScriptRules(options) {
|
|
|
48
48
|
"no-self-compare": "warn",
|
|
49
49
|
"no-template-curly-in-string": "error",
|
|
50
50
|
"no-unassigned-vars": "error",
|
|
51
|
-
"no-unmodified-loop-condition": "
|
|
51
|
+
"no-unmodified-loop-condition": ["warn", { checkConditionalExpressions: true }],
|
|
52
52
|
"no-unreachable-loop": "warn",
|
|
53
53
|
"no-unsafe-negation": isTypescriptEnabled ? "off" : ["error", { enforceForOrderingRelations: true }],
|
|
54
54
|
"no-unsafe-optional-chaining": ["error", { disallowArithmeticOperators: true }],
|
|
@@ -112,7 +112,7 @@ function getJavaScriptRules(options) {
|
|
|
112
112
|
"groupEnd",
|
|
113
113
|
"groupCollapsed"
|
|
114
114
|
] }],
|
|
115
|
-
"no-empty": "warn",
|
|
115
|
+
"no-empty": ["warn", { allowEmptyCatch: true }],
|
|
116
116
|
"no-empty-function": ["error", { allow: [
|
|
117
117
|
"overrideMethods",
|
|
118
118
|
"decoratedFunctions",
|
|
@@ -120,6 +120,16 @@ function getTypescriptRules(options) {
|
|
|
120
120
|
"@typescript-eslint/method-signature-style": ["warn", methodSignatureStyle],
|
|
121
121
|
"@typescript-eslint/naming-convention": [
|
|
122
122
|
"warn",
|
|
123
|
+
{
|
|
124
|
+
selector: "variable",
|
|
125
|
+
modifiers: ["destructured"],
|
|
126
|
+
format: [
|
|
127
|
+
"camelCase",
|
|
128
|
+
"PascalCase",
|
|
129
|
+
"UPPER_CASE"
|
|
130
|
+
],
|
|
131
|
+
leadingUnderscore: "allow"
|
|
132
|
+
},
|
|
123
133
|
{
|
|
124
134
|
selector: "variable",
|
|
125
135
|
format: [
|
package/dist/rules/unicorn.mjs
CHANGED
|
@@ -257,7 +257,6 @@ function getUnicornRules(options) {
|
|
|
257
257
|
"unicorn/require-module-specifiers": "error",
|
|
258
258
|
"unicorn/require-number-to-fixed-digits-argument": "warn",
|
|
259
259
|
"unicorn/require-passive-events": "warn",
|
|
260
|
-
"unicorn/require-post-message-target-origin": "error",
|
|
261
260
|
"unicorn/require-proxy-trap-boolean-return": "error",
|
|
262
261
|
"unicorn/switch-case-braces": "warn",
|
|
263
262
|
"unicorn/switch-case-break-position": "error",
|
package/dist/rules/vue.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { getRestrictedVueElements } from "../helpers/vue/getRestrictedVueElement
|
|
|
7
7
|
function getVueRules(options) {
|
|
8
8
|
const { typescript, stylistic, vue, nuxt } = options.configs;
|
|
9
9
|
const { indent, trailingComma, maxLineLength, maxAttributesPerLine, maxConsecutiveEmptyLines, selfCloseVoidHtmlElements } = isEnabled(stylistic) ? stylistic : defaultOptions.configs.stylistic;
|
|
10
|
-
const { blockLang, blocksOrder, macrosOrder, attributesOrder, destructureProps, vForDelimiterStyle, attributeHyphenation, templateMaxLineLength, allowedStyleAttributes, preferVBindTrueShorthand, componentNameCaseInTemplate, preferVBindSameNameShorthand, restrictedElements: userRestrictedElements, ignoredUndefinedComponents: userIgnoredUndefinedComponents, restrictedStaticAttributes: userRestrictedStaticAttributes } = isEnabled(vue) ? vue : defaultOptions.configs.vue;
|
|
10
|
+
const { blockLang, blocksOrder, macrosOrder, attributesOrder, vOnHandlerStyle, destructureProps, vForDelimiterStyle, attributeHyphenation, templateMaxLineLength, allowedStyleAttributes, preferVBindTrueShorthand, componentNameCaseInTemplate, preferVBindSameNameShorthand, restrictedElements: userRestrictedElements, ignoredUndefinedComponents: userIgnoredUndefinedComponents, restrictedStaticAttributes: userRestrictedStaticAttributes } = isEnabled(vue) ? vue : defaultOptions.configs.vue;
|
|
11
11
|
const { imageComponents: userImageComponents, anchorComponents: userAnchorComponents, accessibleChildComponents: userAccessibleChildComponents } = isEnabled(vue) && isEnabled(vue.accessibility) ? vue.accessibility : defaultOptions.configs.vue.accessibility;
|
|
12
12
|
const isNuxtEnabled = isEnabled(nuxt);
|
|
13
13
|
const isNuxtImageEnabled = isNuxtEnabled ? nuxt.image : void 0;
|
|
@@ -399,7 +399,8 @@ function getVueRules(options) {
|
|
|
399
399
|
"vue/require-typed-object-prop": isScriptLangTS ? "error" : "off",
|
|
400
400
|
"vue/require-typed-ref": isScriptLangTS ? "error" : "off",
|
|
401
401
|
"vue/slot-name-casing": "warn",
|
|
402
|
-
"vue/v-for-delimiter-style": ["warn", vForDelimiterStyle]
|
|
402
|
+
"vue/v-for-delimiter-style": ["warn", vForDelimiterStyle],
|
|
403
|
+
"vue/v-on-handler-style": ["warn", vOnHandlerStyle]
|
|
403
404
|
};
|
|
404
405
|
if (isEnabled(stylistic)) vueRules["@stylistic/max-len"] = "off";
|
|
405
406
|
const isVueAccessibilityEnabled = isEnabled(vue) && isEnabled(vue.accessibility);
|
package/dist/rules/zod.mjs
CHANGED
|
@@ -15,6 +15,8 @@ function getZodRules(options) {
|
|
|
15
15
|
"zod-mini/no-conflicting-checks": "warn",
|
|
16
16
|
"zod-mini/no-duplicate-schema-methods": "error",
|
|
17
17
|
"zod-mini/no-empty-custom-schema": "error",
|
|
18
|
+
"zod-mini/no-native-enum": "error",
|
|
19
|
+
"zod-mini/no-promise-schema": "error",
|
|
18
20
|
"zod-mini/no-throw-in-refine": "error",
|
|
19
21
|
"zod-mini/no-transform-in-record-key": "error",
|
|
20
22
|
"zod-mini/no-unnecessary-readonly": "warn",
|
|
@@ -35,7 +37,7 @@ function getZodRules(options) {
|
|
|
35
37
|
"zod/no-conflicting-checks": "error",
|
|
36
38
|
"zod/no-duplicate-schema-methods": "error",
|
|
37
39
|
"zod/no-empty-custom-schema": "error",
|
|
38
|
-
"zod/no-native-enum": "
|
|
40
|
+
"zod/no-native-enum": "error",
|
|
39
41
|
"zod/no-number-schema-with-finite": "warn",
|
|
40
42
|
"zod/no-number-schema-with-int": "warn",
|
|
41
43
|
"zod/no-number-schema-with-is-finite": "warn",
|
|
@@ -55,6 +57,7 @@ function getZodRules(options) {
|
|
|
55
57
|
"zod/prefer-nullish": "warn",
|
|
56
58
|
"zod/prefer-meta-last": "warn",
|
|
57
59
|
"zod/prefer-strict-object": "warn",
|
|
60
|
+
"zod/prefer-string-length-over-min-max": "warn",
|
|
58
61
|
"zod/prefer-top-level-string-formats": "warn",
|
|
59
62
|
"zod/prefer-trim-before-string-length-checks": "error",
|
|
60
63
|
"zod/prefer-tuple-over-array-length": "warn",
|
|
@@ -963,7 +963,7 @@ interface ESLintSchema {
|
|
|
963
963
|
* Enforce the use of baseline features.
|
|
964
964
|
* @see https://html-eslint.org/docs/react/rules/use-baseline
|
|
965
965
|
*/
|
|
966
|
-
'@html-eslint/react/use-baseline'?: Linter.RuleEntry<
|
|
966
|
+
'@html-eslint/react/use-baseline'?: Linter.RuleEntry<HtmlEslintReactUseBaseline>;
|
|
967
967
|
/**
|
|
968
968
|
* Require specified attributes
|
|
969
969
|
* @see https://html-eslint.org/docs/rules/require-attrs
|
|
@@ -1068,7 +1068,7 @@ interface ESLintSchema {
|
|
|
1068
1068
|
* Enforce the use of baseline features.
|
|
1069
1069
|
* @see https://html-eslint.org/docs/rules/use-baseline
|
|
1070
1070
|
*/
|
|
1071
|
-
'@html-eslint/use-baseline'?: Linter.RuleEntry<
|
|
1071
|
+
'@html-eslint/use-baseline'?: Linter.RuleEntry<HtmlEslintUseBaseline>;
|
|
1072
1072
|
/**
|
|
1073
1073
|
* Enforce linebreaks after opening and before closing array brackets
|
|
1074
1074
|
* @see https://eslint.style/rules/array-bracket-newline
|
|
@@ -2586,7 +2586,7 @@ interface ESLintSchema {
|
|
|
2586
2586
|
/**
|
|
2587
2587
|
* Enforce JS Baseline by delegating to underlying syntax rules (es-x)
|
|
2588
2588
|
*/
|
|
2589
|
-
'baseline-js/use-baseline'?: Linter.RuleEntry<
|
|
2589
|
+
'baseline-js/use-baseline'?: Linter.RuleEntry<BaselineJsUseBaseline>;
|
|
2590
2590
|
/**
|
|
2591
2591
|
* Enforce canonical class names.
|
|
2592
2592
|
* @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/rules/enforce-canonical-classes.md
|
|
@@ -2813,7 +2813,7 @@ interface ESLintSchema {
|
|
|
2813
2813
|
* Enforce the use of baseline features
|
|
2814
2814
|
* @see https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md
|
|
2815
2815
|
*/
|
|
2816
|
-
'css/use-baseline'?: Linter.RuleEntry<
|
|
2816
|
+
'css/use-baseline'?: Linter.RuleEntry<CssUseBaseline>;
|
|
2817
2817
|
/**
|
|
2818
2818
|
* Require use of layers
|
|
2819
2819
|
* @see https://github.com/eslint/css/blob/main/docs/rules/use-layers.md
|
|
@@ -4740,7 +4740,7 @@ interface ESLintSchema {
|
|
|
4740
4740
|
* Disallow unmodified loop conditions
|
|
4741
4741
|
* @see https://eslint.org/docs/latest/rules/no-unmodified-loop-condition
|
|
4742
4742
|
*/
|
|
4743
|
-
'no-unmodified-loop-condition'?: Linter.RuleEntry<
|
|
4743
|
+
'no-unmodified-loop-condition'?: Linter.RuleEntry<NoUnmodifiedLoopCondition>;
|
|
4744
4744
|
/**
|
|
4745
4745
|
* Disallow ternary operators when simpler alternatives exist
|
|
4746
4746
|
* @see https://eslint.org/docs/latest/rules/no-unneeded-ternary
|
|
@@ -9825,6 +9825,16 @@ interface ESLintSchema {
|
|
|
9825
9825
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-empty-custom-schema.md
|
|
9826
9826
|
*/
|
|
9827
9827
|
'zod-mini/no-empty-custom-schema'?: Linter.RuleEntry<[]>;
|
|
9828
|
+
/**
|
|
9829
|
+
* Disallow deprecated `z.nativeEnum()` in favor of `z.enum()`.
|
|
9830
|
+
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-native-enum.md
|
|
9831
|
+
*/
|
|
9832
|
+
'zod-mini/no-native-enum'?: Linter.RuleEntry<[]>;
|
|
9833
|
+
/**
|
|
9834
|
+
* Disallow deprecated `z.promise()` schemas.
|
|
9835
|
+
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-promise-schema.md
|
|
9836
|
+
*/
|
|
9837
|
+
'zod-mini/no-promise-schema'?: Linter.RuleEntry<[]>;
|
|
9828
9838
|
/**
|
|
9829
9839
|
* Disallow throwing errors directly inside Zod Mini refine callbacks
|
|
9830
9840
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/no-throw-in-refine.md
|
|
@@ -9860,6 +9870,11 @@ interface ESLintSchema {
|
|
|
9860
9870
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/prefer-nullish.md
|
|
9861
9871
|
*/
|
|
9862
9872
|
'zod-mini/prefer-nullish'?: Linter.RuleEntry<[]>;
|
|
9873
|
+
/**
|
|
9874
|
+
* Prefer `z.length(n)` over `z.minLength(n)` and `z.maxLength(n)` with the same value on a string schema
|
|
9875
|
+
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/prefer-string-length-over-min-max.md
|
|
9876
|
+
*/
|
|
9877
|
+
'zod-mini/prefer-string-length-over-min-max'?: Linter.RuleEntry<[]>;
|
|
9863
9878
|
/**
|
|
9864
9879
|
* Prefer `z.tuple()` over a length-constrained `z.array()` so the length is preserved in the inferred type.
|
|
9865
9880
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod-mini/docs/rules/prefer-tuple-over-array-length.md
|
|
@@ -10046,6 +10061,11 @@ interface ESLintSchema {
|
|
|
10046
10061
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-strict-object.md
|
|
10047
10062
|
*/
|
|
10048
10063
|
'zod/prefer-strict-object'?: Linter.RuleEntry<[]>;
|
|
10064
|
+
/**
|
|
10065
|
+
* Prefer `.length(n)` over `.min(n).max(n)` with the same value on a string schema
|
|
10066
|
+
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-string-length-over-min-max.md
|
|
10067
|
+
*/
|
|
10068
|
+
'zod/prefer-string-length-over-min-max'?: Linter.RuleEntry<[]>;
|
|
10049
10069
|
/**
|
|
10050
10070
|
* Enforce `z.string().trim()` to prevent accidental leading/trailing whitespace
|
|
10051
10071
|
* @see https://github.com/marcalexiei/eslint-zod/blob/HEAD/plugins/eslint-plugin-zod/docs/rules/prefer-string-schema-with-trim.md
|
|
@@ -10250,7 +10270,7 @@ type HtmlEslintReactNoInvalidAttrValue = [] | [{
|
|
|
10250
10270
|
}[];
|
|
10251
10271
|
}];
|
|
10252
10272
|
// ----- @html-eslint/react/use-baseline -----
|
|
10253
|
-
type
|
|
10273
|
+
type HtmlEslintReactUseBaseline = [] | [{
|
|
10254
10274
|
available?: (("widely" | "newly") | number);
|
|
10255
10275
|
}];
|
|
10256
10276
|
// ----- @html-eslint/require-attrs -----
|
|
@@ -10289,7 +10309,7 @@ type HtmlEslintSortAttrs = [] | [{
|
|
|
10289
10309
|
})[];
|
|
10290
10310
|
}];
|
|
10291
10311
|
// ----- @html-eslint/use-baseline -----
|
|
10292
|
-
type
|
|
10312
|
+
type HtmlEslintUseBaseline = [] | [{
|
|
10293
10313
|
available?: (("widely" | "newly") | number);
|
|
10294
10314
|
}];
|
|
10295
10315
|
// ----- @stylistic/array-bracket-newline -----
|
|
@@ -12775,7 +12795,7 @@ type AstroSortAttributes = [] | [{
|
|
|
12775
12795
|
order?: ("asc" | "desc");
|
|
12776
12796
|
}];
|
|
12777
12797
|
// ----- baseline-js/use-baseline -----
|
|
12778
|
-
type
|
|
12798
|
+
type BaselineJsUseBaseline = [] | [{
|
|
12779
12799
|
baseline?: (("widely" | "newly") | number);
|
|
12780
12800
|
available?: (("widely" | "newly") | number);
|
|
12781
12801
|
ignoreFeatures?: string[];
|
|
@@ -15854,7 +15874,7 @@ type CssSelectorComplexity = [] | [{
|
|
|
15854
15874
|
disallowAttributeMatchers?: string[];
|
|
15855
15875
|
}];
|
|
15856
15876
|
// ----- css/use-baseline -----
|
|
15857
|
-
type
|
|
15877
|
+
type CssUseBaseline = [] | [{
|
|
15858
15878
|
available?: (("widely" | "newly") | number);
|
|
15859
15879
|
allowAtRules?: ("position-try" | "keyframes" | "layer" | "charset" | "container" | "counter-style" | "view-transition" | "custom-media" | "font-face" | "font-palette-values" | "font-feature-values" | "function" | "import" | "media" | "namespace" | "page" | "property" | "scope" | "starting-style" | "supports")[];
|
|
15860
15880
|
allowFunctions?: ("abs" | "sign" | "anchor" | "anchor-size" | "attr" | "calc" | "calc-size" | "shape" | "rect" | "color" | "color-mix" | "conic-gradient" | "repeating-conic-gradient" | "contrast-color" | "round" | "superellipse" | "counter" | "counters" | "cross-fade" | "cubic-bezier" | "var" | "dynamic-range-limit-mix" | "element" | "exp" | "hypot" | "log" | "pow" | "sqrt" | "blur" | "brightness" | "contrast" | "drop-shadow" | "grayscale" | "hue-rotate" | "invert" | "opacity" | "saturate" | "sepia" | "filter" | "fit-content" | "url" | "type" | "linear-gradient" | "radial-gradient" | "repeating-linear-gradient" | "repeating-radial-gradient" | "hsl" | "hwb" | "if" | "image" | "image-set" | "lab" | "lch" | "light-dark" | "clamp" | "max" | "min" | "ray" | "oklab" | "oklch" | "paint" | "path" | "progress" | "random" | "xywh" | "rgb" | "mod" | "rem" | "env" | "circle" | "ellipse" | "inset" | "polygon" | "sibling-count" | "sibling-index" | "steps" | "matrix" | "rotate" | "scale" | "scaleX" | "scaleY" | "skew" | "skewX" | "skewY" | "translate" | "translateX" | "translateY" | "matrix3d" | "perspective" | "rotate3d" | "rotateX" | "rotateY" | "rotateZ" | "scale3d" | "scaleZ" | "translate3d" | "translateZ" | "acos" | "asin" | "atan" | "atan2" | "cos" | "sin" | "tan" | "cross-origin" | "integrity" | "referrer-policy")[];
|
|
@@ -18088,6 +18108,10 @@ type NoUnderscoreDangle = [] | [{
|
|
|
18088
18108
|
allowInArrayDestructuring?: boolean;
|
|
18089
18109
|
allowInObjectDestructuring?: boolean;
|
|
18090
18110
|
}];
|
|
18111
|
+
// ----- no-unmodified-loop-condition -----
|
|
18112
|
+
type NoUnmodifiedLoopCondition = [] | [{
|
|
18113
|
+
checkConditionalExpressions?: boolean;
|
|
18114
|
+
}];
|
|
18091
18115
|
// ----- no-unneeded-ternary -----
|
|
18092
18116
|
type NoUnneededTernary = [] | [{
|
|
18093
18117
|
defaultAssignment?: boolean;
|
|
@@ -133,7 +133,7 @@ interface VueOptions extends ConfigWithOverrides<ConfigRules> {
|
|
|
133
133
|
/**
|
|
134
134
|
* Enforce a consistent style for destructuring props.
|
|
135
135
|
*
|
|
136
|
-
* @default '
|
|
136
|
+
* @default 'only-when-assigned'
|
|
137
137
|
*
|
|
138
138
|
* @see [vue/define-props-destructuring: `destructure` option](https://eslint.vuejs.org/rules/define-props-destructuring#options)
|
|
139
139
|
*/
|
|
@@ -222,15 +222,16 @@ interface VueOptions extends ConfigWithOverrides<ConfigRules> {
|
|
|
222
222
|
* @see [vue/v-for-delimiter-style](https://eslint.vuejs.org/rules/v-for-delimiter-style)
|
|
223
223
|
*/
|
|
224
224
|
vForDelimiterStyle?: RuleOptions<'vue/v-for-delimiter-style'>;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
225
|
+
/**
|
|
226
|
+
* Enforce a consistent handler style in `v-on` directives.
|
|
227
|
+
*
|
|
228
|
+
* **Important:** The `'inline'` option works reliably, but this rule has [known issues](https://github.com/vuejs/eslint-plugin-vue/issues/2571) and other options may not work as expected.
|
|
229
|
+
*
|
|
230
|
+
* @default 'inline'
|
|
231
|
+
*
|
|
232
|
+
* @see [vue/v-on-handler-style](https://eslint.vuejs.org/rules/v-on-handler-style)
|
|
233
|
+
*/
|
|
234
|
+
vOnHandlerStyle?: RuleOptions<'vue/v-on-handler-style'>;
|
|
234
235
|
}
|
|
235
236
|
//#endregion
|
|
236
237
|
export type { VueOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shayanthenerd/eslint-config",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.2",
|
|
4
4
|
"description": "A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"@eslint-react/eslint-plugin": "5.18.6",
|
|
60
60
|
"@eslint/css": "1.4.0",
|
|
61
61
|
"@eslint/markdown": "8.0.3",
|
|
62
|
-
"@html-eslint/eslint-plugin": "0.
|
|
63
|
-
"@html-eslint/eslint-plugin-react": "0.
|
|
64
|
-
"@next/eslint-plugin-next": "16.3.
|
|
62
|
+
"@html-eslint/eslint-plugin": "0.65.0",
|
|
63
|
+
"@html-eslint/eslint-plugin-react": "0.65.0",
|
|
64
|
+
"@next/eslint-plugin-next": "16.3.2",
|
|
65
65
|
"@nuxt/eslint-plugin": "1.17.0",
|
|
66
66
|
"@stylistic/eslint-plugin": "5.10.0",
|
|
67
67
|
"@vitest/eslint-plugin": "1.6.27",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"eslint-plugin-astro": "3.1.0",
|
|
73
73
|
"eslint-plugin-baseline-js": "0.7.1",
|
|
74
74
|
"eslint-plugin-better-tailwindcss": "4.7.0",
|
|
75
|
-
"eslint-plugin-cypress": "7.0.
|
|
75
|
+
"eslint-plugin-cypress": "7.0.1",
|
|
76
76
|
"eslint-plugin-import-x": "4.17.1",
|
|
77
77
|
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
78
78
|
"eslint-plugin-n": "18.3.0",
|
|
@@ -80,28 +80,28 @@
|
|
|
80
80
|
"eslint-plugin-perfectionist": "5.10.1",
|
|
81
81
|
"eslint-plugin-playwright": "2.11.0",
|
|
82
82
|
"eslint-plugin-promise": "7.3.0",
|
|
83
|
-
"eslint-plugin-storybook": "10.5.
|
|
83
|
+
"eslint-plugin-storybook": "10.5.10",
|
|
84
84
|
"eslint-plugin-unicorn": "73.0.0",
|
|
85
85
|
"eslint-plugin-vue": "10.10.0",
|
|
86
86
|
"eslint-plugin-vuejs-accessibility": "2.6.0",
|
|
87
|
-
"eslint-plugin-zod": "4.
|
|
88
|
-
"eslint-plugin-zod-mini": "1.
|
|
87
|
+
"eslint-plugin-zod": "4.10.0",
|
|
88
|
+
"eslint-plugin-zod-mini": "1.7.0",
|
|
89
89
|
"globals": "17.11.0",
|
|
90
90
|
"local-pkg": "1.2.1",
|
|
91
|
-
"nuxt-link-checker": "5.
|
|
91
|
+
"nuxt-link-checker": "5.3.0",
|
|
92
92
|
"tailwind-csstree": "0.3.3",
|
|
93
|
-
"typescript-eslint": "8.
|
|
93
|
+
"typescript-eslint": "8.68.0"
|
|
94
94
|
},
|
|
95
95
|
"devDependencies": {
|
|
96
96
|
"@arethetypeswrong/cli": "0.18.5",
|
|
97
|
-
"@eslint/config-inspector": "3.
|
|
97
|
+
"@eslint/config-inspector": "3.3.0",
|
|
98
98
|
"@types/eslint-plugin-jsx-a11y": "6.10.1",
|
|
99
|
-
"@types/node": "26.
|
|
100
|
-
"eslint": "10.
|
|
99
|
+
"@types/node": "26.3.0",
|
|
100
|
+
"eslint": "10.9.1",
|
|
101
101
|
"eslint-typegen": "2.3.1",
|
|
102
102
|
"nano-staged": "1.0.2",
|
|
103
103
|
"prettier": "3.9.6",
|
|
104
|
-
"publint": "0.3.
|
|
104
|
+
"publint": "0.3.24",
|
|
105
105
|
"serve": "14.2.6",
|
|
106
106
|
"simple-git-hooks": "2.13.1",
|
|
107
107
|
"ts-morph": "28.0.0",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"unplugin-unused": "0.6.0"
|
|
111
111
|
},
|
|
112
112
|
"peerDependencies": {
|
|
113
|
-
"eslint": "^10.
|
|
113
|
+
"eslint": "^10.9.0"
|
|
114
114
|
},
|
|
115
115
|
"engines": {
|
|
116
116
|
"node": "^20.19.0 || ^22.13.0 || ^24.0.0 || ^26.0.0"
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
"devEngines": {
|
|
119
119
|
"packageManager": {
|
|
120
120
|
"name": "pnpm",
|
|
121
|
-
"version": "11.
|
|
121
|
+
"version": "11.23.0",
|
|
122
122
|
"onFail": "warn"
|
|
123
123
|
},
|
|
124
124
|
"runtime": {
|