diff --git a/eslint.config.mjs b/eslint.config.mjs index f174c32091..b6d59ca58d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,6 +4,7 @@ import tsParser from '@typescript-eslint/parser' import path from 'node:path' import { fileURLToPath } from 'node:url' import js from '@eslint/js' +import stylistic from '@stylistic/eslint-plugin' import { FlatCompat } from '@eslint/eslintrc' const __filename = fileURLToPath(import.meta.url) @@ -18,7 +19,8 @@ export default [ ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'), { plugins: { - '@typescript-eslint': typescriptEslint + '@typescript-eslint': typescriptEslint, + '@stylistic': stylistic }, languageOptions: { @@ -42,7 +44,7 @@ export default [ } ], - 'linebreak-style': ['error', 'windows'], + '@stylistic/linebreak-style': ['error', 'windows'], quotes: ['error', 'single'], semi: ['error', 'never'] } diff --git a/package-lock.json b/package-lock.json index f50dd37b68..a96f29a725 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@octokit/plugin-paginate-rest": "^13.1.1", "@octokit/plugin-rest-endpoint-methods": "^16.0.0", "@octokit/types": "^14.1.0", + "@stylistic/eslint-plugin": "^5.2.2", "@swc/jest": "^0.2.39", "@types/cli-progress": "^3.11.6", "@types/fs-extra": "^11.0.4", @@ -2491,6 +2492,50 @@ "@sinonjs/commons": "^3.0.1" } }, + "node_modules/@stylistic/eslint-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.2.2.tgz", + "integrity": "sha512-bE2DUjruqXlHYP3Q2Gpqiuj2bHq7/88FnuaS0FjeGGLCy+X6a07bGVuwtiOYnPSLHR6jmx5Bwdv+j7l8H+G97A==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/types": "^8.37.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@swc/core": { "version": "1.11.24", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.24.tgz", diff --git a/package.json b/package.json index 334c1875a5..f9fafdaee9 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "@octokit/plugin-paginate-rest": "^13.1.1", "@octokit/plugin-rest-endpoint-methods": "^16.0.0", "@octokit/types": "^14.1.0", + "@stylistic/eslint-plugin": "^5.2.2", "@swc/jest": "^0.2.39", "@types/cli-progress": "^3.11.6", "@types/fs-extra": "^11.0.4",