Skip to content
This repository was archived by the owner on Mar 7, 2025. It is now read-only.

Commit 19cce1d

Browse files
committed
Update vue rules
1 parent 3c3b5fe commit 19cce1d

8 files changed

+145
-4
lines changed

src/rules/vue/block-order.d.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import type { RuleConfig } from '../rule-config';
2+
3+
/**
4+
* Option.
5+
*/
6+
export interface BlockOrderOption {
7+
order?: (string | string[])[];
8+
}
9+
10+
/**
11+
* Options.
12+
*/
13+
export type BlockOrderOptions = [BlockOrderOption?];
14+
15+
/**
16+
* Enforce order of component top-level elements.
17+
*
18+
* @see [block-order](https://eslint.vuejs.org/rules/block-order.html)
19+
*/
20+
export type BlockOrderRuleConfig = RuleConfig<BlockOrderOptions>;
21+
22+
/**
23+
* Enforce order of component top-level elements.
24+
*
25+
* @see [block-order](https://eslint.vuejs.org/rules/block-order.html)
26+
*/
27+
export interface BlockOrderRule {
28+
/**
29+
* Enforce order of component top-level elements.
30+
*
31+
* @see [block-order](https://eslint.vuejs.org/rules/block-order.html)
32+
*/
33+
'vue/block-order': BlockOrderRuleConfig;
34+
}

