{ "root": true, "env": { "browser": true, "es6": true, "jest": true, "node": true }, "parser": "@babel/eslint-parser", "parserOptions": { "ecmaVersion": 2019, "sourceType": "module", "allowImportExportEverywhere": true }, "ignorePatterns": [ "node_modules", "dist", "public", "*.spec.js", "bundle.js" ], "extends": ["eslint:recommended"], "plugins": ["import", "eslint-plugin-local-rules"], "overrides": [ { "files": ["**/*.svelte"], "extends": "plugin:svelte/recommended", "parser": "svelte-eslint-parser", "parserOptions": { "parser": "@typescript-eslint/parser", "ecmaVersion": 2019, "allowImportExportEverywhere": true } }, { "files": ["**/*.ts"], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "extends": ["eslint:recommended"], "globals": { "NodeJS": true }, "rules": { "no-unused-vars": "off", "local-rules/no-barrel-imports": "error", "local-rules/no-budibase-imports": "error", "local-rules/no-console-error": "error", "@typescript-eslint/no-unused-vars": [ "error", { "varsIgnorePattern": "^_", "argsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_", "ignoreRestSiblings": true } ], "no-redeclare": "off", "@typescript-eslint/no-redeclare": "error", // have to turn this off to allow function overloading in typescript "no-dupe-class-members": "off" } }, { "files": ["**/*.spec.ts"], "parser": "@typescript-eslint/parser", "plugins": ["jest", "@typescript-eslint"], "extends": ["eslint:recommended", "plugin:jest/recommended"], "env": { "jest/globals": true }, "globals": { "NodeJS": true }, "rules": { "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "error", { "varsIgnorePattern": "^_", "argsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_", "ignoreRestSiblings": true } ], "local-rules/no-test-com": "error", "local-rules/email-domain-example-com": "error", "no-console": "warn", // We have a lot of tests that don't have assertions, they use our test // API client that does the assertions for them "jest/expect-expect": "off", // We do this in some tests where the behaviour of internal tables // differs to external, but the API is broadly the same "jest/no-conditional-expect": "off", // have to turn this off to allow function overloading in typescript "no-dupe-class-members": "off", "no-redeclare": "off" } }, { "files": [ "packages/builder/**/*", "packages/client/**/*", "packages/frontend-core/**/*" ], "rules": { "no-console": ["error", { "allow": ["warn", "error", "debug"] }] } } ], "rules": { "no-self-assign": "off", "no-unused-vars": [ "error", { "varsIgnorePattern": "^_", "argsIgnorePattern": "^_", "destructuredArrayIgnorePattern": "^_", "ignoreRestSiblings": true } ], "import/no-relative-packages": "error", "import/export": "error", "import/no-duplicates": "error", "import/newline-after-import": "error" }, "globals": { "GeolocationPositionError": true } }