Skip to content

Commit 2e8bda4

Browse files
babu-chcamc314
andauthored
feat(linter/vue): implement no-dupe-keys rule (#23350)
Implements `vue/no-dupe-keys`. Part of #11440. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Cameron Clark <cameron.clark@hey.com>
1 parent ba3e2e0 commit 2e8bda4

7 files changed

Lines changed: 2446 additions & 1 deletion

File tree

apps/oxlint/src-js/package/config.generated.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,6 +1651,7 @@ export interface DummyRuleMap {
16511651
"vue/no-deprecated-model-definition"?: RuleNoConfig | [AllowWarnDeny, NoDeprecatedModelDefinitionConfig];
16521652
"vue/no-deprecated-props-default-this"?: RuleNoConfig;
16531653
"vue/no-deprecated-vue-config-keycodes"?: RuleNoConfig;
1654+
"vue/no-dupe-keys"?: RuleNoConfig | [AllowWarnDeny, NoDupeKeysConfig];
16541655
"vue/no-export-in-script-setup"?: RuleNoConfig;
16551656
"vue/no-expose-after-await"?: RuleNoConfig;
16561657
"vue/no-import-compiler-macros"?: RuleNoConfig;
@@ -6043,6 +6044,13 @@ export interface NoDeprecatedModelDefinitionConfig {
60436044
*/
60446045
allowVue3Compat?: boolean;
60456046
}
6047+
export interface NoDupeKeysConfig {
6048+
/**
6049+
* Additional group names to search for duplicate keys in, on top of the
6050+
* built-in `props`, `computed`, `data`, `methods` and `setup` groups.
6051+
*/
6052+
groups?: string[];
6053+
}
60466054
export interface NoReservedComponentNames {
60476055
/**
60486056
* Disallow Vue 3 built-in component names (e.g. `Teleport`, `Suspense`).

crates/oxc_linter/src/generated/rule_runner_impls.rs

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/oxc_linter/src/generated/rules_enum.rs

Lines changed: 31 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/oxc_linter/src/rules.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,7 @@ pub(crate) mod vue {
863863
pub mod no_deprecated_model_definition;
864864
pub mod no_deprecated_props_default_this;
865865
pub mod no_deprecated_vue_config_keycodes;
866+
pub mod no_dupe_keys;
866867
pub mod no_export_in_script_setup;
867868
pub mod no_expose_after_await;
868869
pub mod no_import_compiler_macros;

0 commit comments

Comments
 (0)