diff --git a/bun.lockb b/bun.lockb index 7bc33819..3ab6aa54 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 8ca377ec..f42f10c5 100644 --- a/package.json +++ b/package.json @@ -18,17 +18,20 @@ "prepare": "husky" }, "devDependencies": { + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.9.1", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/bun": "^1.0.2", "@typescript-eslint/eslint-plugin": "^8.0.0", "@typescript-eslint/parser": "^8.0.0", - "eslint": "8.57.0", + "eslint": "9.9.1", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-markdown": "^5.0.0", "eslint-plugin-mdx": "^3.0.0", "eslint-plugin-simple-import-sort": "^12.0.0", "eslint-plugin-tsdoc": "^0.3.0", + "globals": "^15.9.0", "husky": "^9.0.0", "lint-staged": "^15.0.0", "prettier": "^3.0.0", diff --git a/packages/bot/.eslintrc.yml b/packages/bot/.eslintrc.yml deleted file mode 100644 index 322d06c8..00000000 --- a/packages/bot/.eslintrc.yml +++ /dev/null @@ -1,26 +0,0 @@ -env: - node: true - es2021: true -extends: - - 'eslint:recommended' - - 'plugin:@typescript-eslint/strict-type-checked' - - 'plugin:@typescript-eslint/stylistic-type-checked' - - 'prettier' -parser: '@typescript-eslint/parser' -parserOptions: - sourceType: module - project: true -plugins: - - '@typescript-eslint' - - 'markdown' - - eslint-plugin-tsdoc -rules: - 'max-params': 'error' - 'tsdoc/syntax': 'warn' - '@typescript-eslint/restrict-template-expressions': - - 'error' - - allowNumber: true -overrides: - - files: ['**/*.md'] - processor: 'markdown/markdown' -root: true diff --git a/packages/bot/eslint.config.mjs b/packages/bot/eslint.config.mjs new file mode 100644 index 00000000..24100136 --- /dev/null +++ b/packages/bot/eslint.config.mjs @@ -0,0 +1,63 @@ +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import markdown from 'eslint-plugin-markdown'; +import tsdoc from 'eslint-plugin-tsdoc'; +import globals from 'globals'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [ + ...compat.extends( + 'eslint:recommended', + 'plugin:@typescript-eslint/strict-type-checked', + 'plugin:@typescript-eslint/stylistic-type-checked', + 'prettier' + ), + { + plugins: { + '@typescript-eslint': typescriptEslint, + markdown, + tsdoc + }, + + languageOptions: { + globals: { + ...globals.node + }, + + parser: tsParser, + ecmaVersion: 5, + sourceType: 'module', + + parserOptions: { + project: true + } + }, + + rules: { + 'max-params': 'error', + 'tsdoc/syntax': 'warn', + + '@typescript-eslint/restrict-template-expressions': [ + 'error', + { + allowNumber: true + } + ] + } + }, + { + files: ['**/*.md'], + processor: 'markdown/markdown' + } +]; diff --git a/packages/docs/.eslintrc.yml b/packages/docs/.eslintrc.yml deleted file mode 100644 index 47368ec2..00000000 --- a/packages/docs/.eslintrc.yml +++ /dev/null @@ -1,21 +0,0 @@ -env: - browser: true - node: true - es2021: true -extends: - - 'prettier' - - 'eslint:recommended' - - 'plugin:mdx/recommended' - - 'plugin:@typescript-eslint/recommended' - - 'plugin:react/recommended' - - 'plugin:mdx/recommended' -plugins: - - '@typescript-eslint' - - 'react' -rules: - 'max-params': 'error' -settings: - 'mdx/code-blocks': true - react: - version: 'detect' -root: true diff --git a/packages/docs/eslint.config.mjs b/packages/docs/eslint.config.mjs new file mode 100644 index 00000000..acdc9fe5 --- /dev/null +++ b/packages/docs/eslint.config.mjs @@ -0,0 +1,48 @@ +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import react from "eslint-plugin-react"; +import globals from "globals"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [...compat.extends( + "prettier", + "eslint:recommended", + "plugin:mdx/recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:mdx/recommended", +), { + plugins: { + "@typescript-eslint": typescriptEslint, + react, + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + + settings: { + "mdx/code-blocks": true, + + react: { + version: "detect", + }, + }, + + rules: { + "max-params": "error", + }, +}]; \ No newline at end of file diff --git a/packages/docs/package.json b/packages/docs/package.json index eadef4c9..2f966cb0 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -9,7 +9,7 @@ "scripts": { "dev": "gatsby develop", "build": "gatsby build", - "lint": "eslint --ignore-path .gitignore \"./{src,pages}/**/*.{js,ts,jsx,tsx,md,mdx}\"", + "lint": "eslint \"./{src,pages}/**/*.{js,ts,jsx,tsx,md,mdx}\"", "format": "prettier --write \"./{src,pages}/**/*.{js,ts,jsx,tsx,md,mdx}\"" }, "dependencies": {