From 947dca96a2d8d9c9b4366c5d73d184eff64d6e37 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Sun, 16 Mar 2025 00:47:45 -0400 Subject: [PATCH] chore: remove eslint.config.js ESLint cannot support our preferred code style for backend without writing custom plugins. On frontend, we already decided ESLint wasn't a good fit several months ago. This commit removes the eslint config to avoid other developer's editors making unwanted whitespace changes. In backend, we use spaces within control structure parens. This really does make the code easier to read. In the future, maybe we'll write our own linter. --- eslint.config.js | 139 ----------------------------------------------- 1 file changed, 139 deletions(-) delete mode 100644 eslint.config.js diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 64ffeb03c..000000000 --- a/eslint.config.js +++ /dev/null @@ -1,139 +0,0 @@ -import js from "@eslint/js"; -import globals from "globals"; - -export default [ - js.configs.recommended, - - { - // Global ignores - ignores: [ - "**/*.min.js", - "**/src/lib/**", - "**/dist/", - "src/backend/src/public/assets/**", - "incubator/**" - ], - }, - { - // Top-level and tools use Node - files: [ - "tools/**/*.js", - ], - languageOptions: { - globals: { - ...globals.node, - } - } - }, - { - // Back end - files: [ - "src/backend/**/*.js", - "mods/**/*.js", - "dev-server.js", - "utils.js", - ], - languageOptions: { - globals: { - ...globals.node, - "kv": true, - "def": true, - "use": true, - "ll":true, - } - } - }, - { - // Front end - files: [ - "src/**/*.js", - ], - ignores: [ - "src/backend/**/*.js", - ], - languageOptions: { - globals: { - ...globals.browser, - ...globals.commonjs, - // Weird false positives - "Buffer": true, - // Puter Common - "puter": true, - "i18n": true, - "html_encode": true, - "html_decode": true, - "isMobile": true, - // Class Registry - "logger": true, - "def": true, - "use": true, - // Libraries - "saveAs": true, // FileSaver - "iro": true, // iro.js color picker - "$": true, // jQuery - "jQuery": true, // jQuery - "fflate": true, // fflate - "_": true, // lodash - "QRCode": true, // qrcode - "io": true, // socket.io - "timeago": true, // timeago - "SelectionArea": true, // viselect - // Puter GUI Globals - "set_menu_item_prop": true, - "determine_active_container_parent": true, - "privacy_aware_path": true, - "api_origin": true, - "auth_token": true, - "logout": true, - "is_email": true, - "select_ctxmenu_item": true, - } - } - }, - { - // Mods - // NOTE: Mods have backend and frontend parts, so this just includes the globals for both. - files: [ - "mods/**/*.js", - ], - languageOptions: { - globals: { - ...globals.node, - "use": true, - "window": true, - "puter": true, - } - } - }, - { - // Tests - files: [ - "**/test/**/*.js", - ], - languageOptions: { - globals: { - ...globals.mocha, - } - } - }, - { - // Phoenix - files: [ - "src/phoenix/**/*.js", - ], - languageOptions: { - globals: { - ...globals.node, - } - } - }, - { - // Global rule settings - rules: { - "no-prototype-builtins": "off", // Complains about any use of hasOwnProperty() - "no-unused-vars": "off", // Temporary, we just have a lot of these - "no-debugger": "warn", - "no-async-promise-executor": "off", // We do this quite often and it's fine - } - }, -];