diff --git a/docs/description/description.json b/docs/description/description.json
index e297bf568..19ce681b6 100644
--- a/docs/description/description.json
+++ b/docs/description/description.json
@@ -13703,6 +13703,12 @@
"description": "Require correct usage of hashbang",
"timeToFix": 5
},
+ {
+ "parameters": [],
+ "patternId": "newline-destructuring_newline",
+ "title": "Newline destructuring: Newline",
+ "timeToFix": 5
+ },
{
"parameters": [
{
diff --git a/docs/multiple-tests/all-patterns-typescript/patterns.xml b/docs/multiple-tests/all-patterns-typescript/patterns.xml
index baa9b8c92..a18ed4de3 100644
--- a/docs/multiple-tests/all-patterns-typescript/patterns.xml
+++ b/docs/multiple-tests/all-patterns-typescript/patterns.xml
@@ -1724,6 +1724,7 @@
+
diff --git a/docs/multiple-tests/all-patterns/patterns.xml b/docs/multiple-tests/all-patterns/patterns.xml
index baa9b8c92..a18ed4de3 100644
--- a/docs/multiple-tests/all-patterns/patterns.xml
+++ b/docs/multiple-tests/all-patterns/patterns.xml
@@ -1724,6 +1724,7 @@
+
diff --git a/docs/multiple-tests/newline-destructuring/patterns.xml b/docs/multiple-tests/newline-destructuring/patterns.xml
new file mode 100644
index 000000000..e2198d7d2
--- /dev/null
+++ b/docs/multiple-tests/newline-destructuring/patterns.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/docs/multiple-tests/newline-destructuring/results.xml b/docs/multiple-tests/newline-destructuring/results.xml
new file mode 100644
index 000000000..28f354391
--- /dev/null
+++ b/docs/multiple-tests/newline-destructuring/results.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/docs/multiple-tests/newline-destructuring/src/.eslintrc.json b/docs/multiple-tests/newline-destructuring/src/.eslintrc.json
new file mode 100644
index 000000000..19db7e534
--- /dev/null
+++ b/docs/multiple-tests/newline-destructuring/src/.eslintrc.json
@@ -0,0 +1,9 @@
+{
+ "parserOptions": {
+ "ecmaVersion": 2020
+ },
+ "plugins": ["newline-destructuring"],
+ "rules": {
+ "newline-destructuring/newline": ["error", { "items": 2 }]
+ }
+}
diff --git a/docs/multiple-tests/newline-destructuring/src/newline-destructuring.js b/docs/multiple-tests/newline-destructuring/src/newline-destructuring.js
new file mode 100644
index 000000000..81f7edec4
--- /dev/null
+++ b/docs/multiple-tests/newline-destructuring/src/newline-destructuring.js
@@ -0,0 +1,2 @@
+const obj = { a: 1, b: 2, c: 3 };
+const { a, b, c } = obj;
diff --git a/docs/patterns.json b/docs/patterns.json
index 4b054a55e..b076e6fda 100644
--- a/docs/patterns.json
+++ b/docs/patterns.json
@@ -13947,6 +13947,13 @@
"parameters": [],
"enabled": false
},
+ {
+ "patternId": "newline-destructuring_newline",
+ "level": "Info",
+ "category": "CodeStyle",
+ "parameters": [],
+ "enabled": false
+ },
{
"patternId": "no-only-tests_no-only-tests",
"level": "Error",
diff --git a/package-lock.json b/package-lock.json
index 0cff88d89..7192d651a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -233,6 +233,7 @@
"eslint-plugin-mocha": "^10.4.3",
"eslint-plugin-monorepo": "^0.3.2",
"eslint-plugin-n": "^17.7.0",
+ "eslint-plugin-newline-destructuring": "^1.2.2",
"eslint-plugin-no-only-tests": "^3.1.0",
"eslint-plugin-no-unsanitized": "^4.0.2",
"eslint-plugin-nuxt": "^4.0.0",
@@ -43390,6 +43391,15 @@
"node": ">=6"
}
},
+ "node_modules/eslint-plugin-newline-destructuring": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-newline-destructuring/-/eslint-plugin-newline-destructuring-1.2.2.tgz",
+ "integrity": "sha512-QfKQpdx+ez2E233B6xSG82+SdkKhxSchTJCjUHjJ2RmMCq+v2IBTaR8wK2pejTBV05p/J1qB8QOOKXQNqWJGSA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "eslint": ">=7.2.0"
+ }
+ },
"node_modules/eslint-plugin-no-only-tests": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz",
diff --git a/package.json b/package.json
index 958d3da79..98f1696f9 100644
--- a/package.json
+++ b/package.json
@@ -290,6 +290,7 @@
"eslint-plugin-mocha": "^10.4.3",
"eslint-plugin-monorepo": "^0.3.2",
"eslint-plugin-n": "^17.7.0",
+ "eslint-plugin-newline-destructuring": "^1.2.2",
"eslint-plugin-no-only-tests": "^3.1.0",
"eslint-plugin-no-unsanitized": "^4.0.2",
"eslint-plugin-nuxt": "^4.0.0",
diff --git a/src/eslintPlugins.ts b/src/eslintPlugins.ts
index 9e6c8a9b2..2572c0501 100644
--- a/src/eslintPlugins.ts
+++ b/src/eslintPlugins.ts
@@ -72,6 +72,7 @@ const packageNames: string[] = [
"eslint-plugin-mocha",
"eslint-plugin-monorepo",
"eslint-plugin-n",
+ "eslint-plugin-newline-destructuring",
"eslint-plugin-no-only-tests",
"eslint-plugin-no-unsanitized",
"eslint-plugin-nuxt",