module.exports = { root: true, env: { browser: true, es6: true, node: true, mocha: true, }, globals: { BigInt: true, }, parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: 10, project: "./tsconfig.json", }, plugins: ["@typescript-eslint", "eslint-plugin-import", "eslint-plugin-node", "prettier"], extends: [ "eslint:recommended", "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", "plugin:@typescript-eslint/recommended", ], rules: { "prettier/prettier": ["error", {}], "constructor-super": "off", "@typescript-eslint/await-thenable": "error", "@typescript-eslint/explicit-function-return-type": ["off"], "@typescript-eslint/func-call-spacing": "error", "@typescript-eslint/member-ordering": "error", "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-unused-vars": [ "error", { varsIgnorePattern: "^_", }, ], "@typescript-eslint/ban-ts-comment": "warn", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/semi": "error", "@typescript-eslint/type-annotation-spacing": "error", "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/explicit-member-accessibility": ["error", {accessibility: "no-public"}], "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/no-unsafe-return": "off", "import/no-extraneous-dependencies": [ "error", { devDependencies: false, optionalDependencies: false, peerDependencies: false, }, ], "func-call-spacing": "off", "import/no-duplicates": "off", "node/no-deprecated-api": "error", "new-parens": "error", "no-caller": "error", "no-bitwise": "off", "no-cond-assign": "error", "no-consecutive-blank-lines": 0, "no-console": "warn", "no-var": "error", "object-curly-spacing": ["error", "never"], "object-literal-sort-keys": 0, "no-prototype-builtins": 0, "prefer-const": "error", quotes: ["error", "double"], semi: "off", }, settings: { "import/core-modules": ["node:child_process", "node:crypto", "node:fs", "node:os", "node:path", "node:util"], }, overrides: [ { files: ["**/test/**/*.ts"], rules: { "import/no-extraneous-dependencies": "off", "@typescript-eslint/no-explicit-any": "off", }, }, { files: ["*.ts", "*.mts", "*.cts", "*.tsx"], rules: { "@typescript-eslint/explicit-function-return-type": [ "error", { allowExpressions: true, }, ], }, }, ], };