module.exports = { env: { browser: true, commonjs: true, es6: false, }, extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"], parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: 8, sourceType: "module", ecmaFeatures: { experimentalObjectRestSpread: true, }, }, plugins: ["@typescript-eslint"], ignorePatterns: ['NetscriptDefinitions.d.ts', '*.js'], rules: { "@typescript-eslint/array-type": ["error", { "default": "array-simple" }], "@typescript-eslint/ban-ts-comment": ["off"], "@typescript-eslint/explicit-member-accessibility": ["off"], "@typescript-eslint/explicit-module-boundary-types": ["off"], "@typescript-eslint/no-non-null-assertion": ["off"], "@typescript-eslint/no-use-before-define": ["off"], "@typescript-eslint/no-parameter-properties": ["off"], "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" } ], "@typescript-eslint/ban-ts-ignore": ["off"], "@typescript-eslint/no-empty-function": ["off"], "no-return-await": "error", "require-await": "error", "no-async-promise-executor": "error", "no-constant-condition": ["off"] }, overrides: [ { // enable the rule specifically for TypeScript files files: ["*.ts", "*.tsx"], rules: { "@typescript-eslint/explicit-function-return-type": ["error"], "@typescript-eslint/explicit-module-boundary-types": ["error"], }, }, { // TypeScript configuration files: ["**/*.ts", "**/*.tsx"], parser: "@typescript-eslint/parser", plugins: ["@typescript-eslint"], extends: ["plugin:@typescript-eslint/recommended"], rules: { "lines-between-class-members": "off", "no-empty-pattern": "off", "no-useless-constructor": [ "off", // Valid for typescript due to property ctor shorthand ], "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/ban-ts-ignore": "off", "@typescript-eslint/camelcase": "off", "@typescript-eslint/explicit-function-return-type": [ "error", { allowExpressions: true, }, ], "@typescript-eslint/member-delimiter-style": [ "error", { multiline: { delimiter: "semi", requireLast: true, }, singleline: { delimiter: "semi", requireLast: false, }, }, ], "@typescript-eslint/member-ordering": [ "error", { default: [ "signature", "static-field", "instance-field", "abstract-field", "constructor", "instance-method", "abstract-method", "static-method", ], }, ], "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-use-before-define": "off", }, }, ], }