src/rules/vue/component-tags-order.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ export type ComponentTagsOrderOptions = [ComponentTagsOrderOption?];
1515
/**
1616
* Enforce order of component top-level elements.
1717
*
18+
* @deprecated
19+
*
1820
* @see [component-tags-order](https://eslint.vuejs.org/rules/component-tags-order.html)
1921
*/
2022
export type ComponentTagsOrderRuleConfig =
@@ -23,12 +25,16 @@ export type ComponentTagsOrderRuleConfig =
2325
/**
2426
* Enforce order of component top-level elements.
2527
*
28+
* @deprecated
29+
*
2630
* @see [component-tags-order](https://eslint.vuejs.org/rules/component-tags-order.html)
2731
*/
2832
export interface ComponentTagsOrderRule {
2933
/**
3034
* Enforce order of component top-level elements.
3135
*
36+
* @deprecated
37+
*
3238
* @see [component-tags-order](https://eslint.vuejs.org/rules/component-tags-order.html)
3339
*/
3440
'vue/component-tags-order': ComponentTagsOrderRuleConfig;

src/rules/vue/index.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { ArrowSpacingRule } from './arrow-spacing';
55
import type { AttributeHyphenationRule } from './attribute-hyphenation';
66
import type { AttributesOrderRule } from './attributes-order';
77
import type { BlockLangRule } from './block-lang';
8+
import type { BlockOrderRule } from './block-order';
89
import type { BlockSpacingRule } from './block-spacing';
910
import type { BlockTagNewlineRule } from './block-tag-newline';
1011
import type { BraceStyleRule } from './brace-style';
@@ -69,6 +70,7 @@ import type { NoDeprecatedFilterRule } from './no-deprecated-filter';
6970
import type { NoDeprecatedFunctionalTemplateRule } from './no-deprecated-functional-template';
7071
import type { NoDeprecatedHtmlElementIsRule } from './no-deprecated-html-element-is';
7172
import type { NoDeprecatedInlineTemplateRule } from './no-deprecated-inline-template';
73+
import type { NoDeprecatedModelDefinitionRule } from './no-deprecated-model-definition';
7274
import type { NoDeprecatedPropsDefaultThisRule } from './no-deprecated-props-default-this';
7375
import type { NoDeprecatedRouterLinkTagPropRule } from './no-deprecated-router-link-tag-prop';
7476
import type { NoDeprecatedScopeAttributeRule } from './no-deprecated-scope-attribute';
@@ -137,6 +139,7 @@ import type { NoUnusedPropertiesRule } from './no-unused-properties';
137139
import type { NoUnusedRefsRule } from './no-unused-refs';
138140
import type { NoUnusedVarsRule } from './no-unused-vars';
139141
import type { NoUseComputedPropertyLikeMethodRule } from './no-use-computed-property-like-method';
142+
import type { NoUseVElseWithVForRule } from './no-use-v-else-with-v-for';
140143
import type { NoUseVIfWithVForRule } from './no-use-v-if-with-v-for';
141144
import type { NoUselessConcatRule } from './no-useless-concat';
142145
import type { NoUselessMustachesRule } from './no-useless-mustaches';
@@ -181,6 +184,7 @@ import type { RequirePropTypesRule } from './require-prop-types';
181184
import type { RequireRenderReturnRule } from './require-render-return';
182185
import type { RequireSlotsAsFunctionsRule } from './require-slots-as-functions';
183186
import type { RequireToggleInsideTransitionRule } from './require-toggle-inside-transition';
187+
import type { RequireTypedObjectPropRule } from './require-typed-object-prop';
184188
import type { RequireTypedRefRule } from './require-typed-ref';
185189
import type { RequireVForKeyRule } from './require-v-for-key';
186190
import type { RequireValidDefaultPropRule } from './require-valid-default-prop';
@@ -239,6 +243,7 @@ export type VueRules = ArrayBracketNewlineRule &
239243
AttributeHyphenationRule &
240244
AttributesOrderRule &
241245
BlockLangRule &
246+
BlockOrderRule &
242247
BlockSpacingRule &
243248
BlockTagNewlineRule &
244249
BraceStyleRule &
@@ -303,6 +308,7 @@ export type VueRules = ArrayBracketNewlineRule &
303308
NoDeprecatedFunctionalTemplateRule &
304309
NoDeprecatedHtmlElementIsRule &
305310
NoDeprecatedInlineTemplateRule &
311+
NoDeprecatedModelDefinitionRule &
306312
NoDeprecatedPropsDefaultThisRule &
307313
NoDeprecatedRouterLinkTagPropRule &
308314
NoDeprecatedScopeAttributeRule &
@@ -371,6 +377,7 @@ export type VueRules = ArrayBracketNewlineRule &
371377
NoUnusedRefsRule &
372378
NoUnusedVarsRule &
373379
NoUseComputedPropertyLikeMethodRule &
380+
NoUseVElseWithVForRule &
374381
NoUseVIfWithVForRule &
375382
NoUselessConcatRule &
376383
NoUselessMustachesRule &
@@ -415,6 +422,7 @@ export type VueRules = ArrayBracketNewlineRule &
415422
RequireRenderReturnRule &
416423
RequireSlotsAsFunctionsRule &
417424
RequireToggleInsideTransitionRule &
425+
RequireTypedObjectPropRule &
418426
RequireTypedRefRule &
419427
RequireVForKeyRule &
420428
RequireValidDefaultPropRule &
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import type { RuleConfig } from '../rule-config';
2+
3+
/**
4+
* Option.
5+
*/
6+
export interface NoDeprecatedModelDefinitionOption {
7+
allowVue3Compat?: boolean;
8+
}
9+
10+
/**
11+
* Options.
12+
*/
13+
export type NoDeprecatedModelDefinitionOptions = [
14+
NoDeprecatedModelDefinitionOption?,
15+
];
16+
17+
/**
18+
* Disallow deprecated `model` definition (in Vue.js 3.0.0+).
19+
*
20+
* @see [no-deprecated-model-definition](https://eslint.vuejs.org/rules/no-deprecated-model-definition.html)
21+
*/
22+
export type NoDeprecatedModelDefinitionRuleConfig =
23+
RuleConfig<NoDeprecatedModelDefinitionOptions>;
24+
25+
/**
26+
* Disallow deprecated `model` definition (in Vue.js 3.0.0+).
27+
*
28+
* @see [no-deprecated-model-definition](https://eslint.vuejs.org/rules/no-deprecated-model-definition.html)
29+
*/
30+
export interface NoDeprecatedModelDefinitionRule {
31+
/**
32+
* Disallow deprecated `model` definition (in Vue.js 3.0.0+).
33+
*
34+
* @see [no-deprecated-model-definition](https://eslint.vuejs.org/rules/no-deprecated-model-definition.html)
35+
*/
36+
'vue/no-deprecated-model-definition': NoDeprecatedModelDefinitionRuleConfig;
37+
}

src/rules/vue/no-empty-pattern.d.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11
import type { RuleConfig } from '../rule-config';
22

3+
/**
4+
* Option.
5+
*/
6+
export interface NoEmptyPatternOption {
7+
allowObjectPatternsAsParameters?: boolean;
8+
}
9+
10+
/**
11+
* Options.
12+
*/
13+
export type NoEmptyPatternOptions = [NoEmptyPatternOption?];
14+
315
/**
416
* Disallow empty destructuring patterns in `<template>`.
517
*
618
* @see [no-empty-pattern](https://eslint.vuejs.org/rules/no-empty-pattern.html)
719
*/
8-
export type NoEmptyPatternRuleConfig = RuleConfig<[]>;
20+
export type NoEmptyPatternRuleConfig = RuleConfig<NoEmptyPatternOptions>;
921

1022
/**
1123
* Disallow empty destructuring patterns in `<template>`.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { RuleConfig } from '../rule-config';
2+
3+
/**
4+
* Disallow using `v-else-if`/`v-else` on the same element as `v-for`.
5+
*
6+
* @see [no-use-v-else-with-v-for](https://eslint.vuejs.org/rules/no-use-v-else-with-v-for.html)
7+
*/
8+
export type NoUseVElseWithVForRuleConfig = RuleConfig<[]>;
9+
10+
/**
11+
* Disallow using `v-else-if`/`v-else` on the same element as `v-for`.
12+
*
13+
* @see [no-use-v-else-with-v-for](https://eslint.vuejs.org/rules/no-use-v-else-with-v-for.html)
14+
*/
15+
export interface NoUseVElseWithVForRule {
16+
/**
17+
* Disallow using `v-else-if`/`v-else` on the same element as `v-for`.
18+
*
19+
* @see [no-use-v-else-with-v-for](https://eslint.vuejs.org/rules/no-use-v-else-with-v-for.html)
20+
*/
21+
'vue/no-use-v-else-with-v-for': NoUseVElseWithVForRuleConfig;
22+
}

src/rules/vue/no-use-v-if-with-v-for.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ export interface NoUseVIfWithVForOption {
1313
export type NoUseVIfWithVForOptions = [NoUseVIfWithVForOption?];
1414

1515
/**
16-
* Disallow use v-if on the same element as v-for.
16+
* Disallow using `v-if` on the same element as `v-for`.
1717
*
1818
* @see [no-use-v-if-with-v-for](https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html)
1919
*/
2020
export type NoUseVIfWithVForRuleConfig = RuleConfig<NoUseVIfWithVForOptions>;
2121

2222
/**
23-
* Disallow use v-if on the same element as v-for.
23+
* Disallow using `v-if` on the same element as `v-for`.
2424
*
2525
* @see [no-use-v-if-with-v-for](https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html)
2626
*/
2727
export interface NoUseVIfWithVForRule {
2828
/**
29-
* Disallow use v-if on the same element as v-for.
29+
* Disallow using `v-if` on the same element as `v-for`.
3030
*
3131
* @see [no-use-v-if-with-v-for](https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html)
3232
*/
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { RuleConfig } from '../rule-config';
2+
3+
/**
4+
* Enforce adding type declarations to object props.
5+
*
6+
* @see [require-typed-object-prop](https://eslint.vuejs.org/rules/require-typed-object-prop.html)
7+
*/
8+
export type RequireTypedObjectPropRuleConfig = RuleConfig<[]>;
9+
10+
/**
11+
* Enforce adding type declarations to object props.
12+
*
13+
* @see [require-typed-object-prop](https://eslint.vuejs.org/rules/require-typed-object-prop.html)
14+
*/
15+
export interface RequireTypedObjectPropRule {
16+
/**
17+
* Enforce adding type declarations to object props.
18+
*
19+
* @see [require-typed-object-prop](https://eslint.vuejs.org/rules/require-typed-object-prop.html)
20+
*/
21+
'vue/require-typed-object-prop': RequireTypedObjectPropRuleConfig;
22+
}

0 commit comments

Comments
 (0)