diff --git a/.eslintrc.json b/.eslintrc.json index f58b171..6d088fc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,24 @@ { "extends": "@digabi/eslint-config", + "rules": { + // Mocha is not used for testing in these packages, but eslint-plugin-mocha is installed into node_modules + // because @digabi/eslint-config snapshot tests require it + // to verify the "all plugins enabled" configuration. + "mocha/handle-done-callback": "off", + "mocha/max-top-level-suites": "off", + "mocha/no-async-describe": "off", + "mocha/no-exclusive-tests": "off", + "mocha/no-exports": "off", + "mocha/no-global-tests": "off", + "mocha/no-identical-title": "off", + "mocha/no-nested-tests": "off", + "mocha/no-pending-tests": "off", + "mocha/no-return-and-callback": "off", + "mocha/no-skipped-tests": "off", + "mocha/no-top-level-hooks": "off", + "mocha/no-empty-description": "off", + "mocha/consistent-spacing-between-blocks": "off" + }, "overrides": [ { "files": ["*.test.ts"], diff --git a/package-lock.json b/package-lock.json index ed5e075..256b7d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "eslint": "^8.45.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", + "eslint-plugin-mocha": "^10.0.0", "eslint-plugin-prettier": "^5.5.3", "eslint-plugin-promise": "^7.2.1", "lerna": "^9.0.0", @@ -8246,6 +8247,24 @@ } } }, + "node_modules/eslint-plugin-mocha": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz", + "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-plugin-prettier": { "version": "5.5.4", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", @@ -8430,6 +8449,35 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -14900,6 +14948,13 @@ "node": ">=8" } }, + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", + "dev": true, + "license": "MIT" + }, "node_modules/ramda": { "version": "0.31.3", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.31.3.tgz", @@ -17927,6 +17982,7 @@ "license": "EUPL-1.2", "devDependencies": { "eslint-plugin-jest": "^29.0.1", + "eslint-plugin-mocha": "^10.0.0", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-promise": "7.2.1", "eslint-plugin-react": "^7.37.5", diff --git a/package.json b/package.json index 5f52ea4..b92d6d6 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "eslint": "^8.45.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", + "eslint-plugin-mocha": "^10.0.0", "eslint-plugin-prettier": "^5.5.3", "eslint-plugin-promise": "^7.2.1", "lerna": "^9.0.0", diff --git a/packages/eslint-config/__tests__/__snapshots__/config-disabled.test.js.snap b/packages/eslint-config/__tests__/__snapshots__/config-disabled.test.js.snap new file mode 100644 index 0000000..189324c --- /dev/null +++ b/packages/eslint-config/__tests__/__snapshots__/config-disabled.test.js.snap @@ -0,0 +1,4643 @@ +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing + +exports[`eslint-config (all plugins disabled) resolved config for test.js 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": null, + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module", + }, + "plugins": [ + "import", + "prettier", + "promise", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "error", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "error", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "error", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "error", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "error", + ], + "no-dupe-class-members": [ + "error", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "error", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "error", + ], + "no-global-assign": [ + "error", + ], + "no-import-assign": [ + "error", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-symbol": [ + "error", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "error", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "error", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "error", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "error", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "error", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "error", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "error", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "error", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "require-await": [ + "error", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + }, +} +`; + +exports[`eslint-config (all plugins disabled) resolved config for test.ts 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": "/@typescript-eslint/parser/dist/index.js", + "parserOptions": { + "ecmaVersion": 2020, + "project": "./tsconfig.json", + "sourceType": "module", + }, + "plugins": [ + "import", + "prettier", + "promise", + "@typescript-eslint", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/await-thenable": [ + "error", + ], + "@typescript-eslint/ban-ts-comment": [ + "error", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-array-constructor": [ + "error", + ], + "@typescript-eslint/no-array-delete": [ + "error", + ], + "@typescript-eslint/no-base-to-string": [ + "error", + ], + "@typescript-eslint/no-duplicate-enum-values": [ + "error", + ], + "@typescript-eslint/no-duplicate-type-constituents": [ + "error", + ], + "@typescript-eslint/no-empty-object-type": [ + "error", + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@typescript-eslint/no-extra-non-null-assertion": [ + "error", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/no-floating-promises": [ + "error", + ], + "@typescript-eslint/no-for-in-array": [ + "error", + ], + "@typescript-eslint/no-implied-eval": [ + "error", + ], + "@typescript-eslint/no-misused-new": [ + "error", + ], + "@typescript-eslint/no-misused-promises": [ + "error", + ], + "@typescript-eslint/no-namespace": [ + "error", + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + "error", + ], + "@typescript-eslint/no-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-redundant-type-constituents": [ + "error", + ], + "@typescript-eslint/no-require-imports": [ + "error", + ], + "@typescript-eslint/no-this-alias": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + "error", + ], + "@typescript-eslint/no-unsafe-argument": [ + "error", + ], + "@typescript-eslint/no-unsafe-assignment": [ + "error", + ], + "@typescript-eslint/no-unsafe-call": [ + "error", + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + "error", + ], + "@typescript-eslint/no-unsafe-enum-comparison": [ + "error", + ], + "@typescript-eslint/no-unsafe-function-type": [ + "error", + ], + "@typescript-eslint/no-unsafe-member-access": [ + "error", + ], + "@typescript-eslint/no-unsafe-return": [ + "error", + ], + "@typescript-eslint/no-unsafe-unary-minus": [ + "error", + ], + "@typescript-eslint/no-unused-expressions": [ + "error", + ], + "@typescript-eslint/no-unused-vars": [ + 0, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-var-requires": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + "error", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/only-throw-error": [ + "error", + ], + "@typescript-eslint/prefer-as-const": [ + "error", + ], + "@typescript-eslint/prefer-namespace-keyword": [ + "error", + ], + "@typescript-eslint/prefer-promise-reject-errors": [ + "error", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/require-await": [ + "error", + ], + "@typescript-eslint/restrict-plus-operands": [ + "error", + ], + "@typescript-eslint/restrict-template-expressions": [ + "error", + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/triple-slash-reference": [ + "error", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "@typescript-eslint/unbound-method": [ + 0, + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "off", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "off", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-array-constructor": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "off", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "off", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "off", + ], + "no-dupe-class-members": [ + "off", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "off", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "off", + ], + "no-global-assign": [ + "error", + ], + "no-implied-eval": [ + "off", + ], + "no-import-assign": [ + "off", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-native-nonconstructor": [ + "off", + ], + "no-new-symbol": [ + "off", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "off", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "off", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "off", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "off", + ], + "no-throw-literal": [ + "off", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "off", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "off", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "off", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-expressions": [ + "off", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + 0, + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-var": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "off", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-const": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-promise-reject-errors": [ + "off", + ], + "prefer-rest-params": [ + "error", + ], + "prefer-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "require-await": [ + "off", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + }, +} +`; + +exports[`eslint-config (all plugins disabled) resolved config for test.tsx 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": "/@typescript-eslint/parser/dist/index.js", + "parserOptions": { + "ecmaVersion": 2020, + "project": "./tsconfig.json", + "sourceType": "module", + }, + "plugins": [ + "import", + "prettier", + "promise", + "@typescript-eslint", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/await-thenable": [ + "error", + ], + "@typescript-eslint/ban-ts-comment": [ + "error", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-array-constructor": [ + "error", + ], + "@typescript-eslint/no-array-delete": [ + "error", + ], + "@typescript-eslint/no-base-to-string": [ + "error", + ], + "@typescript-eslint/no-duplicate-enum-values": [ + "error", + ], + "@typescript-eslint/no-duplicate-type-constituents": [ + "error", + ], + "@typescript-eslint/no-empty-object-type": [ + "error", + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@typescript-eslint/no-extra-non-null-assertion": [ + "error", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/no-floating-promises": [ + "error", + ], + "@typescript-eslint/no-for-in-array": [ + "error", + ], + "@typescript-eslint/no-implied-eval": [ + "error", + ], + "@typescript-eslint/no-misused-new": [ + "error", + ], + "@typescript-eslint/no-misused-promises": [ + "error", + ], + "@typescript-eslint/no-namespace": [ + "error", + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + "error", + ], + "@typescript-eslint/no-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-redundant-type-constituents": [ + "error", + ], + "@typescript-eslint/no-require-imports": [ + "error", + ], + "@typescript-eslint/no-this-alias": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + "error", + ], + "@typescript-eslint/no-unsafe-argument": [ + "error", + ], + "@typescript-eslint/no-unsafe-assignment": [ + "error", + ], + "@typescript-eslint/no-unsafe-call": [ + "error", + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + "error", + ], + "@typescript-eslint/no-unsafe-enum-comparison": [ + "error", + ], + "@typescript-eslint/no-unsafe-function-type": [ + "error", + ], + "@typescript-eslint/no-unsafe-member-access": [ + "error", + ], + "@typescript-eslint/no-unsafe-return": [ + "error", + ], + "@typescript-eslint/no-unsafe-unary-minus": [ + "error", + ], + "@typescript-eslint/no-unused-expressions": [ + "error", + ], + "@typescript-eslint/no-unused-vars": [ + 0, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-var-requires": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + "error", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/only-throw-error": [ + "error", + ], + "@typescript-eslint/prefer-as-const": [ + "error", + ], + "@typescript-eslint/prefer-namespace-keyword": [ + "error", + ], + "@typescript-eslint/prefer-promise-reject-errors": [ + "error", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/require-await": [ + "error", + ], + "@typescript-eslint/restrict-plus-operands": [ + "error", + ], + "@typescript-eslint/restrict-template-expressions": [ + "error", + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/triple-slash-reference": [ + "error", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "@typescript-eslint/unbound-method": [ + 0, + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "off", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "off", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-array-constructor": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "off", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "off", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "off", + ], + "no-dupe-class-members": [ + "off", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "off", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "off", + ], + "no-global-assign": [ + "error", + ], + "no-implied-eval": [ + "off", + ], + "no-import-assign": [ + "off", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-native-nonconstructor": [ + "off", + ], + "no-new-symbol": [ + "off", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "off", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "off", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "off", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "off", + ], + "no-throw-literal": [ + "off", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "off", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "off", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "off", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-expressions": [ + "off", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + 0, + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-var": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "off", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-const": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-promise-reject-errors": [ + "off", + ], + "prefer-rest-params": [ + "error", + ], + "prefer-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "require-await": [ + "off", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + }, +} +`; diff --git a/packages/eslint-config/__tests__/__snapshots__/config-enabled.test.js.snap b/packages/eslint-config/__tests__/__snapshots__/config-enabled.test.js.snap new file mode 100644 index 0000000..5e0591a --- /dev/null +++ b/packages/eslint-config/__tests__/__snapshots__/config-enabled.test.js.snap @@ -0,0 +1,5468 @@ +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing + +exports[`eslint-config (all plugins enabled) resolved config for test.js 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "jest/globals": true, + "mocha": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": null, + "parserOptions": { + "ecmaFeatures": { + "jsx": true, + }, + "ecmaVersion": 2020, + "sourceType": "module", + }, + "plugins": [ + "import", + "react", + "react-hooks", + "prettier", + "jest", + "mocha", + "promise", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "error", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "error", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jest/expect-expect": [ + "error", + { + "assertFunctionNames": [ + "expect*", + ], + }, + ], + "jest/no-alias-methods": [ + "error", + ], + "jest/no-commented-out-tests": [ + "warn", + ], + "jest/no-conditional-expect": [ + "error", + ], + "jest/no-deprecated-functions": [ + "error", + ], + "jest/no-disabled-tests": [ + "warn", + ], + "jest/no-done-callback": [ + "error", + ], + "jest/no-export": [ + "error", + ], + "jest/no-focused-tests": [ + "error", + ], + "jest/no-identical-title": [ + "error", + ], + "jest/no-interpolation-in-snapshots": [ + "error", + ], + "jest/no-jasmine-globals": [ + "error", + ], + "jest/no-mocks-import": [ + "error", + ], + "jest/no-standalone-expect": [ + "error", + ], + "jest/no-test-prefixes": [ + "error", + ], + "jest/prefer-to-be": [ + "error", + ], + "jest/prefer-to-contain": [ + "error", + ], + "jest/prefer-to-have-length": [ + "error", + ], + "jest/valid-describe-callback": [ + "error", + ], + "jest/valid-expect": [ + "error", + ], + "jest/valid-expect-in-promise": [ + "error", + ], + "jest/valid-title": [ + "error", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "mocha/consistent-spacing-between-blocks": [ + "error", + ], + "mocha/handle-done-callback": [ + "error", + ], + "mocha/max-top-level-suites": [ + "error", + { + "limit": 1, + }, + ], + "mocha/no-async-describe": [ + "error", + ], + "mocha/no-empty-description": [ + "error", + ], + "mocha/no-exclusive-tests": [ + "error", + ], + "mocha/no-exports": [ + "error", + ], + "mocha/no-global-tests": [ + "error", + ], + "mocha/no-hooks": [ + "off", + ], + "mocha/no-hooks-for-single-case": [ + 0, + ], + "mocha/no-identical-title": [ + "error", + ], + "mocha/no-mocha-arrows": [ + 0, + ], + "mocha/no-nested-tests": [ + "error", + ], + "mocha/no-pending-tests": [ + "warn", + ], + "mocha/no-return-and-callback": [ + "error", + ], + "mocha/no-return-from-async": [ + "off", + ], + "mocha/no-setup-in-describe": [ + 0, + ], + "mocha/no-sibling-hooks": [ + 0, + ], + "mocha/no-skipped-tests": [ + "warn", + ], + "mocha/no-synchronous-tests": [ + "off", + ], + "mocha/no-top-level-hooks": [ + "warn", + ], + "mocha/prefer-arrow-callback": [ + "off", + ], + "mocha/valid-suite-description": [ + "off", + ], + "mocha/valid-test-description": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "error", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "error", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "error", + ], + "no-dupe-class-members": [ + "error", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "error", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "error", + ], + "no-global-assign": [ + "error", + ], + "no-import-assign": [ + "error", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-symbol": [ + "error", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "error", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "error", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "error", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "error", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "error", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "error", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "error", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + "error", + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "error", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react-hooks/component-hook-factories": [ + "error", + ], + "react-hooks/config": [ + "error", + ], + "react-hooks/error-boundaries": [ + "error", + ], + "react-hooks/exhaustive-deps": [ + "warn", + ], + "react-hooks/gating": [ + "error", + ], + "react-hooks/globals": [ + "error", + ], + "react-hooks/immutability": [ + "error", + ], + "react-hooks/incompatible-library": [ + "warn", + ], + "react-hooks/preserve-manual-memoization": [ + "error", + ], + "react-hooks/purity": [ + "error", + ], + "react-hooks/refs": [ + "error", + ], + "react-hooks/rules-of-hooks": [ + "error", + ], + "react-hooks/set-state-in-effect": [ + "error", + ], + "react-hooks/set-state-in-render": [ + "error", + ], + "react-hooks/static-components": [ + "error", + ], + "react-hooks/unsupported-syntax": [ + "warn", + ], + "react-hooks/use-memo": [ + "error", + ], + "react/display-name": [ + 2, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-key": [ + 2, + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-no-comment-textnodes": [ + 2, + ], + "react/jsx-no-duplicate-props": [ + 2, + ], + "react/jsx-no-target-blank": [ + 2, + ], + "react/jsx-no-undef": [ + 2, + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-uses-react": [ + 2, + ], + "react/jsx-uses-vars": [ + 2, + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "react/no-children-prop": [ + 2, + ], + "react/no-danger-with-children": [ + 2, + ], + "react/no-deprecated": [ + 2, + ], + "react/no-direct-mutation-state": [ + 2, + ], + "react/no-find-dom-node": [ + 2, + ], + "react/no-is-mounted": [ + 2, + ], + "react/no-render-return-value": [ + 2, + ], + "react/no-string-refs": [ + 2, + ], + "react/no-unescaped-entities": [ + 2, + ], + "react/no-unknown-property": [ + 2, + ], + "react/no-unsafe": [ + 0, + ], + "react/prop-types": [ + 0, + ], + "react/react-in-jsx-scope": [ + 2, + ], + "react/require-render-return": [ + 2, + ], + "require-await": [ + "error", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + "react": { + "version": "detect", + }, + }, +} +`; + +exports[`eslint-config (all plugins enabled) resolved config for test.ts 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "jest/globals": true, + "mocha": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": "/@typescript-eslint/parser/dist/index.js", + "parserOptions": { + "ecmaFeatures": { + "jsx": true, + }, + "ecmaVersion": 2020, + "project": "./tsconfig.json", + "sourceType": "module", + }, + "plugins": [ + "import", + "react", + "react-hooks", + "prettier", + "jest", + "mocha", + "promise", + "@typescript-eslint", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/await-thenable": [ + "error", + ], + "@typescript-eslint/ban-ts-comment": [ + "error", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-array-constructor": [ + "error", + ], + "@typescript-eslint/no-array-delete": [ + "error", + ], + "@typescript-eslint/no-base-to-string": [ + "error", + ], + "@typescript-eslint/no-duplicate-enum-values": [ + "error", + ], + "@typescript-eslint/no-duplicate-type-constituents": [ + "error", + ], + "@typescript-eslint/no-empty-object-type": [ + "error", + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@typescript-eslint/no-extra-non-null-assertion": [ + "error", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/no-floating-promises": [ + "error", + ], + "@typescript-eslint/no-for-in-array": [ + "error", + ], + "@typescript-eslint/no-implied-eval": [ + "error", + ], + "@typescript-eslint/no-misused-new": [ + "error", + ], + "@typescript-eslint/no-misused-promises": [ + "error", + ], + "@typescript-eslint/no-namespace": [ + "error", + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + "error", + ], + "@typescript-eslint/no-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-redundant-type-constituents": [ + "error", + ], + "@typescript-eslint/no-require-imports": [ + "error", + ], + "@typescript-eslint/no-this-alias": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + "error", + ], + "@typescript-eslint/no-unsafe-argument": [ + "error", + ], + "@typescript-eslint/no-unsafe-assignment": [ + "error", + ], + "@typescript-eslint/no-unsafe-call": [ + "error", + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + "error", + ], + "@typescript-eslint/no-unsafe-enum-comparison": [ + "error", + ], + "@typescript-eslint/no-unsafe-function-type": [ + "error", + ], + "@typescript-eslint/no-unsafe-member-access": [ + "error", + ], + "@typescript-eslint/no-unsafe-return": [ + "error", + ], + "@typescript-eslint/no-unsafe-unary-minus": [ + "error", + ], + "@typescript-eslint/no-unused-expressions": [ + "error", + ], + "@typescript-eslint/no-unused-vars": [ + 0, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-var-requires": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + "error", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/only-throw-error": [ + "error", + ], + "@typescript-eslint/prefer-as-const": [ + "error", + ], + "@typescript-eslint/prefer-namespace-keyword": [ + "error", + ], + "@typescript-eslint/prefer-promise-reject-errors": [ + "error", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/require-await": [ + "error", + ], + "@typescript-eslint/restrict-plus-operands": [ + "error", + ], + "@typescript-eslint/restrict-template-expressions": [ + "error", + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/triple-slash-reference": [ + "error", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "@typescript-eslint/unbound-method": [ + 0, + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "off", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "off", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jest/expect-expect": [ + "error", + { + "assertFunctionNames": [ + "expect*", + ], + }, + ], + "jest/no-alias-methods": [ + "error", + ], + "jest/no-commented-out-tests": [ + "warn", + ], + "jest/no-conditional-expect": [ + "error", + ], + "jest/no-deprecated-functions": [ + "error", + ], + "jest/no-disabled-tests": [ + "warn", + ], + "jest/no-done-callback": [ + "error", + ], + "jest/no-export": [ + "error", + ], + "jest/no-focused-tests": [ + "error", + ], + "jest/no-identical-title": [ + "error", + ], + "jest/no-interpolation-in-snapshots": [ + "error", + ], + "jest/no-jasmine-globals": [ + "error", + ], + "jest/no-mocks-import": [ + "error", + ], + "jest/no-standalone-expect": [ + "error", + ], + "jest/no-test-prefixes": [ + "error", + ], + "jest/prefer-to-be": [ + "error", + ], + "jest/prefer-to-contain": [ + "error", + ], + "jest/prefer-to-have-length": [ + "error", + ], + "jest/valid-describe-callback": [ + "error", + ], + "jest/valid-expect": [ + "error", + ], + "jest/valid-expect-in-promise": [ + "error", + ], + "jest/valid-title": [ + "error", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "mocha/consistent-spacing-between-blocks": [ + "error", + ], + "mocha/handle-done-callback": [ + "error", + ], + "mocha/max-top-level-suites": [ + "error", + { + "limit": 1, + }, + ], + "mocha/no-async-describe": [ + "error", + ], + "mocha/no-empty-description": [ + "error", + ], + "mocha/no-exclusive-tests": [ + "error", + ], + "mocha/no-exports": [ + "error", + ], + "mocha/no-global-tests": [ + "error", + ], + "mocha/no-hooks": [ + "off", + ], + "mocha/no-hooks-for-single-case": [ + 0, + ], + "mocha/no-identical-title": [ + "error", + ], + "mocha/no-mocha-arrows": [ + 0, + ], + "mocha/no-nested-tests": [ + "error", + ], + "mocha/no-pending-tests": [ + "warn", + ], + "mocha/no-return-and-callback": [ + "error", + ], + "mocha/no-return-from-async": [ + "off", + ], + "mocha/no-setup-in-describe": [ + 0, + ], + "mocha/no-sibling-hooks": [ + 0, + ], + "mocha/no-skipped-tests": [ + "warn", + ], + "mocha/no-synchronous-tests": [ + "off", + ], + "mocha/no-top-level-hooks": [ + "warn", + ], + "mocha/prefer-arrow-callback": [ + "off", + ], + "mocha/valid-suite-description": [ + "off", + ], + "mocha/valid-test-description": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-array-constructor": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "off", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "off", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "off", + ], + "no-dupe-class-members": [ + "off", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "off", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "off", + ], + "no-global-assign": [ + "error", + ], + "no-implied-eval": [ + "off", + ], + "no-import-assign": [ + "off", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-native-nonconstructor": [ + "off", + ], + "no-new-symbol": [ + "off", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "off", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "off", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "off", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "off", + ], + "no-throw-literal": [ + "off", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "off", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "off", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "off", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-expressions": [ + "off", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + 0, + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-var": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "off", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-const": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-promise-reject-errors": [ + "off", + ], + "prefer-rest-params": [ + "error", + ], + "prefer-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react-hooks/component-hook-factories": [ + "error", + ], + "react-hooks/config": [ + "error", + ], + "react-hooks/error-boundaries": [ + "error", + ], + "react-hooks/exhaustive-deps": [ + "warn", + ], + "react-hooks/gating": [ + "error", + ], + "react-hooks/globals": [ + "error", + ], + "react-hooks/immutability": [ + "error", + ], + "react-hooks/incompatible-library": [ + "warn", + ], + "react-hooks/preserve-manual-memoization": [ + "error", + ], + "react-hooks/purity": [ + "error", + ], + "react-hooks/refs": [ + "error", + ], + "react-hooks/rules-of-hooks": [ + "error", + ], + "react-hooks/set-state-in-effect": [ + "error", + ], + "react-hooks/set-state-in-render": [ + "error", + ], + "react-hooks/static-components": [ + "error", + ], + "react-hooks/unsupported-syntax": [ + "warn", + ], + "react-hooks/use-memo": [ + "error", + ], + "react/display-name": [ + 2, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-key": [ + 2, + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-no-comment-textnodes": [ + 2, + ], + "react/jsx-no-duplicate-props": [ + 2, + ], + "react/jsx-no-target-blank": [ + 2, + ], + "react/jsx-no-undef": [ + 2, + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-uses-react": [ + 2, + ], + "react/jsx-uses-vars": [ + 2, + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "react/no-children-prop": [ + 2, + ], + "react/no-danger-with-children": [ + 2, + ], + "react/no-deprecated": [ + 2, + ], + "react/no-direct-mutation-state": [ + 2, + ], + "react/no-find-dom-node": [ + 2, + ], + "react/no-is-mounted": [ + 2, + ], + "react/no-render-return-value": [ + 2, + ], + "react/no-string-refs": [ + 2, + ], + "react/no-unescaped-entities": [ + 2, + ], + "react/no-unknown-property": [ + 2, + ], + "react/no-unsafe": [ + 0, + ], + "react/prop-types": [ + 0, + ], + "react/react-in-jsx-scope": [ + 2, + ], + "react/require-render-return": [ + 2, + ], + "require-await": [ + "off", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + "react": { + "version": "detect", + }, + }, +} +`; + +exports[`eslint-config (all plugins enabled) resolved config for test.tsx 1`] = ` +{ + "env": { + "browser": true, + "es2020": true, + "jest/globals": true, + "mocha": true, + "node": true, + }, + "globals": {}, + "ignorePatterns": [], + "noInlineConfig": undefined, + "parser": "/@typescript-eslint/parser/dist/index.js", + "parserOptions": { + "ecmaFeatures": { + "jsx": true, + }, + "ecmaVersion": 2020, + "project": "./tsconfig.json", + "sourceType": "module", + }, + "plugins": [ + "import", + "react", + "react-hooks", + "prettier", + "jest", + "mocha", + "promise", + "@typescript-eslint", + ], + "reportUnusedDisableDirectives": undefined, + "rules": { + "@babel/object-curly-spacing": [ + "off", + ], + "@babel/semi": [ + "off", + ], + "@stylistic/array-bracket-newline": [ + "off", + ], + "@stylistic/array-bracket-spacing": [ + "off", + ], + "@stylistic/array-element-newline": [ + "off", + ], + "@stylistic/arrow-parens": [ + "off", + ], + "@stylistic/arrow-spacing": [ + "off", + ], + "@stylistic/block-spacing": [ + "off", + ], + "@stylistic/brace-style": [ + "off", + ], + "@stylistic/comma-dangle": [ + "off", + ], + "@stylistic/comma-spacing": [ + "off", + ], + "@stylistic/comma-style": [ + "off", + ], + "@stylistic/computed-property-spacing": [ + "off", + ], + "@stylistic/dot-location": [ + "off", + ], + "@stylistic/eol-last": [ + "off", + ], + "@stylistic/func-call-spacing": [ + "off", + ], + "@stylistic/function-call-argument-newline": [ + "off", + ], + "@stylistic/function-call-spacing": [ + "off", + ], + "@stylistic/function-paren-newline": [ + "off", + ], + "@stylistic/generator-star-spacing": [ + "off", + ], + "@stylistic/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/indent": [ + "off", + ], + "@stylistic/indent-binary-ops": [ + "off", + ], + "@stylistic/js/array-bracket-newline": [ + "off", + ], + "@stylistic/js/array-bracket-spacing": [ + "off", + ], + "@stylistic/js/array-element-newline": [ + "off", + ], + "@stylistic/js/arrow-parens": [ + "off", + ], + "@stylistic/js/arrow-spacing": [ + "off", + ], + "@stylistic/js/block-spacing": [ + "off", + ], + "@stylistic/js/brace-style": [ + "off", + ], + "@stylistic/js/comma-dangle": [ + "off", + ], + "@stylistic/js/comma-spacing": [ + "off", + ], + "@stylistic/js/comma-style": [ + "off", + ], + "@stylistic/js/computed-property-spacing": [ + "off", + ], + "@stylistic/js/dot-location": [ + "off", + ], + "@stylistic/js/eol-last": [ + "off", + ], + "@stylistic/js/func-call-spacing": [ + "off", + ], + "@stylistic/js/function-call-argument-newline": [ + "off", + ], + "@stylistic/js/function-call-spacing": [ + "off", + ], + "@stylistic/js/function-paren-newline": [ + "off", + ], + "@stylistic/js/generator-star-spacing": [ + "off", + ], + "@stylistic/js/implicit-arrow-linebreak": [ + "off", + ], + "@stylistic/js/indent": [ + "off", + ], + "@stylistic/js/jsx-quotes": [ + "off", + ], + "@stylistic/js/key-spacing": [ + "off", + ], + "@stylistic/js/keyword-spacing": [ + "off", + ], + "@stylistic/js/linebreak-style": [ + "off", + ], + "@stylistic/js/lines-around-comment": [ + 0, + ], + "@stylistic/js/max-len": [ + 0, + ], + "@stylistic/js/max-statements-per-line": [ + "off", + ], + "@stylistic/js/multiline-ternary": [ + "off", + ], + "@stylistic/js/new-parens": [ + "off", + ], + "@stylistic/js/newline-per-chained-call": [ + "off", + ], + "@stylistic/js/no-confusing-arrow": [ + 0, + ], + "@stylistic/js/no-extra-parens": [ + "off", + ], + "@stylistic/js/no-extra-semi": [ + "off", + ], + "@stylistic/js/no-floating-decimal": [ + "off", + ], + "@stylistic/js/no-mixed-operators": [ + 0, + ], + "@stylistic/js/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/js/no-multi-spaces": [ + "off", + ], + "@stylistic/js/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/js/no-tabs": [ + 0, + ], + "@stylistic/js/no-trailing-spaces": [ + "off", + ], + "@stylistic/js/no-whitespace-before-property": [ + "off", + ], + "@stylistic/js/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/js/object-curly-newline": [ + "off", + ], + "@stylistic/js/object-curly-spacing": [ + "off", + ], + "@stylistic/js/object-property-newline": [ + "off", + ], + "@stylistic/js/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/js/operator-linebreak": [ + "off", + ], + "@stylistic/js/padded-blocks": [ + "off", + ], + "@stylistic/js/quote-props": [ + "off", + ], + "@stylistic/js/quotes": [ + 0, + ], + "@stylistic/js/rest-spread-spacing": [ + "off", + ], + "@stylistic/js/semi": [ + "off", + ], + "@stylistic/js/semi-spacing": [ + "off", + ], + "@stylistic/js/semi-style": [ + "off", + ], + "@stylistic/js/space-before-blocks": [ + "off", + ], + "@stylistic/js/space-before-function-paren": [ + "off", + ], + "@stylistic/js/space-in-parens": [ + "off", + ], + "@stylistic/js/space-infix-ops": [ + "off", + ], + "@stylistic/js/space-unary-ops": [ + "off", + ], + "@stylistic/js/switch-colon-spacing": [ + "off", + ], + "@stylistic/js/template-curly-spacing": [ + "off", + ], + "@stylistic/js/template-tag-spacing": [ + "off", + ], + "@stylistic/js/wrap-iife": [ + "off", + ], + "@stylistic/js/wrap-regex": [ + "off", + ], + "@stylistic/js/yield-star-spacing": [ + "off", + ], + "@stylistic/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx-indent": [ + "off", + ], + "@stylistic/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/jsx-newline": [ + "off", + ], + "@stylistic/jsx-one-expression-per-line": [ + "off", + ], + "@stylistic/jsx-props-no-multi-spaces": [ + "off", + ], + "@stylistic/jsx-quotes": [ + "off", + ], + "@stylistic/jsx-tag-spacing": [ + "off", + ], + "@stylistic/jsx-wrap-multilines": [ + "off", + ], + "@stylistic/jsx/jsx-child-element-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-closing-bracket-location": [ + "off", + ], + "@stylistic/jsx/jsx-closing-tag-location": [ + "off", + ], + "@stylistic/jsx/jsx-curly-newline": [ + "off", + ], + "@stylistic/jsx/jsx-curly-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-equals-spacing": [ + "off", + ], + "@stylistic/jsx/jsx-first-prop-new-line": [ + "off", + ], + "@stylistic/jsx/jsx-indent": [ + "off", + ], + "@stylistic/jsx/jsx-indent-props": [ + "off", + ], + "@stylistic/jsx/jsx-max-props-per-line": [ + "off", + ], + "@stylistic/key-spacing": [ + "off", + ], + "@stylistic/keyword-spacing": [ + "off", + ], + "@stylistic/linebreak-style": [ + "off", + ], + "@stylistic/lines-around-comment": [ + 0, + ], + "@stylistic/max-len": [ + 0, + ], + "@stylistic/max-statements-per-line": [ + "off", + ], + "@stylistic/member-delimiter-style": [ + "off", + ], + "@stylistic/multiline-ternary": [ + "off", + ], + "@stylistic/new-parens": [ + "off", + ], + "@stylistic/newline-per-chained-call": [ + "off", + ], + "@stylistic/no-confusing-arrow": [ + 0, + ], + "@stylistic/no-extra-parens": [ + "off", + ], + "@stylistic/no-extra-semi": [ + "off", + ], + "@stylistic/no-floating-decimal": [ + "off", + ], + "@stylistic/no-mixed-operators": [ + 0, + ], + "@stylistic/no-mixed-spaces-and-tabs": [ + "off", + ], + "@stylistic/no-multi-spaces": [ + "off", + ], + "@stylistic/no-multiple-empty-lines": [ + "off", + ], + "@stylistic/no-tabs": [ + 0, + ], + "@stylistic/no-trailing-spaces": [ + "off", + ], + "@stylistic/no-whitespace-before-property": [ + "off", + ], + "@stylistic/nonblock-statement-body-position": [ + "off", + ], + "@stylistic/object-curly-newline": [ + "off", + ], + "@stylistic/object-curly-spacing": [ + "off", + ], + "@stylistic/object-property-newline": [ + "off", + ], + "@stylistic/one-var-declaration-per-line": [ + "off", + ], + "@stylistic/operator-linebreak": [ + "off", + ], + "@stylistic/padded-blocks": [ + "off", + ], + "@stylistic/quote-props": [ + "off", + ], + "@stylistic/quotes": [ + 0, + ], + "@stylistic/rest-spread-spacing": [ + "off", + ], + "@stylistic/semi": [ + "off", + ], + "@stylistic/semi-spacing": [ + "off", + ], + "@stylistic/semi-style": [ + "off", + ], + "@stylistic/space-before-blocks": [ + "off", + ], + "@stylistic/space-before-function-paren": [ + "off", + ], + "@stylistic/space-in-parens": [ + "off", + ], + "@stylistic/space-infix-ops": [ + "off", + ], + "@stylistic/space-unary-ops": [ + "off", + ], + "@stylistic/switch-colon-spacing": [ + "off", + ], + "@stylistic/template-curly-spacing": [ + "off", + ], + "@stylistic/template-tag-spacing": [ + "off", + ], + "@stylistic/ts/block-spacing": [ + "off", + ], + "@stylistic/ts/brace-style": [ + "off", + ], + "@stylistic/ts/comma-dangle": [ + "off", + ], + "@stylistic/ts/comma-spacing": [ + "off", + ], + "@stylistic/ts/func-call-spacing": [ + "off", + ], + "@stylistic/ts/function-call-spacing": [ + "off", + ], + "@stylistic/ts/indent": [ + "off", + ], + "@stylistic/ts/key-spacing": [ + "off", + ], + "@stylistic/ts/keyword-spacing": [ + "off", + ], + "@stylistic/ts/lines-around-comment": [ + 0, + ], + "@stylistic/ts/member-delimiter-style": [ + "off", + ], + "@stylistic/ts/no-extra-parens": [ + "off", + ], + "@stylistic/ts/no-extra-semi": [ + "off", + ], + "@stylistic/ts/object-curly-spacing": [ + "off", + ], + "@stylistic/ts/quotes": [ + 0, + ], + "@stylistic/ts/semi": [ + "off", + ], + "@stylistic/ts/space-before-blocks": [ + "off", + ], + "@stylistic/ts/space-before-function-paren": [ + "off", + ], + "@stylistic/ts/space-infix-ops": [ + "off", + ], + "@stylistic/ts/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-annotation-spacing": [ + "off", + ], + "@stylistic/type-generic-spacing": [ + "off", + ], + "@stylistic/type-named-tuple-spacing": [ + "off", + ], + "@stylistic/wrap-iife": [ + "off", + ], + "@stylistic/wrap-regex": [ + "off", + ], + "@stylistic/yield-star-spacing": [ + "off", + ], + "@typescript-eslint/await-thenable": [ + "error", + ], + "@typescript-eslint/ban-ts-comment": [ + "error", + ], + "@typescript-eslint/block-spacing": [ + "off", + ], + "@typescript-eslint/brace-style": [ + "off", + ], + "@typescript-eslint/comma-dangle": [ + "off", + ], + "@typescript-eslint/comma-spacing": [ + "off", + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/func-call-spacing": [ + "off", + ], + "@typescript-eslint/indent": [ + "off", + ], + "@typescript-eslint/key-spacing": [ + "off", + ], + "@typescript-eslint/keyword-spacing": [ + "off", + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + "off", + ], + "@typescript-eslint/no-array-constructor": [ + "error", + ], + "@typescript-eslint/no-array-delete": [ + "error", + ], + "@typescript-eslint/no-base-to-string": [ + "error", + ], + "@typescript-eslint/no-duplicate-enum-values": [ + "error", + ], + "@typescript-eslint/no-duplicate-type-constituents": [ + "error", + ], + "@typescript-eslint/no-empty-object-type": [ + "error", + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@typescript-eslint/no-extra-non-null-assertion": [ + "error", + ], + "@typescript-eslint/no-extra-parens": [ + "off", + ], + "@typescript-eslint/no-extra-semi": [ + "off", + ], + "@typescript-eslint/no-floating-promises": [ + "error", + ], + "@typescript-eslint/no-for-in-array": [ + "error", + ], + "@typescript-eslint/no-implied-eval": [ + "error", + ], + "@typescript-eslint/no-misused-new": [ + "error", + ], + "@typescript-eslint/no-misused-promises": [ + "error", + ], + "@typescript-eslint/no-namespace": [ + "error", + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + "error", + ], + "@typescript-eslint/no-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-redundant-type-constituents": [ + "error", + ], + "@typescript-eslint/no-require-imports": [ + "error", + ], + "@typescript-eslint/no-this-alias": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + "error", + ], + "@typescript-eslint/no-unsafe-argument": [ + "error", + ], + "@typescript-eslint/no-unsafe-assignment": [ + "error", + ], + "@typescript-eslint/no-unsafe-call": [ + "error", + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + "error", + ], + "@typescript-eslint/no-unsafe-enum-comparison": [ + "error", + ], + "@typescript-eslint/no-unsafe-function-type": [ + "error", + ], + "@typescript-eslint/no-unsafe-member-access": [ + "error", + ], + "@typescript-eslint/no-unsafe-return": [ + "error", + ], + "@typescript-eslint/no-unsafe-unary-minus": [ + "error", + ], + "@typescript-eslint/no-unused-expressions": [ + "error", + ], + "@typescript-eslint/no-unused-vars": [ + 0, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-var-requires": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + "error", + ], + "@typescript-eslint/object-curly-spacing": [ + "off", + ], + "@typescript-eslint/only-throw-error": [ + "error", + ], + "@typescript-eslint/prefer-as-const": [ + "error", + ], + "@typescript-eslint/prefer-namespace-keyword": [ + "error", + ], + "@typescript-eslint/prefer-promise-reject-errors": [ + "error", + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/require-await": [ + "error", + ], + "@typescript-eslint/restrict-plus-operands": [ + "error", + ], + "@typescript-eslint/restrict-template-expressions": [ + "error", + ], + "@typescript-eslint/semi": [ + "off", + ], + "@typescript-eslint/space-before-blocks": [ + "off", + ], + "@typescript-eslint/space-before-function-paren": [ + "off", + ], + "@typescript-eslint/space-infix-ops": [ + "off", + ], + "@typescript-eslint/triple-slash-reference": [ + "error", + ], + "@typescript-eslint/type-annotation-spacing": [ + "off", + ], + "@typescript-eslint/unbound-method": [ + 0, + ], + "array-bracket-newline": [ + "off", + ], + "array-bracket-spacing": [ + "off", + ], + "array-callback-return": [ + "error", + ], + "array-element-newline": [ + "off", + ], + "arrow-body-style": [ + "error", + "as-needed", + ], + "arrow-parens": [ + "off", + ], + "arrow-spacing": [ + "off", + ], + "babel/object-curly-spacing": [ + "off", + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + "off", + ], + "block-spacing": [ + "off", + ], + "brace-style": [ + "off", + ], + "comma-dangle": [ + "off", + ], + "comma-spacing": [ + "off", + ], + "comma-style": [ + "off", + ], + "computed-property-spacing": [ + "off", + ], + "constructor-super": [ + "off", + ], + "curly": [ + 0, + ], + "dot-location": [ + "off", + ], + "eol-last": [ + "off", + ], + "flowtype/boolean-style": [ + "off", + ], + "flowtype/delimiter-dangle": [ + "off", + ], + "flowtype/generic-spacing": [ + "off", + ], + "flowtype/object-type-curly-spacing": [ + "off", + ], + "flowtype/object-type-delimiter": [ + "off", + ], + "flowtype/quotes": [ + "off", + ], + "flowtype/semi": [ + "off", + ], + "flowtype/space-after-type-colon": [ + "off", + ], + "flowtype/space-before-generic-bracket": [ + "off", + ], + "flowtype/space-before-type-colon": [ + "off", + ], + "flowtype/union-intersection-spacing": [ + "off", + ], + "for-direction": [ + "error", + ], + "func-call-spacing": [ + "off", + ], + "function-call-argument-newline": [ + "off", + ], + "function-paren-newline": [ + "off", + ], + "generator-star": [ + "off", + ], + "generator-star-spacing": [ + "off", + ], + "getter-return": [ + "off", + ], + "implicit-arrow-linebreak": [ + "off", + ], + "import/default": [ + 0, + ], + "import/export": [ + 2, + ], + "import/named": [ + 0, + ], + "import/namespace": [ + 0, + ], + "import/no-commonjs": [ + "warn", + ], + "import/no-unresolved": [ + 0, + ], + "indent": [ + "off", + ], + "indent-legacy": [ + "off", + ], + "jest/expect-expect": [ + "error", + { + "assertFunctionNames": [ + "expect*", + ], + }, + ], + "jest/no-alias-methods": [ + "error", + ], + "jest/no-commented-out-tests": [ + "warn", + ], + "jest/no-conditional-expect": [ + "error", + ], + "jest/no-deprecated-functions": [ + "error", + ], + "jest/no-disabled-tests": [ + "warn", + ], + "jest/no-done-callback": [ + "error", + ], + "jest/no-export": [ + "error", + ], + "jest/no-focused-tests": [ + "error", + ], + "jest/no-identical-title": [ + "error", + ], + "jest/no-interpolation-in-snapshots": [ + "error", + ], + "jest/no-jasmine-globals": [ + "error", + ], + "jest/no-mocks-import": [ + "error", + ], + "jest/no-standalone-expect": [ + "error", + ], + "jest/no-test-prefixes": [ + "error", + ], + "jest/prefer-to-be": [ + "error", + ], + "jest/prefer-to-contain": [ + "error", + ], + "jest/prefer-to-have-length": [ + "error", + ], + "jest/valid-describe-callback": [ + "error", + ], + "jest/valid-expect": [ + "error", + ], + "jest/valid-expect-in-promise": [ + "error", + ], + "jest/valid-title": [ + "error", + ], + "jsx-quotes": [ + "off", + ], + "key-spacing": [ + "off", + ], + "keyword-spacing": [ + "off", + ], + "linebreak-style": [ + "off", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + "off", + ], + "mocha/consistent-spacing-between-blocks": [ + "error", + ], + "mocha/handle-done-callback": [ + "error", + ], + "mocha/max-top-level-suites": [ + "error", + { + "limit": 1, + }, + ], + "mocha/no-async-describe": [ + "error", + ], + "mocha/no-empty-description": [ + "error", + ], + "mocha/no-exclusive-tests": [ + "error", + ], + "mocha/no-exports": [ + "error", + ], + "mocha/no-global-tests": [ + "error", + ], + "mocha/no-hooks": [ + "off", + ], + "mocha/no-hooks-for-single-case": [ + 0, + ], + "mocha/no-identical-title": [ + "error", + ], + "mocha/no-mocha-arrows": [ + 0, + ], + "mocha/no-nested-tests": [ + "error", + ], + "mocha/no-pending-tests": [ + "warn", + ], + "mocha/no-return-and-callback": [ + "error", + ], + "mocha/no-return-from-async": [ + "off", + ], + "mocha/no-setup-in-describe": [ + 0, + ], + "mocha/no-sibling-hooks": [ + 0, + ], + "mocha/no-skipped-tests": [ + "warn", + ], + "mocha/no-synchronous-tests": [ + "off", + ], + "mocha/no-top-level-hooks": [ + "warn", + ], + "mocha/prefer-arrow-callback": [ + "off", + ], + "mocha/valid-suite-description": [ + "off", + ], + "mocha/valid-test-description": [ + "off", + ], + "multiline-ternary": [ + "off", + ], + "new-parens": [ + "off", + ], + "newline-per-chained-call": [ + "off", + ], + "no-array-constructor": [ + "off", + ], + "no-arrow-condition": [ + "off", + ], + "no-async-promise-executor": [ + "error", + ], + "no-case-declarations": [ + "error", + ], + "no-class-assign": [ + "off", + ], + "no-comma-dangle": [ + "off", + ], + "no-compare-neg-zero": [ + "error", + ], + "no-cond-assign": [ + "error", + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + "off", + ], + "no-constant-condition": [ + "error", + ], + "no-control-regex": [ + "error", + ], + "no-debugger": [ + "error", + ], + "no-delete-var": [ + "error", + ], + "no-dupe-args": [ + "off", + ], + "no-dupe-class-members": [ + "off", + ], + "no-dupe-else-if": [ + "error", + ], + "no-dupe-keys": [ + "off", + ], + "no-duplicate-case": [ + "error", + ], + "no-duplicate-imports": [ + "error", + { + "includeExports": true, + }, + ], + "no-empty": [ + "error", + ], + "no-empty-character-class": [ + "error", + ], + "no-empty-pattern": [ + "error", + ], + "no-ex-assign": [ + "error", + ], + "no-extra-boolean-cast": [ + "error", + ], + "no-extra-parens": [ + "off", + ], + "no-extra-semi": [ + "off", + ], + "no-fallthrough": [ + "error", + ], + "no-floating-decimal": [ + "off", + ], + "no-func-assign": [ + "off", + ], + "no-global-assign": [ + "error", + ], + "no-implied-eval": [ + "off", + ], + "no-import-assign": [ + "off", + ], + "no-inner-declarations": [ + "error", + ], + "no-invalid-regexp": [ + "error", + ], + "no-irregular-whitespace": [ + "error", + ], + "no-loss-of-precision": [ + "error", + ], + "no-misleading-character-class": [ + "error", + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + "off", + ], + "no-multi-spaces": [ + "off", + ], + "no-multiple-empty-lines": [ + "off", + ], + "no-new-native-nonconstructor": [ + "off", + ], + "no-new-symbol": [ + "off", + ], + "no-nonoctal-decimal-escape": [ + "error", + ], + "no-obj-calls": [ + "off", + ], + "no-octal": [ + "error", + ], + "no-prototype-builtins": [ + "error", + ], + "no-redeclare": [ + "off", + ], + "no-regex-spaces": [ + "error", + ], + "no-reserved-keys": [ + "off", + ], + "no-restricted-imports": [ + "warn", + { + "message": "Please use native promises instead.", + "name": "bluebird", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "ramda", + }, + { + "message": "Please use lodash or native javascript instead.", + "name": "partial.lenses", + }, + { + "message": "Please use native Date() and date-fns instead.", + "name": "moment", + }, + ], + "no-self-assign": [ + "error", + ], + "no-setter-return": [ + "off", + ], + "no-shadow-restricted-names": [ + "error", + ], + "no-space-before-semi": [ + "off", + ], + "no-spaced-func": [ + "off", + ], + "no-sparse-arrays": [ + "error", + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + "off", + ], + "no-throw-literal": [ + "off", + ], + "no-trailing-spaces": [ + "off", + ], + "no-undef": [ + "off", + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + "off", + ], + "no-unsafe-finally": [ + "error", + ], + "no-unsafe-negation": [ + "off", + ], + "no-unsafe-optional-chaining": [ + "error", + ], + "no-unused-expressions": [ + "off", + ], + "no-unused-labels": [ + "error", + ], + "no-unused-vars": [ + 0, + { + "argsIgnorePattern": "^_", + }, + ], + "no-useless-backreference": [ + "error", + ], + "no-useless-catch": [ + "error", + ], + "no-useless-escape": [ + "error", + ], + "no-var": [ + "error", + ], + "no-whitespace-before-property": [ + "off", + ], + "no-with": [ + "off", + ], + "no-wrap-func": [ + "off", + ], + "nonblock-statement-body-position": [ + "off", + ], + "object-curly-newline": [ + "off", + ], + "object-curly-spacing": [ + "off", + ], + "object-property-newline": [ + "off", + ], + "one-var": [ + "error", + "never", + ], + "one-var-declaration-per-line": [ + "off", + ], + "operator-linebreak": [ + "off", + ], + "padded-blocks": [ + "off", + ], + "prefer-arrow-callback": [ + "error", + ], + "prefer-const": [ + "error", + ], + "prefer-destructuring": [ + "error", + { + "array": false, + }, + ], + "prefer-object-spread": [ + "error", + ], + "prefer-promise-reject-errors": [ + "off", + ], + "prefer-rest-params": [ + "error", + ], + "prefer-spread": [ + "error", + ], + "prefer-template": [ + "error", + ], + "prettier/prettier": [ + "error", + ], + "promise/always-return": [ + "error", + ], + "promise/avoid-new": [ + 0, + ], + "promise/catch-or-return": [ + "error", + { + "allowFinally": true, + }, + ], + "promise/no-callback-in-promise": [ + 0, + ], + "promise/no-native": [ + "off", + ], + "promise/no-nesting": [ + 0, + ], + "promise/no-new-statics": [ + "error", + ], + "promise/no-promise-in-callback": [ + "warn", + ], + "promise/no-return-in-finally": [ + "warn", + ], + "promise/no-return-wrap": [ + "error", + ], + "promise/param-names": [ + "error", + ], + "promise/prefer-await-to-then": [ + "warn", + ], + "promise/valid-params": [ + "warn", + ], + "quote-props": [ + "off", + ], + "quotes": [ + 0, + ], + "react-hooks/component-hook-factories": [ + "error", + ], + "react-hooks/config": [ + "error", + ], + "react-hooks/error-boundaries": [ + "error", + ], + "react-hooks/exhaustive-deps": [ + "warn", + ], + "react-hooks/gating": [ + "error", + ], + "react-hooks/globals": [ + "error", + ], + "react-hooks/immutability": [ + "error", + ], + "react-hooks/incompatible-library": [ + "warn", + ], + "react-hooks/preserve-manual-memoization": [ + "error", + ], + "react-hooks/purity": [ + "error", + ], + "react-hooks/refs": [ + "error", + ], + "react-hooks/rules-of-hooks": [ + "error", + ], + "react-hooks/set-state-in-effect": [ + "error", + ], + "react-hooks/set-state-in-render": [ + "error", + ], + "react-hooks/static-components": [ + "error", + ], + "react-hooks/unsupported-syntax": [ + "warn", + ], + "react-hooks/use-memo": [ + "error", + ], + "react/display-name": [ + 2, + ], + "react/jsx-child-element-spacing": [ + "off", + ], + "react/jsx-closing-bracket-location": [ + "off", + ], + "react/jsx-closing-tag-location": [ + "off", + ], + "react/jsx-curly-newline": [ + "off", + ], + "react/jsx-curly-spacing": [ + "off", + ], + "react/jsx-equals-spacing": [ + "off", + ], + "react/jsx-first-prop-new-line": [ + "off", + ], + "react/jsx-indent": [ + "off", + ], + "react/jsx-indent-props": [ + "off", + ], + "react/jsx-key": [ + 2, + ], + "react/jsx-max-props-per-line": [ + "off", + ], + "react/jsx-newline": [ + "off", + ], + "react/jsx-no-comment-textnodes": [ + 2, + ], + "react/jsx-no-duplicate-props": [ + 2, + ], + "react/jsx-no-target-blank": [ + 2, + ], + "react/jsx-no-undef": [ + 2, + ], + "react/jsx-one-expression-per-line": [ + "off", + ], + "react/jsx-props-no-multi-spaces": [ + "off", + ], + "react/jsx-space-before-closing": [ + "off", + ], + "react/jsx-tag-spacing": [ + "off", + ], + "react/jsx-uses-react": [ + 2, + ], + "react/jsx-uses-vars": [ + 2, + ], + "react/jsx-wrap-multilines": [ + "off", + ], + "react/no-children-prop": [ + 2, + ], + "react/no-danger-with-children": [ + 2, + ], + "react/no-deprecated": [ + 2, + ], + "react/no-direct-mutation-state": [ + 2, + ], + "react/no-find-dom-node": [ + 2, + ], + "react/no-is-mounted": [ + 2, + ], + "react/no-render-return-value": [ + 2, + ], + "react/no-string-refs": [ + 2, + ], + "react/no-unescaped-entities": [ + 2, + ], + "react/no-unknown-property": [ + 2, + ], + "react/no-unsafe": [ + 0, + ], + "react/prop-types": [ + 0, + ], + "react/react-in-jsx-scope": [ + 2, + ], + "react/require-render-return": [ + 2, + ], + "require-await": [ + "off", + ], + "require-yield": [ + "error", + ], + "rest-spread-spacing": [ + "off", + ], + "semi": [ + "off", + ], + "semi-spacing": [ + "off", + ], + "semi-style": [ + "off", + ], + "space-after-function-name": [ + "off", + ], + "space-after-keywords": [ + "off", + ], + "space-before-blocks": [ + "off", + ], + "space-before-function-paren": [ + "off", + ], + "space-before-function-parentheses": [ + "off", + ], + "space-before-keywords": [ + "off", + ], + "space-in-brackets": [ + "off", + ], + "space-in-parens": [ + "off", + ], + "space-infix-ops": [ + "off", + ], + "space-return-throw-case": [ + "off", + ], + "space-unary-ops": [ + "off", + ], + "space-unary-word-ops": [ + "off", + ], + "standard/array-bracket-even-spacing": [ + "off", + ], + "standard/computed-property-even-spacing": [ + "off", + ], + "standard/object-curly-even-spacing": [ + "off", + ], + "switch-colon-spacing": [ + "off", + ], + "template-curly-spacing": [ + "off", + ], + "template-tag-spacing": [ + "off", + ], + "unicorn/empty-brace-spaces": [ + "off", + ], + "unicorn/no-nested-ternary": [ + "off", + ], + "unicorn/number-literal-case": [ + "off", + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + "error", + ], + "valid-typeof": [ + "error", + ], + "vue/array-bracket-newline": [ + "off", + ], + "vue/array-bracket-spacing": [ + "off", + ], + "vue/array-element-newline": [ + "off", + ], + "vue/arrow-spacing": [ + "off", + ], + "vue/block-spacing": [ + "off", + ], + "vue/block-tag-newline": [ + "off", + ], + "vue/brace-style": [ + "off", + ], + "vue/comma-dangle": [ + "off", + ], + "vue/comma-spacing": [ + "off", + ], + "vue/comma-style": [ + "off", + ], + "vue/dot-location": [ + "off", + ], + "vue/func-call-spacing": [ + "off", + ], + "vue/html-closing-bracket-newline": [ + "off", + ], + "vue/html-closing-bracket-spacing": [ + "off", + ], + "vue/html-end-tags": [ + "off", + ], + "vue/html-indent": [ + "off", + ], + "vue/html-quotes": [ + "off", + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + "off", + ], + "vue/keyword-spacing": [ + "off", + ], + "vue/max-attributes-per-line": [ + "off", + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + "off", + ], + "vue/multiline-ternary": [ + "off", + ], + "vue/mustache-interpolation-spacing": [ + "off", + ], + "vue/no-extra-parens": [ + "off", + ], + "vue/no-multi-spaces": [ + "off", + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + "off", + ], + "vue/object-curly-newline": [ + "off", + ], + "vue/object-curly-spacing": [ + "off", + ], + "vue/object-property-newline": [ + "off", + ], + "vue/operator-linebreak": [ + "off", + ], + "vue/quote-props": [ + "off", + ], + "vue/script-indent": [ + "off", + ], + "vue/singleline-html-element-content-newline": [ + "off", + ], + "vue/space-in-parens": [ + "off", + ], + "vue/space-infix-ops": [ + "off", + ], + "vue/space-unary-ops": [ + "off", + ], + "vue/template-curly-spacing": [ + "off", + ], + "wrap-iife": [ + "off", + ], + "wrap-regex": [ + "off", + ], + "yield-star-spacing": [ + "off", + ], + }, + "settings": { + "import/extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + "import/external-module-folders": [ + "node_modules", + "node_modules/@types", + ], + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ], + }, + "import/resolver": { + "node": { + "extensions": [ + ".ts", + ".cts", + ".mts", + ".tsx", + ".js", + ".jsx", + ".mjs", + ".cjs", + ], + }, + }, + "react": { + "version": "detect", + }, + }, +} +`; diff --git a/packages/eslint-config/__tests__/config-disabled.test.js b/packages/eslint-config/__tests__/config-disabled.test.js new file mode 100644 index 0000000..276d3ec --- /dev/null +++ b/packages/eslint-config/__tests__/config-disabled.test.js @@ -0,0 +1,12 @@ +const { getResolvedConfig } = require('./helpers') + +const config = require('../src/index.js') + +const FILE_TYPES = ['test.js', 'test.ts', 'test.tsx'] + +describe('eslint-config (all plugins disabled)', () => { + test.each(FILE_TYPES)('resolved config for %s', async (fileType) => { + const resolved = await getResolvedConfig(config, fileType) + expect(resolved).toMatchSnapshot() + }) +}) diff --git a/packages/eslint-config/__tests__/config-enabled.test.js b/packages/eslint-config/__tests__/config-enabled.test.js new file mode 100644 index 0000000..d2e3151 --- /dev/null +++ b/packages/eslint-config/__tests__/config-enabled.test.js @@ -0,0 +1,12 @@ +const { getResolvedConfig } = require('./helpers') + +const config = require('../src/index.js') + +const FILE_TYPES = ['test.js', 'test.ts', 'test.tsx'] + +describe('eslint-config (all plugins enabled)', () => { + test.each(FILE_TYPES)('resolved config for %s', async (fileType) => { + const resolved = await getResolvedConfig(config, fileType) + expect(resolved).toMatchSnapshot() + }) +}) diff --git a/packages/eslint-config/__tests__/helpers.js b/packages/eslint-config/__tests__/helpers.js new file mode 100644 index 0000000..c1c78c3 --- /dev/null +++ b/packages/eslint-config/__tests__/helpers.js @@ -0,0 +1,18 @@ +const { ESLint } = require('eslint') + +function normalizeConfig(resolved) { + return { + ...resolved, + parser: resolved.parser + ? resolved.parser.replace(/^.*node_modules\//, '/') + : resolved.parser, + } +} + +async function getResolvedConfig(baseConfig, filePath) { + const eslint = new ESLint({ baseConfig, useEslintrc: false }) + const resolved = await eslint.calculateConfigForFile(filePath) + return normalizeConfig(resolved) +} + +module.exports = { getResolvedConfig } diff --git a/packages/eslint-config/jest.config.js b/packages/eslint-config/jest.config.js new file mode 100644 index 0000000..a88ed8c --- /dev/null +++ b/packages/eslint-config/jest.config.js @@ -0,0 +1,24 @@ +const OPTIONAL_PLUGINS = [ + 'eslint-plugin-mocha', + 'eslint-plugin-jest', + 'eslint-plugin-react', + 'eslint-plugin-react-hooks', +] + +const disabledMapper = Object.fromEntries( + OPTIONAL_PLUGINS.map((plugin) => [`^${plugin}$`, '/__tests__/nonexistent']) +) + +module.exports = { + projects: [ + { + displayName: 'all-plugins-disabled', + testMatch: ['/__tests__/config-disabled.test.js'], + moduleNameMapper: disabledMapper, + }, + { + displayName: 'all-plugins-enabled', + testMatch: ['/__tests__/config-enabled.test.js'], + }, + ], +} diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index dbd8520..429cd8e 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -13,7 +13,7 @@ ], "scripts": { "build": "echo 'No build needed'", - "test": "echo 'No tests'", + "test": "jest", "lint": "eslint -c ./src/index.js --ignore-path ../../.eslintignore ./src/index.js", "prepare": "npm run build" }, @@ -31,6 +31,7 @@ }, "devDependencies": { "eslint-plugin-jest": "^29.0.1", + "eslint-plugin-mocha": "^10.0.0", "jest": "^30.0.5", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-promise": "7.2.1",