Created
February 27, 2024 20:22
-
-
Save asherccohen/a4bce360b21b6e086064a3f8d62af3a9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "root": true, | |
| "plugins": [ | |
| "@nx", | |
| "prettier", | |
| "prefer-arrow", | |
| "simple-import-sort", | |
| "fp-ts-strict", | |
| "fp" | |
| ], | |
| "overrides": [ | |
| { | |
| "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], | |
| "parserOptions": {}, | |
| "rules": { | |
| "import/order": "off", | |
| "import/no-extraneous-dependencies": [ | |
| "off", | |
| { | |
| "devDependencies": [ | |
| "**/*.stories.tsx", | |
| "**/*.test.ts{,x}", | |
| "src/setupTests.ts", | |
| "src/mocks/*", | |
| "cypress/plugins/index.ts", | |
| "cypress/support/commands.ts" | |
| ] | |
| } | |
| ], | |
| "no-param-reassign": [ | |
| "error", | |
| { | |
| "props": true, | |
| "ignorePropertyModificationsFor": ["state", "acc"] | |
| } | |
| ], | |
| "simple-import-sort/imports": "error", | |
| "simple-import-sort/exports": "off", | |
| "@typescript-eslint/explicit-function-return-type": "off", | |
| "@typescript-eslint/explicit-module-boundary-types": "off", | |
| "id-blacklist": ["error", "any", "number", "string", "boolean"], | |
| "import/no-internal-modules": "off", | |
| "no-plusplus": [ | |
| "error", | |
| { | |
| "allowForLoopAfterthoughts": true | |
| } | |
| ], | |
| "no-redeclare": [ | |
| "error", | |
| { | |
| "builtinGlobals": true | |
| } | |
| ], | |
| "prefer-arrow/prefer-arrow-functions": [ | |
| "warn", | |
| { | |
| "disallowPrototype": true, | |
| "singleReturnOnly": true, | |
| "classPropertiesAllowed": false | |
| } | |
| ], | |
| "prettier/prettier": "warn", | |
| "quote-props": ["error", "as-needed"], | |
| "react/button-has-type": ["warn"], | |
| "react/jsx-key": "error", | |
| "react/jsx-props-no-spreading": [ | |
| "error", | |
| { | |
| "html": "ignore", | |
| "custom": "ignore", | |
| "exceptions": [""] | |
| } | |
| ], | |
| "react/state-in-constructor": "off", | |
| "react/jsx-uses-react": "off", | |
| "react/react-in-jsx-scope": "off", | |
| "react/jsx-no-useless-fragment": "off", | |
| "react/no-array-index-key": "error", | |
| "react/no-unstable-nested-components": [ | |
| "error", | |
| { | |
| "allowAsProps": true, | |
| "customValidators": [] | |
| } | |
| ], | |
| "valid-typeof": "off", | |
| "@typescript-eslint/no-floating-promises": "error", | |
| "@nx/enforce-module-boundaries": [ | |
| "error", | |
| { | |
| "enforceBuildableLibDependency": true, | |
| "allow": [], | |
| "depConstraints": [ | |
| { | |
| "sourceTag": "*", | |
| "onlyDependOnLibsWithTags": ["*"] | |
| }, | |
| { | |
| "sourceTag": "frontend", | |
| "bannedExternalImports": [ | |
| "lodash", | |
| "@radix-ui/*", | |
| "react-hook-form", | |
| "react-table" | |
| ] | |
| } | |
| ] | |
| } | |
| ], | |
| "no-console": ["warn"], | |
| "fp-ts-strict/record-lookup": ["off"], | |
| "fp-ts-strict/option-over-null": ["off"], | |
| "fp-ts-strict/option-over-undefined": ["off"], | |
| "fp/no-arguments": "off", | |
| "fp/no-class": "warn", | |
| "fp/no-delete": "off", | |
| "fp/no-events": "off", | |
| "fp/no-get-set": "off", | |
| "fp/no-let": "off", | |
| "fp/no-loops": "off", | |
| "fp/no-mutating-assign": "off", | |
| "fp/no-mutating-methods": "off", | |
| "fp/no-mutation": "off", | |
| "fp/no-nil": "off", | |
| "fp/no-proxy": "off", | |
| "fp/no-rest-parameters": "off", | |
| "fp/no-this": "off", | |
| "fp/no-throw": "off", | |
| "fp/no-unused-expression": "off", | |
| "fp/no-valueof-field": "off", | |
| "no-var": "off", | |
| // "fp-ts-strict/record-lookup": ["off"], | |
| // "fp-ts-strict/option-over-null": ["off"], | |
| // "fp-ts-strict/option-over-undefined": ["off"], | |
| // "fp/no-arguments": "error", | |
| // "fp/no-class": "warn", | |
| // "fp/no-delete": "error", | |
| // "fp/no-events": "error", | |
| // "fp/no-get-set": "error", | |
| // "fp/no-let": "off", | |
| // "fp/no-loops": "warn", | |
| // "fp/no-mutating-assign": "error", | |
| // "fp/no-mutating-methods": "warn", | |
| // "fp/no-mutation": "off", | |
| // "fp/no-nil": "off", | |
| // "fp/no-proxy": "error", | |
| // "fp/no-rest-parameters": "off", | |
| // "fp/no-this": "error", | |
| // "fp/no-throw": "error", | |
| // "fp/no-unused-expression": "off", | |
| // "fp/no-valueof-field": "error", | |
| // "no-var": "error" | |
| "no-magic-numbers": [ | |
| "off", | |
| { | |
| "enforceConst": true | |
| } | |
| ], | |
| "camelcase": "warn", | |
| "complexity": ["error", 40], | |
| "consistent-return": ["error"], | |
| "curly": "error", | |
| "default-case": "error", | |
| "no-alert": "error", | |
| "no-bitwise": "error", | |
| "no-eq-null": "error", | |
| "no-negated-condition": "error", | |
| "no-nested-ternary": "error" | |
| } | |
| }, | |
| { | |
| "files": ["*.ts", "*.tsx"], | |
| "extends": ["plugin:@nx/typescript"], | |
| "rules": { | |
| "@typescript-eslint/no-unused-vars": [ | |
| "off", | |
| { | |
| "args": "none" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "files": ["*.js", "*.jsx"], | |
| "extends": ["plugin:@nx/javascript"], | |
| "rules": {} | |
| }, | |
| { | |
| "files": ["*-slice.ts", "*-slice.tsx"], | |
| "rules": { | |
| "fp/no-nil": "off", | |
| "fp/no-unused-expression": "off", | |
| "fp/no-let": "off", | |
| "fp/no-mutating-methods": "off" | |
| } | |
| }, | |
| { | |
| "files": [ | |
| "**/__tests__/**/*.[jt]s?(x)", | |
| "**/?(*.)+(spec|test).[jt]s?(x)" | |
| ], | |
| "extends": [ | |
| "plugin:testing-library/react", | |
| "plugin:jest-dom/recommended" | |
| ], | |
| "rules": { | |
| "testing-library/await-async-query": "error", | |
| "testing-library/no-await-sync-query": "error", | |
| "testing-library/no-debugging-utils": "warn", | |
| "testing-library/no-dom-import": "off", | |
| "jest-dom/prefer-checked": "error", | |
| "jest-dom/prefer-enabled-disabled": "error", | |
| "jest-dom/prefer-required": "error", | |
| "jest-dom/prefer-to-have-attribute": "error", | |
| "fp/no-loops": "off", | |
| "fp/no-throw": "off" | |
| } | |
| }, | |
| { | |
| "files": ["**/*/handlers.ts", "**/*/seed.ts"], | |
| "rules": { | |
| "fp-ts-strict/array-head": ["off"], | |
| "fp-ts-strict/array-lookup": ["off"], | |
| "fp/no-loops": "off", | |
| "fp/no-throw": "off" | |
| } | |
| }, | |
| { | |
| "files": ["**/*/generated.ts"], | |
| "rules": { | |
| "fp-ts-strict/array-head": ["off"], | |
| "fp-ts-strict/array-lookup": ["off"], | |
| "fp-ts-strict/record-lookup": ["off"], | |
| "fp-ts-strict/option-over-null": ["off"], | |
| "fp-ts-strict/option-over-undefined": ["off"], | |
| "fp/no-arguments": "off", | |
| "fp/no-class": "off", | |
| "fp/no-delete": "off", | |
| "fp/no-events": "off", | |
| "fp/no-get-set": "off", | |
| "fp/no-let": "off", | |
| "fp/no-loops": "off", | |
| "fp/no-mutating-assign": "off", | |
| "fp/no-mutating-methods": "off", | |
| "fp/no-mutation": "off", | |
| "fp/no-nil": "off", | |
| "fp/no-proxy": "off", | |
| "fp/no-rest-parameters": "off", | |
| "fp/no-this": "off", | |
| "fp/no-throw": "off", | |
| "fp/no-unused-expression": "off", | |
| "fp/no-valueof-field": "off", | |
| "no-var": "off" | |
| } | |
| }, | |
| { | |
| "files": ["**/?(*.)+(spec|test).[jt]s?(x)"], | |
| "rules": { | |
| "fp/no-loops": "off", | |
| "fp/no-throw": "off" | |
| } | |
| } | |
| ], | |
| "extends": [ | |
| "plugin:storybook/recommended", | |
| "plugin:prettier/recommended", | |
| "plugin:fp-ts-strict/recommended" | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment