diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 2c3d6b048..000000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/ot -public/vendor -public/build diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 9c53aacc8..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - root: true, - extends: ['standard'], - env: { - node: true - }, - rules: {} -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..19e738659 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,25 @@ +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 [{ + ignores: ['lib/ot', 'public/vendor', 'public/build'] +}, ...compat.extends('standard'), { + languageOptions: { + globals: { + ...globals.node + } + }, + + rules: {} +}] diff --git a/package.json b/package.json index a85d15041..e2543fb8e 100644 --- a/package.json +++ b/package.json @@ -137,6 +137,8 @@ "url": "https://github.com/hedgedoc/hedgedoc.git" }, "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.19.0", "@hedgedoc/codemirror-5": "5.65.12", "abcjs": "6.4.4", "babel-cli": "6.26.0", @@ -166,6 +168,7 @@ "flowchart.js": "1.18.0", "fork-awesome": "1.2.0", "gist-embed": "2.6.0", + "globals": "^15.14.0", "highlight.js": "10.7.3", "html-webpack-plugin": "4.5.2", "imports-loader": "1.2.0", diff --git a/yarn.lock b/yarn.lock index 68303dc7c..eff3cacdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -293,7 +293,7 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.19.0": +"@eslint/js@npm:9.19.0, @eslint/js@npm:^9.19.0": version: 9.19.0 resolution: "@eslint/js@npm:9.19.0" checksum: 10/d8133a83330676d5f0827713af2e9bbf35530631a93520fb59ead6b827a325c54fdd7ad99f2158f895fb393c47bbc55dfdaa945998a647f3b9230f1d5324a626 @@ -1312,6 +1312,8 @@ __metadata: version: 0.0.0-use.local resolution: "HedgeDoc@workspace:." dependencies: + "@eslint/eslintrc": "npm:^3.2.0" + "@eslint/js": "npm:^9.19.0" "@hedgedoc/codemirror-5": "npm:5.65.12" "@hedgedoc/meta-marked": "npm:14.1.0" "@passport-next/passport-openid": "npm:1.0.0" @@ -1367,6 +1369,7 @@ __metadata: fork-awesome: "npm:1.2.0" formidable: "npm:2.1.2" gist-embed: "npm:2.6.0" + globals: "npm:^15.14.0" graceful-fs: "npm:4.2.11" helmet: "npm:8.0.0" highlight.js: "npm:10.7.3" @@ -7541,7 +7544,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^15.11.0": +"globals@npm:^15.11.0, globals@npm:^15.14.0": version: 15.14.0 resolution: "globals@npm:15.14.0" checksum: 10/e35ffbdbc024d6381efca906f67211a7bbf935db2af8c14a65155785479e28b3e475950e5933bb6b296eed54b6dcd924e25b26dbc8579b1bde9d5d25916e1c5f