// ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". { "env": { "jest": true, "node": true }, "root": true, "plugins": [ "@typescript-eslint", "import", "jest", "sonarjs" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2018, "sourceType": "module", "project": "./tsconfig.json" }, "extends": [ "plugin:import/typescript", "plugin:prettier/recommended", "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:jest/recommended", "plugin:sonarjs/recommended" ], "settings": { "import/parsers": { "@typescript-eslint/parser": [ ".ts", ".tsx" ] }, "import/resolver": { "node": {}, "typescript": { "project": "./tsconfig.json", "alwaysTryTypes": true } } }, "ignorePatterns": [ "*.js", "*.d.ts", "node_modules/", "*.generated.ts", "coverage", "!.projenrc.ts", "!projenrc/**/*.ts" ], "rules": { "@typescript-eslint/no-require-imports": [ "error" ], "import/no-extraneous-dependencies": [ "error", { "devDependencies": [ "**/test/**", "**/build-tools/**", "src/**/__tests__/**/*", "src/**/__mocks__/**/*", "src/**/*.test.ts", "src/**/*.spec.ts", ".projenrc.ts", "projenrc/**/*.ts" ], "optionalDependencies": false, "peerDependencies": true } ], "import/no-unresolved": "off", "import/order": [ "warn", { "groups": [ "builtin", "external" ], "alphabetize": { "order": "asc", "caseInsensitive": true } } ], "no-duplicate-imports": [ "error" ], "no-shadow": [ "off" ], "@typescript-eslint/no-shadow": [ "error" ], "key-spacing": [ "error" ], "no-multiple-empty-lines": [ "error" ], "@typescript-eslint/no-floating-promises": [ "error" ], "no-return-await": [ "off" ], "@typescript-eslint/return-await": [ "error" ], "no-trailing-spaces": [ "error" ], "dot-notation": [ "error" ], "no-bitwise": [ "error" ], "@typescript-eslint/member-ordering": [ "error", { "default": [ "public-static-field", "public-static-method", "protected-static-field", "protected-static-method", "private-static-field", "private-static-method", "field", "constructor", "method" ] } ], "no-console": [ "warn", { "allow": [ "debug", "info", "warn", "error" ] } ], "import/namespace": "off", "sonarjs/no-redundant-jump": "off", "sonarjs/no-small-switch": "warn", "@typescript-eslint/explicit-function-return-type": [ "warn", { "allowExpressions": true, "allowTypedFunctionExpressions": true, "allowHigherOrderFunctions": true, "allowDirectConstAssertionInArrowFunctions": true, "allowConciseArrowFunctionExpressionsStartingWithVoid": true } ], "@typescript-eslint/no-unused-vars": [ "warn", { "ignoreRestSiblings": true } ] }, "overrides": [ { "files": [ "*.js", "*.jsx" ], "rules": { "import/no-unresolved": "error", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-var-requires": "off" } }, { "files": [ ".projenrc.ts" ], "rules": { "@typescript-eslint/no-require-imports": "off", "import/no-extraneous-dependencies": "off" } } ] }