Skip to content

Instantly share code, notes, and snippets.

@AllySummers
Last active February 24, 2022 07:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AllySummers/3e7dbc93c1295e225d2077d73309ea61 to your computer and use it in GitHub Desktop.
Save AllySummers/3e7dbc93c1295e225d2077d73309ea61 to your computer and use it in GitHub Desktop.
{
"extends": [
"plugin:@nrwl/nx/react",
"../.eslintrc.json"
],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"parserOptions": {
"project": ["app/tsconfig.*?.json"]
},
"rules": {
"react/jsx-no-useless-fragment": ["off"]
}
},
{
"files": ["*.ts", "*.tsx"],
"rules": {}
},
{
"files": ["*.js", "*.jsx"],
"rules": {}
}
]
}
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nrwl/nx", "jest-dom", "testing-library", "react", "jest"],
"extends": ["plugin:import/recommended", "plugin:import/typescript"],
"settings": {
"import/resolver": {
"typescript": {
"alwaystryTypes": true,
"project": "app/tsconfig.*?.json"
}
},
"import/extensions": [".js", ".jsx", ".ts", ".tsx"],
"react": {
"pragma": "React",
"fragment": "Fragment",
"version": "detect"
},
"formComponents": [
"form",
"Form"
],
"linkComponents": [
{
"name": "Link",
"linkAttribute": "to"
}
],
"jest": {
"version": 27
}
},
"env": {
"jest/globals": true
},
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {
"@nrwl/nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nrwl/nx/typescript"],
"rules": {
"@typescript-eslint/no-explicit-any": ["off"],
"quotes": "off",
"@typescript-eslint/quotes": ["warn", "single"],
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"@typescript-eslint/consistent-type-imports": [
"warn",
{
"prefer": "type-imports"
}
],
"@typescript-eslint/adjacent-overload-signatures": ["warn"],
"@typescript-eslint/array-type": ["warn", { "default": "generic" }],
"@typescript-eslint/ban-ts-comment": ["warn"],
"@typescript-eslint/class-literal-property-style": ["warn"],
"@typescript-eslint/consistent-indexed-object-style": [
"warn",
"record"
],
"@typescript-eslint/consistent-type-assertions": [
"warn",
{
"assertionStyle": "as",
"objectLiteralTypeAssertions": "allow-as-parameter"
}
],
"@typescript-eslint/consistent-type-definitions": ["warn", "interface"],
"@typescript-eslint/member-delimiter-style": [
"warn",
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
}
}
],
"@typescript-eslint/member-ordering": ["warn"],
"@typescript-eslint/method-signature-style": ["warn", "property"],
"@typescript-eslint/naming-convention": [
"warn",
{
"format": ["camelCase", "PascalCase", "UPPER_CASE"],
"selector": "default",
"modifiers": ["requiresQuotes", "destructured"]
}
],
"@typescript-eslint/no-extra-non-null-assertion": ["warn"],
"@typescript-eslint/no-inferrable-types": ["warn"],
"@typescript-eslint/no-non-null-asserted-optional-chain": ["warn"],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": ["warn"],
"@typescript-eslint/no-unnecessary-type-arguments": ["warn"],
"@typescript-eslint/no-unnecessary-type-constraint": ["warn"],
"@typescript-eslint/no-unnecessary-type-assertion": ["warn"],
"@typescript-eslint/non-nullable-type-assertion-style": ["warn"],
"@typescript-eslint/prefer-as-const": ["warn"],
"@typescript-eslint/prefer-nullish-coalescing": ["warn"],
"@typescript-eslint/prefer-optional-chain": ["warn"],
"@typescript-eslint/prefer-reduce-type-parameter": ["warn"],
"@typescript-eslint/sort-type-union-intersection-members": ["warn"],
"@typescript-eslint/type-annotation-spacing": ["warn"],
"@typescript-eslint/unified-signatures": ["warn"],
"@typescript-eslint/no-confusing-non-null-assertion": ["warn"],
"brace-style": "off",
"@typescript-eslint/brace-style": [
"error",
"1tbs",
{ "allowSingleLine": true }
],
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": ["warn"],
"dot-notation": "off",
"@typescript-eslint/dot-notation": ["error"],
"func-call-spacing": "off",
"@typescript-eslint/func-call-spacing": ["error"],
"keyword-spacing": "off",
"@typescript-eslint/keyword-spacing": ["error"],
"lines-between-class-members": "off",
"@typescript-eslint/lines-between-class-members": [
"warn",
{ "exceptAfterOverload": true }
],
"no-array-constructor": "off",
"@typescript-eslint/no-array-constructor": ["error"],
"no-dupe-class-members": "off",
"@typescript-eslint/no-dupe-class-members": ["error"],
"no-empty-function": "off",
"@typescript-eslint/no-empty-function": ["off"],
"no-extra-parens": "off",
"@typescript-eslint/no-extra-parens": ["error"],
"no-extra-semi": "off",
"@typescript-eslint/no-extra-semi": ["error"],
"no-implied-eval": "off",
"@typescript-eslint/no-implied-eval": ["error"],
"no-invalid-this": "off",
"@typescript-eslint/no-invalid-this": ["error"],
"no-loss-of-precision": "off",
"@typescript-eslint/no-loss-of-precision": ["error"],
"no-magic-numbers": "off",
"no-throw-literal": "off",
"@typescript-eslint/no-throw-literal": ["error"],
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": ["error"],
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": ["error", {
"functions": false
}],
"no-useless-constructor": "off",
"@typescript-eslint/no-useless-constructor": ["error"],
"object-curly-spacing": "off",
"@typescript-eslint/object-curly-spacing": ["warn", "always"],
"semi": "off",
"@typescript-eslint/semi": ["warn"],
"require-await": "off",
"@typescript-eslint/require-await": ["error"],
"space-before-function-paren": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/space-before-function-paren": [
"error",
{
"anonymous": "never",
"named": "never",
"asyncArrow": "always"
}
],
"space-infix-ops": "off",
"@typescript-eslint/space-infix-ops": ["error", { "int32Hint": false }],
"jest/consistent-test-it": ["warn", { "fn": "it" }],
"jest/expect-expect": ["warn", {
"assertFunctionNames": [
"expect",
"expectMultipleRoles",
"expectMultipleText"
]
}],
"jest/no-alias-methods": "warn",
"jest/no-deprecated-functions": "error",
"jest/no-conditional-expect": "error",
"jest/no-done-callback": "error",
"jest/no-duplicate-hooks": "error",
"jest/no-export": "error",
"jest/no-focused-tests": "error",
"jest/no-identical-title": "error",
"jest/no-if": "error",
"jest/no-jasmine-globals": "error",
"jest/no-mocks-import": "error",
"jest/no-test-prefixes": "error",
"jest/no-test-return-statement": "warn",
"jest/prefer-called-with": "warn",
"jest/prefer-hooks-on-top": "warn",
"jest/prefer-spy-on": "error",
"jest/prefer-strict-equal": "warn",
"jest/prefer-to-be": "warn",
"jest/prefer-to-contain": "warn",
"jest/prefer-to-have-length": "warn",
"jest/prefer-todo": "warn",
"jest/require-hook": "warn",
"jest/require-to-throw-message": "error",
"jest/require-top-level-describe": "warn",
"jest/valid-describe-callback": "error",
"jest/valid-expect": "error",
"jest/valid-expect-in-promise": "error",
"jest/valid-title": "warn",
"react/boolean-prop-naming": "warn",
"react/button-has-type": "warn",
"react/default-props-match-prop-types": "error",
"react/function-component-definition": "warn",
"react/no-access-state-in-setstate": "error",
"react/no-children-prop": "error",
"react/no-danger": "error",
"react/no-danger-with-children": "error",
"react/no-deprecated": "error",
"react/no-did-mount-set-state": "error",
"react/no-did-update-set-state": "error",
"react/no-direct-mutation-state": "error",
"react/no-find-dom-node": "error",
"react/no-is-mounted": "error",
"react/no-namespace": "error",
"react/no-redundant-should-component-update": "error",
"react/no-render-return-value": "error",
"react/no-string-refs": "error",
"react/no-this-in-sfc": "error",
"react/no-typos": "error",
"react/no-unescaped-entities": "error",
"react/no-unknown-property": "error",
"react/no-unsafe": "error",
"react/no-unstable-nested-components": ["error", {
"allowAsProps": false
}],
"react/no-unused-prop-types": "warn",
"react/no-unused-state": "warn",
"react/no-will-update-set-state": "error",
"react/prefer-es6-class": ["error", "always"],
"react/prefer-stateless-function": "warn",
"react/prop-types": "error",
"react/require-render-return": "error",
"react/self-closing-comp": "warn",
"react/void-dom-elements-no-children": "error",
"react/jsx-boolean-value": "warn",
"react/jsx-child-element-spacing": "warn",
"react/jsx-closing-bracket-location": ["warn", {
"selfClosing": "line-aligned",
"nonEmpty": "after-props"
}],
"react/jsx-closing-tag-location": "warn",
"react/jsx-curly-brace-presence": ["warn", "never"],
"react/jsx-curly-newline": ["warn", {
"singleline": "consistent",
"multiline": "consistent"
}],
"react/jsx-equals-spacing": ["warn", "never"],
"react/jsx-first-prop-new-line": ["warn", "multiline-multiprop"],
"react/jsx-fragments": ["warn", "syntax"],
"react/jsx-handler-names": ["warn", {
"eventHandlerPrefix": "handle",
"eventHandlerPropPrefix": "on",
"checkLocalVariables": false,
"checkInlineFunction": false
}],
"react/jsx-indent": ["warn", 2, {
"checkAttributes": true,
"indentLogicalExpressions": true
}],
"react/jsx-indent-props": ["warn", {
"indentMode": 2,
"ignoreTernaryOperator": false
}],
"react/jsx-key": "warn",
"react/jsx-max-props-per-line": ["warn", {
"maximum": {
"single": 2,
"multi": 1
}
}],
"react/jsx-no-bind": "error",
"react/jsx-no-constructed-context-values": "error",
"react/jsx-no-duplicate-props": "error",
"react/jsx-no-script-url": "error",
"react/jsx-no-target-blank": "error",
"react/jsx-no-undef": "error",
"react/jsx-no-useless-fragment": ["warn", {
"allowExpressions": true
}],
"react/jsx-pascal-case": "warn",
"react/jsx-props-no-multi-spaces": "warn",
"react/jsx-tag-spacing": ["warn", {
"closingSlash": "never",
"beforeSelfClosing": "always",
"afterOpening": "never",
"beforeClosing": "allow"
}]
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nrwl/nx/javascript"],
"rules": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment