Browse Source

[upd] migrate .eslintrc.json to eslint.config.mjs

The migration was done by the following steps, firts prepare the node enviroment
an open a bash in this environment::

    $ make clean nvm.nodejs
    ...
    $ ./manage nvm.bash
    $ which npx
    searxng/.nvm/versions/node/v23.5.0/bin/npx

In this environment the migration command from [1] is started::

    $ npx @eslint/migrate-config .eslintrc.json
    Need to install the following packages:
    @eslint/migrate-config@1.3.5
    Migrating .eslintrc.json

    Wrote new config to ./eslint.config.mjs

    You will need to install the following packages to use the new config:
    - globals
    - @eslint/js
    - @eslint/eslintrc

    You can install them using the following command:

    npm install globals @eslint/js @eslint/eslintrc -D

    The following messages were generated during migration:
    - The 'node' environment is used, so switching sourceType to 'commonjs'.

[1] https://eslint.org/docs/latest/use/configure/migration-guide#migrate-your-config-file

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 5 months ago
parent
commit
0abad23daa

+ 0 - 28
searx/static/themes/simple/.eslintrc.json

@@ -1,28 +0,0 @@
-{
-    "env": {
-        "browser": true,
-        "es2021": true,
-        "node": true
-    },
-    "extends": "eslint:recommended",
-    "parserOptions": {
-        "ecmaVersion": 12
-    },
-    "rules": {
-        "indent": ["error", 2],
-        "keyword-spacing": ["error", { "before": true, "after": true }],
-        "no-trailing-spaces": 2,
-        "space-before-function-paren": ["error", "always"],
-        "space-infix-ops": "error",
-        "comma-spacing": ["error", { "before": false, "after": true }],
-        "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
-        "curly": ["error", "multi-line"],
-        "block-spacing": ["error", "always"],
-        "dot-location": ["error", "property"],
-        "key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
-        "spaced-comment": ["error", "always", {
-            "line": { "markers": ["*package", "!", "/", ",", "="] },
-            "block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] }
-        }]
-    }
-}

+ 68 - 0
searx/static/themes/simple/eslint.config.mjs

@@ -0,0 +1,68 @@
+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("eslint:recommended"), {
+    languageOptions: {
+        globals: {
+            ...globals.browser,
+            ...globals.node,
+        },
+
+        ecmaVersion: 12,
+        sourceType: "commonjs",
+    },
+
+    rules: {
+        indent: ["error", 2],
+
+        "keyword-spacing": ["error", {
+            before: true,
+            after: true,
+        }],
+
+        "no-trailing-spaces": 2,
+        "space-before-function-paren": ["error", "always"],
+        "space-infix-ops": "error",
+
+        "comma-spacing": ["error", {
+            before: false,
+            after: true,
+        }],
+
+        "brace-style": ["error", "1tbs", {
+            allowSingleLine: true,
+        }],
+
+        curly: ["error", "multi-line"],
+        "block-spacing": ["error", "always"],
+        "dot-location": ["error", "property"],
+
+        "key-spacing": ["error", {
+            beforeColon: false,
+            afterColon: true,
+        }],
+
+        "spaced-comment": ["error", "always", {
+            line: {
+                markers: ["*package", "!", "/", ",", "="],
+            },
+
+            block: {
+                balanced: true,
+                markers: ["*package", "!", ",", ":", "::", "flow-include"],
+                exceptions: ["*"],
+            },
+        }],
+    },
+}];

+ 1 - 1
searx/static/themes/simple/gruntfile.js

@@ -35,7 +35,7 @@ module.exports = function (grunt) {
     },
     eslint: {
       options: {
-        overrideConfigFile: '.eslintrc.json',
+        overrideConfigFile: 'eslint.config.mjs',
         failOnError: true,
         fix: grunt.option('fix')
       },