diff --git a/.eslintrc.cjs b/.eslintrc.cjs index ff19098fc..db02c16a7 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -19,13 +19,14 @@ module.exports = { "plugin:unicorn/recommended", ], plugins: [ - "prettier-internal-rules", + "@stylistic/js", + "@typescript-eslint", "import", "n", + "prettier-internal-rules", "regexp", - "unicorn", - "@typescript-eslint", "simple-import-sort", + "unicorn", ], rules: { "arrow-body-style": ["error", "as-needed"], @@ -50,7 +51,6 @@ module.exports = { // `!foo === bar` and `!foo !== bar` 'BinaryExpression[operator=/^[!=]==$/] > UnaryExpression.left[operator="!"]', ], - "no-return-await": "error", "no-unneeded-ternary": "error", "no-useless-return": "error", "no-unused-expressions": [ @@ -102,13 +102,6 @@ module.exports = { "prefer-object-spread": "error", "prefer-rest-params": "error", "prefer-spread": "error", - quotes: [ - "error", - "double", - { - avoidEscape: true, - }, - ], "require-await": "error", "symbol-description": "error", yoda: [ @@ -127,6 +120,14 @@ module.exports = { // @typescript-eslint/eslint-plugin "@typescript-eslint/prefer-ts-expect-error": "error", + "@stylistic/js/quotes": [ + "error", + "double", + { + avoidEscape: true, + }, + ], + // eslint-plugin-import "import/extensions": ["error", "ignorePackages"], "import/no-extraneous-dependencies": [ @@ -287,6 +288,15 @@ module.exports = { }, plugins: ["jest"], rules: { + "@stylistic/js/quotes": [ + "error", + "double", + { + avoidEscape: true, + allowTemplateLiterals: true, + }, + ], + "jest/valid-expect": [ "error", { @@ -340,17 +350,6 @@ module.exports = { ], }, }, - { - files: ["src/cli/*/*.js"], - rules: { - "no-restricted-modules": [ - "error", - { - patterns: ["../../"], - }, - ], - }, - }, { files: "src/language-js/needs-parens.js", rules: { diff --git a/package.json b/package.json index 220851d93..5b3491005 100644 --- a/package.json +++ b/package.json @@ -108,6 +108,7 @@ "devDependencies": { "@babel/generator": "7.23.6", "@glimmer/reference": "0.87.1", + "@stylistic/eslint-plugin-js": "1.5.3", "@types/estree": "1.0.5", "@types/file-entry-cache": "5.0.4", "@types/find-cache-dir": "3.2.1", diff --git a/yarn.lock b/yarn.lock index cfb2f0826..f9fb592d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1734,6 +1734,20 @@ __metadata: languageName: node linkType: hard +"@stylistic/eslint-plugin-js@npm:1.5.3": + version: 1.5.3 + resolution: "@stylistic/eslint-plugin-js@npm:1.5.3" + dependencies: + acorn: "npm:^8.11.3" + escape-string-regexp: "npm:^4.0.0" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + peerDependencies: + eslint: ">=8.40.0" + checksum: 453c594a04a0e3e30b5767e59f1c6ec414a333f3c51fdd924c872118beaaf04b8018cf833cebf750bbaa8a0f67f98f9ad61136c83dfb1d71febf950130853a6a + languageName: node + linkType: hard + "@types/babel__core@npm:^7.1.14": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -2100,7 +2114,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:8.11.3, acorn@npm:^8.9.0": +"acorn@npm:8.11.3, acorn@npm:^8.11.3, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -7287,6 +7301,7 @@ __metadata: "@iarna/toml": "npm:2.2.5" "@prettier/is-es5-identifier-name": "npm:0.2.0" "@prettier/parse-srcset": "npm:3.1.0" + "@stylistic/eslint-plugin-js": "npm:1.5.3" "@types/estree": "npm:1.0.5" "@types/file-entry-cache": "npm:5.0.4" "@types/find-cache-dir": "npm:3.2.1"