davidjbradshaw / eslint-config-auto Goto Github PK
View Code? Open in Web Editor NEWAutomatically configure ESLint based on project dependencies
Automatically configure ESLint based on project dependencies
I am trying this auto config out, there seem to have been a recent change that might be causing this error (below)
https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21
Error: Cannot read config file: D:\source\playZone\YoraiLevi.github.io\node_modules\eslint-config-prettier\@typescript-eslint.js
Error: "prettier/@typescript-eslint" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21
Referenced from: D:\source\playZone\YoraiLevi.github.io\node_modules\eslint-config-adjunct\rules\prettier.js
at Object.<anonymous> (D:\source\playZone\YoraiLevi.github.io\node_modules\eslint-config-prettier\@typescript-eslint.js:1:69)
at Module._compile (C:\ProgramData\nvm\v14.15.1\node_modules\eslint\node_modules\v8-compile-cache\v8-compile-cache.js:192:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at module.exports (C:\ProgramData\nvm\v14.15.1\node_modules\eslint\node_modules\import-fresh\index.js:32:59)
at loadJSConfigFile (C:\ProgramData\nvm\v14.15.1\node_modules\eslint\node_modules\@eslint\eslintrc\lib\config-array-factory.js:225:16)
at loadConfigFile (C:\ProgramData\nvm\v14.15.1\node_modules\eslint\node_modules\@eslint\eslintrc\lib\config-array-factory.js:309:20)
at ConfigArrayFactory._loadConfigData (C:\ProgramData\nvm\v14.15.1\node_modules\eslint\node_modules\@eslint\eslintrc\lib\config-array-factory.js:609:42)
npm install [email protected]
resolves the issue
Same as adjunct
: davidjbradshaw/eslint-config-adjunct#48 Breaks LSP-eslint
otherwise: sublimelsp/LSP#2013 There's a fix coming, but it might take ages to ship.
Given have a project that looks like this:
--
- .eslintrc.js (with `extends: ["auto"]`)
- tsconfig.json (with `"exclude": ["test"]`)
- src/
- ...
- test/
- tsconfig.json (with `"include": ["*.spec.ts"]`)
- many-tests.spec.ts
Running eslint
for the test directory will cause the following error:
/.../test/many-tests.spec.ts
0:0 error Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.
The file does not match your project config: test/many-tests.spec.ts.
The file must be included in at least one of the projects provided
This is because if you run eslint --print-config test/many-tests.spec.ts
you'll see the parserOptions' project looks like this:
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module",
"ecmaFeatures": {
"generators": false,
"objectLiteralDuplicateProperties": false
},
"project": "./tsconfig.json" <-- this should also include ./test/tsconfig.json
},
Would it be possible to get support for this situation?
It's unmaintained: xojs/xo#660
Don't want to spam, but just wanted to make you aware of https://github.com/gajus/eslint-plugin-canonical
{
"extends": [
"canonical/auto"
]
}
setups auto formatting using over 1,000+ ESLint rules. I've been maintaining this for 8 years.
The point of posting it here is to see if our efforts overlap and if you'd like to consolidate. @davidjbradshaw
Thank you for this great library, but one feature that's missing for me is the option to install the dependencies for you
Latest major version (11) of Next.js supports now eslint: https://nextjs.org/docs/basic-features/eslint
If project contains the 11.1.0 or later version of "next", then eslint-config-auto would load the most strict next lint package: next/core-web-vitals.
I'm using this in a monorepo, where 99% of the development deps are declared in the root workspace, including ESLint and this config. If I go and run ESLint in one of the sub-workspaces (with yarn run -T eslint
), I get the following:
Oops! Something went wrong! :(
eslint-config-auto could not find the following package
eslint-config-adjunct
To install the missing package, please run the following command:
npm install eslint-config-adjunct@latest --save-dev
I tried aliasing hasAnyDep
to moduleNotAvailable
, but that has its own fatal side effects. So I went here:
eslint-config-auto/lib/utils.js
Lines 12 to 15 in 0eae8ba
And prepended process.cwd()
with process.env.npm_package_json ??
, and everything started to work as expected. It's available in npm 7+ and Yarn 3.2.2+. Why did it help? Because -T
in yarn run -T
means --top-level
, so it executes the ESLint binary from the root of the monorepo, and npm_package_json
resolves to the package.json
which "owns" that binary. I'm not sure how npm handles run
commands, but I know that they do hoisting too, so I imagine the behavior should be the same.
This assumes that a project-level eslint
is used, not a system-level one, and that eslint-config-auto
is installed alongside eslint
, not in a sub-workspace, along with every single dependency that eslint-config-auto
might look for.
The above is a quick fix that will make monorepos work now, but it's not a complete solution. For example, eslint-config-auto
might be installed in the root, and one of the packages might depend on react
, and even with this fix it will not pick up React, because hasAnyDep
will look only in the root package.json
.
The real solution is to find the root of the monorepo, and then go down the tree, merging all dependencies. Note that workspaces can be nested infinitely, it's not just one level. Unfortunately, I wasn't able to find any existing package that does this correctly (they all go down only one level). But I think a good enough version could be to just do a find-up
of either yarn.lock
, pnpm-lock.yaml
or package-lock.json
. Here's how Yarn does it, and pnpm. If no lock file is found then fall back to the current behavior.
Or could use a flawed existing library (ignore the "yarn" in its name, it works for any package manager). It's easy and it covers 99.(9)% of use cases, I haven't seen a 3+ level workspace yet.
Thoughts?
We use this plugin for about a year, but in recent time, when setting up new project, the auto plugin forces us to install eslint-plugin-prettier
, wich is not mentioned anywhere and it is not the prefered way how to use prettier with eslint (prettier docs) - in short, there should be only eslint-config-prettier
installed and Prettier should be run by IDE.
I tried different versions of installed eslint and prettier plugins versions, but cannot figured out how to be able to run eslint without eslint-plugin-prettier
. It seems to be problem with eslint-config-adjunct
that expects eslint-plugin prettier
to be installed.
We use yarn, typescript, Next.js.
This is script that runs eslint:
"lint": "eslint --color --ext .html,.js,.json,.jsx,.md,.ts,.tsx *.* pages components",
"lint:fix": "yarn lint --fix"
And this is the error I get when running yarn lint
.
eslint-config-auto loaded the following packages:
eslint-plugin-import
eslint-plugin-jsx-a11y
eslint-plugin-react
eslint-plugin-react-hooks
@typescript-eslint/recommended
@typescript-eslint/recommended-requiring-type-checking
eslint-config-airbnb
eslint-config-airbnb/hooks
eslint-config-airbnb-typescript
eslint-config-adjunct
eslint-config-adjunct loaded the following packages:
eslint-plugin-array-func
eslint-plugin-const-case
eslint-plugin-eslint-comments
eslint-plugin-html
eslint-plugin-json
eslint-plugin-markdown
eslint-plugin-no-constructor-bind
eslint-plugin-no-use-extend-native
eslint-plugin-optimize-regex
eslint-plugin-promise
eslint-plugin-simple-import-sort
eslint-plugin-sonarjs
eslint-plugin-switch-case
eslint-plugin-unicorn
eslint-plugin-no-secrets
eslint-plugin-no-unsanitized
eslint-plugin-pii
eslint-plugin-scanjs-rules
eslint-plugin-security
eslint-plugin-xss
eslint-plugin-lodash
eslint-plugin-lodash-fp
eslint-config-prettier
eslint-test-overrides
Oops! Something went wrong! :(
ESLint: 8.47.0
ESLint couldn't find the plugin "eslint-plugin-prettier".
(The package "eslint-plugin-prettier" was not found when loaded as a Node module from the directory "/Users/radoslavzeman/repos/bratislava.github.io".)
It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:
npm install eslint-plugin-prettier@latest --save-dev
The plugin "eslint-plugin-prettier" was referenced from the config file in ".eslintrc.js » eslint-config-auto » /[...]/node_modules/eslint-config-auto/rules/adjunct.js » eslint-config-adjunct » /[...]/node_modules/eslint-config-auto/node_modules/eslint-config-adjunct/rules/prettier.js".
If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.
error Command failed with exit code 2.
Do you have some suggestions how to fix this problem? Thanks!
Add eslint-plugin-yaml
npx eslint --print-config .json
eslint-config-auto loaded the following packages:
eslint-plugin-import
eslint-plugin-jsx-a11y
eslint-plugin-react
eslint-plugin-react-hooks
@typescript-eslint/recommended
@typescript-eslint/recommended-requiring-type-checking
eslint-config-airbnb
eslint-config-airbnb/hooks
eslint-config-airbnb-typescript
eslint-config-adjunct
eslint-config-adjunct loaded the following packages:
eslint-plugin-array-func
eslint-plugin-eslint-comments
eslint-plugin-html
eslint-plugin-json
eslint-plugin-markdown
eslint-plugin-no-constructor-bind
eslint-plugin-no-use-extend-native
eslint-plugin-optimize-regex
eslint-plugin-promise
eslint-plugin-simple-import-sort
eslint-plugin-switch-case
eslint-plugin-unicorn
eslint-plugin-no-secrets
eslint-plugin-no-unsanitized
eslint-plugin-scanjs-rules
eslint-plugin-security
eslint-plugin-sonarjs
eslint-plugin-jest
eslint-plugin-jest-async
eslint-plugin-jest-dom
eslint-plugin-testing-library
eslint-plugin-prettier
eslint-plugin-testing-library/react
eslint-config-prettier
eslint-config-prettier/@typescript-eslint
eslint-config-prettier/react
eslint-config-prettier/unicorn
eslint-test-overrides
the output config:
{
"env": {
"jest": true,
"jest/globals": true,
"es6": true,
"node": true
},
"globals": {},
"parser": null,
"parserOptions": {
"ecmaVersion": 2021,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"generators": false,
"objectLiteralDuplicateProperties": false
}
},
"plugins": [
"import",
"react",
"jsx-a11y",
"react-hooks",
"array-func",
"eslint-comments",
"html",
"json",
"markdown",
"no-constructor-bind",
"no-use-extend-native",
"optimize-regex",
"promise",
"simple-import-sort",
"switch-case",
"unicorn",
"no-secrets",
"no-unsanitized",
"scanjs-rules",
"security",
"sonarjs",
"jest",
"jest-async",
"jest-dom",
"testing-library",
"prettier"
],
"rules": {
"react/jsx-props-no-spreading": [
"off",
{
"html": "enforce",
"custom": "enforce",
"explicitSpread": "ignore",
"exceptions": []
}
],
"prettier/prettier": [
"off"
],
"unicorn/empty-brace-spaces": [
"off"
],
"unicorn/no-nested-ternary": [
"off"
],
"unicorn/number-literal-case": [
"off"
],
"react/jsx-child-element-spacing": [
"off"
],
"react/jsx-closing-bracket-location": [
"off",
"line-aligned"
],
"react/jsx-closing-tag-location": [
"off"
],
"react/jsx-curly-newline": [
"off",
{
"multiline": "consistent",
"singleline": "consistent"
}
],
"react/jsx-curly-spacing": [
"off",
"never",
{
"allowMultiline": true
}
],
"react/jsx-equals-spacing": [
"off",
"never"
],
"react/jsx-first-prop-new-line": [
"off",
"multiline-multiprop"
],
"react/jsx-indent": [
"off",
2
],
"react/jsx-indent-props": [
"off",
2
],
"react/jsx-max-props-per-line": [
"off",
{
"maximum": 1,
"when": "multiline"
}
],
"react/jsx-newline": [
"off"
],
"react/jsx-one-expression-per-line": [
"off",
{
"allow": "single-child"
}
],
"react/jsx-props-no-multi-spaces": [
"off"
],
"react/jsx-tag-spacing": [
"off",
{
"closingSlash": "never",
"beforeSelfClosing": "always",
"afterOpening": "never",
"beforeClosing": "never"
}
],
"react/jsx-wrap-multilines": [
"off",
{
"declaration": "parens-new-line",
"assignment": "parens-new-line",
"return": "parens-new-line",
"arrow": "parens-new-line",
"condition": "parens-new-line",
"logical": "parens-new-line",
"prop": "parens-new-line"
}
],
"react/jsx-space-before-closing": [
"off",
"always"
],
"@typescript-eslint/quotes": [
0
],
"@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/keyword-spacing": [
"off"
],
"@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/semi": [
"off"
],
"@typescript-eslint/space-before-function-paren": [
"off"
],
"@typescript-eslint/space-infix-ops": [
"off"
],
"@typescript-eslint/type-annotation-spacing": [
"off"
],
"curly": [
0,
"multi-line"
],
"lines-around-comment": [
0
],
"max-len": [
0,
100,
2,
{
"ignoreUrls": true,
"ignoreComments": false,
"ignoreRegExpLiterals": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true
}
],
"no-confusing-arrow": [
0,
{
"allowParens": true
}
],
"no-mixed-operators": [
0,
{
"groups": [
[
"%",
"**"
],
[
"%",
"+"
],
[
"%",
"-"
],
[
"%",
"*"
],
[
"%",
"/"
],
[
"/",
"*"
],
[
"&",
"|",
"<<",
">>",
">>>"
],
[
"==",
"!=",
"===",
"!=="
],
[
"&&",
"||"
]
],
"allowSamePrecedence": false
}
],
"no-tabs": [
0
],
"no-unexpected-multiline": [
0
],
"quotes": [
0,
"single",
{
"avoidEscape": true
}
],
"array-bracket-newline": [
"off",
"consistent"
],
"array-bracket-spacing": [
"off",
"never"
],
"array-element-newline": [
"off",
{
"multiline": true,
"minItems": 3
}
],
"arrow-parens": [
"off",
"always"
],
"arrow-spacing": [
"off",
{
"before": true,
"after": true
}
],
"block-spacing": [
"off",
"always"
],
"brace-style": [
"off",
"1tbs",
{
"allowSingleLine": true
}
],
"comma-dangle": [
"off",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "always-multiline"
}
],
"comma-spacing": [
"off",
{
"before": false,
"after": true
}
],
"comma-style": [
"off",
"last",
{
"exceptions": {
"ArrayExpression": false,
"ArrayPattern": false,
"ArrowFunctionExpression": false,
"CallExpression": false,
"FunctionDeclaration": false,
"FunctionExpression": false,
"ImportDeclaration": false,
"ObjectExpression": false,
"ObjectPattern": false,
"VariableDeclaration": false,
"NewExpression": false
}
}
],
"computed-property-spacing": [
"off",
"never"
],
"dot-location": [
"off",
"property"
],
"eol-last": [
"off",
"always"
],
"func-call-spacing": [
"off",
"never"
],
"function-call-argument-newline": [
"off",
"consistent"
],
"function-paren-newline": [
"off",
"consistent"
],
"generator-star": [
"off"
],
"generator-star-spacing": [
"off",
{
"before": false,
"after": true
}
],
"implicit-arrow-linebreak": [
"off",
"beside"
],
"indent": [
"off",
2,
{
"SwitchCase": 1,
"VariableDeclarator": 1,
"outerIIFEBody": 1,
"FunctionDeclaration": {
"parameters": 1,
"body": 1
},
"FunctionExpression": {
"parameters": 1,
"body": 1
},
"CallExpression": {
"arguments": 1
},
"ArrayExpression": 1,
"ObjectExpression": 1,
"ImportDeclaration": 1,
"flatTernaryExpressions": false,
"ignoredNodes": [
"JSXElement",
"JSXElement > *",
"JSXAttribute",
"JSXIdentifier",
"JSXNamespacedName",
"JSXMemberExpression",
"JSXSpreadAttribute",
"JSXExpressionContainer",
"JSXOpeningElement",
"JSXClosingElement",
"JSXFragment",
"JSXOpeningFragment",
"JSXClosingFragment",
"JSXText",
"JSXEmptyExpression",
"JSXSpreadChild"
],
"ignoreComments": false,
"offsetTernaryExpressions": false
}
],
"jsx-quotes": [
"off",
"prefer-double"
],
"key-spacing": [
"off",
{
"beforeColon": false,
"afterColon": true
}
],
"keyword-spacing": [
"off",
{
"before": true,
"after": true,
"overrides": {
"return": {
"after": true
},
"throw": {
"after": true
},
"case": {
"after": true
}
}
}
],
"linebreak-style": [
"off",
"unix"
],
"multiline-ternary": [
"off",
"never"
],
"newline-per-chained-call": [
"off",
{
"ignoreChainWithDepth": 4
}
],
"new-parens": [
"off"
],
"no-arrow-condition": [
"off"
],
"no-comma-dangle": [
"off"
],
"no-extra-parens": [
"off",
"all",
{
"conditionalAssign": true,
"nestedBinaryExpressions": false,
"returnAssign": false,
"ignoreJSX": "all",
"enforceForArrowConditionals": false
}
],
"no-extra-semi": [
"off"
],
"no-floating-decimal": [
"off"
],
"no-mixed-spaces-and-tabs": [
"off"
],
"no-multi-spaces": [
"off",
{
"ignoreEOLComments": false
}
],
"no-multiple-empty-lines": [
"off",
{
"max": 1,
"maxBOF": 0,
"maxEOF": 0
}
],
"no-reserved-keys": [
"off"
],
"no-space-before-semi": [
"off"
],
"no-trailing-spaces": [
"off",
{
"skipBlankLines": false,
"ignoreComments": false
}
],
"no-whitespace-before-property": [
"off"
],
"no-wrap-func": [
"off"
],
"nonblock-statement-body-position": [
"off",
"beside",
{
"overrides": {}
}
],
"object-curly-newline": [
"off",
{
"ObjectExpression": {
"minProperties": 4,
"multiline": true,
"consistent": true
},
"ObjectPattern": {
"minProperties": 4,
"multiline": true,
"consistent": true
},
"ImportDeclaration": {
"minProperties": 4,
"multiline": true,
"consistent": true
},
"ExportDeclaration": {
"minProperties": 4,
"multiline": true,
"consistent": true
}
}
],
"object-curly-spacing": [
"off",
"always"
],
"object-property-newline": [
"off",
{
"allowAllPropertiesOnSameLine": true,
"allowMultiplePropertiesPerLine": false
}
],
"one-var-declaration-per-line": [
"off",
"always"
],
"operator-linebreak": [
"off",
"before",
{
"overrides": {
"=": "none"
}
}
],
"padded-blocks": [
"off",
{
"blocks": "never",
"classes": "never",
"switches": "never"
},
{
"allowSingleLineBlocks": true
}
],
"quote-props": [
"off",
"as-needed",
{
"keywords": false,
"unnecessary": true,
"numbers": false
}
],
"rest-spread-spacing": [
"off",
"never"
],
"semi": [
"off",
"always"
],
"semi-spacing": [
"off",
{
"before": false,
"after": true
}
],
"semi-style": [
"off",
"last"
],
"space-after-function-name": [
"off"
],
"space-after-keywords": [
"off"
],
"space-before-blocks": [
"off"
],
"space-before-function-paren": [
"off",
{
"anonymous": "always",
"named": "never",
"asyncArrow": "always"
}
],
"space-before-function-parentheses": [
"off"
],
"space-before-keywords": [
"off"
],
"space-in-brackets": [
"off"
],
"space-in-parens": [
"off",
"never"
],
"space-infix-ops": [
"off"
],
"space-return-throw-case": [
"off"
],
"space-unary-ops": [
"off",
{
"words": true,
"nonwords": false,
"overrides": {}
}
],
"space-unary-word-ops": [
"off"
],
"switch-colon-spacing": [
"off",
{
"after": true,
"before": false
}
],
"template-curly-spacing": [
"off"
],
"template-tag-spacing": [
"off",
"never"
],
"unicode-bom": [
"off",
"never"
],
"wrap-iife": [
"off",
"outside",
{
"functionPrototypeMethods": false
}
],
"wrap-regex": [
"off"
],
"yield-star-spacing": [
"off",
"after"
],
"indent-legacy": [
"off"
],
"no-spaced-func": [
"off"
],
"testing-library/await-fire-event": [
0
],
"testing-library/consistent-data-testid": [
0
],
"testing-library/no-debug": [
0
],
"testing-library/no-dom-import": [
0,
"react"
],
"testing-library/no-manual-cleanup": [
0
],
"testing-library/no-render-in-setup": [
0
],
"testing-library/no-await-sync-events": [
0
],
"testing-library/no-wait-for-empty-callback": [
0
],
"testing-library/no-wait-for-snapshot": [
0
],
"testing-library/prefer-explicit-assert": [
0
],
"testing-library/prefer-presence-queries": [
0
],
"testing-library/prefer-screen-queries": [
0
],
"testing-library/prefer-wait-for": [
0
],
"testing-library/await-async-query": [
"error"
],
"testing-library/await-async-utils": [
"error"
],
"testing-library/no-await-sync-query": [
"error"
],
"testing-library/prefer-find-by": [
"error"
],
"jest-dom/prefer-checked": [
"error"
],
"jest-dom/prefer-empty": [
"error"
],
"jest-dom/prefer-enabled-disabled": [
"error"
],
"jest-dom/prefer-focus": [
"error"
],
"jest-dom/prefer-in-document": [
"error"
],
"jest-dom/prefer-required": [
"error"
],
"jest-dom/prefer-to-have-attribute": [
"error"
],
"jest-dom/prefer-to-have-class": [
"error"
],
"jest-dom/prefer-to-have-style": [
"error"
],
"jest-dom/prefer-to-have-text-content": [
"error"
],
"jest-dom/prefer-to-have-value": [
"error"
],
"jest-async/expect-return": [
"error"
],
"jest/no-disabled-tests": [
"off"
],
"jest/consistent-test-it": [
0
],
"jest/lowercase-name": [
0
],
"jest/no-conditional-expect": [
0
],
"jest/no-deprecated-functions": [
0
],
"jest/no-duplicate-hooks": [
0
],
"jest/no-expect-resolves": [
0
],
"jest/no-hooks": [
0
],
"jest/no-if": [
0
],
"jest/no-interpolation-in-snapshots": [
0
],
"jest/no-large-snapshots": [
0
],
"jest/no-restricted-matchers": [
0
],
"jest/no-test-return-statement": [
0
],
"jest/no-truthy-falsy": [
0
],
"jest/prefer-called-with": [
0
],
"jest/prefer-expect-assertions": [
0
],
"jest/prefer-hooks-on-top": [
0
],
"jest/prefer-inline-snapshots": [
0
],
"jest/prefer-spy-on": [
0
],
"jest/prefer-strict-equal": [
0
],
"jest/prefer-todo": [
0
],
"jest/require-to-throw-message": [
0
],
"jest/require-top-level-describe": [
0
],
"jest/valid-title": [
0
],
"jest/no-alias-methods": [
"warn"
],
"jest/prefer-to-be-null": [
"error"
],
"jest/prefer-to-be-undefined": [
"error"
],
"jest/prefer-to-contain": [
"error"
],
"jest/prefer-to-have-length": [
"error"
],
"jest/expect-expect": [
"warn"
],
"jest/no-commented-out-tests": [
"warn"
],
"jest/no-done-callback": [
"error"
],
"jest/no-export": [
"error"
],
"jest/no-focused-tests": [
"error"
],
"jest/no-identical-title": [
"error"
],
"jest/no-jasmine-globals": [
"error"
],
"jest/no-jest-import": [
"error"
],
"jest/no-mocks-import": [
"error"
],
"jest/no-standalone-expect": [
"error"
],
"jest/no-test-prefixes": [
"error"
],
"jest/no-try-expect": [
"error"
],
"jest/valid-describe": [
"error"
],
"jest/valid-expect-in-promise": [
"error"
],
"jest/valid-expect": [
"error"
],
"sonarjs/no-duplicate-string": [
"off"
],
"sonarjs/cognitive-complexity": [
"error"
],
"sonarjs/max-switch-cases": [
"error"
],
"sonarjs/no-all-duplicated-branches": [
"error"
],
"sonarjs/no-collapsible-if": [
"error"
],
"sonarjs/no-collection-size-mischeck": [
"error"
],
"sonarjs/no-duplicated-branches": [
"error"
],
"sonarjs/no-element-overwrite": [
"error"
],
"sonarjs/no-extra-arguments": [
"error"
],
"sonarjs/no-identical-conditions": [
"error"
],
"sonarjs/no-identical-functions": [
"error"
],
"sonarjs/no-identical-expressions": [
"error"
],
"sonarjs/no-inverted-boolean-check": [
"error"
],
"sonarjs/no-one-iteration-loop": [
"error"
],
"sonarjs/no-redundant-boolean": [
"error"
],
"sonarjs/no-redundant-jump": [
"error"
],
"sonarjs/no-same-line-conditional": [
"error"
],
"sonarjs/no-small-switch": [
"error"
],
"sonarjs/no-unused-collection": [
"error"
],
"sonarjs/no-use-of-empty-return-value": [
"error"
],
"sonarjs/no-useless-catch": [
"error"
],
"sonarjs/prefer-immediate-return": [
"error"
],
"sonarjs/prefer-object-literal": [
"error"
],
"sonarjs/prefer-single-boolean-return": [
"error"
],
"sonarjs/prefer-while": [
"error"
],
"security/detect-object-injection": [
0
],
"security/detect-buffer-noassert": [
"warn"
],
"security/detect-child-process": [
"warn"
],
"security/detect-disable-mustache-escape": [
"warn"
],
"security/detect-eval-with-expression": [
"warn"
],
"security/detect-new-buffer": [
"warn"
],
"security/detect-no-csrf-before-method-override": [
"warn"
],
"security/detect-non-literal-fs-filename": [
"warn"
],
"security/detect-non-literal-regexp": [
"warn"
],
"security/detect-non-literal-require": [
"warn"
],
"security/detect-possible-timing-attacks": [
"warn"
],
"security/detect-pseudoRandomBytes": [
"warn"
],
"security/detect-unsafe-regex": [
"warn"
],
"scanjs-rules/accidental_assignment": [
1
],
"scanjs-rules/assign_to_hostname": [
1
],
"scanjs-rules/assign_to_href": [
1
],
"scanjs-rules/assign_to_location": [
1
],
"scanjs-rules/assign_to_onmessage": [
1
],
"scanjs-rules/assign_to_pathname": [
1
],
"scanjs-rules/assign_to_protocol": [
1
],
"scanjs-rules/assign_to_search": [
1
],
"scanjs-rules/assign_to_src": [
1
],
"scanjs-rules/call_Function": [
1
],
"scanjs-rules/call_addEventListener": [
0
],
"scanjs-rules/call_addEventListener_deviceproximity": [
1
],
"scanjs-rules/call_addEventListener_message": [
0
],
"scanjs-rules/call_connect": [
1
],
"scanjs-rules/call_eval": [
1
],
"scanjs-rules/call_execScript": [
1
],
"scanjs-rules/call_hide": [
1
],
"scanjs-rules/call_open_remote=true": [
1
],
"scanjs-rules/call_parseFromString": [
1
],
"scanjs-rules/call_setImmediate": [
0
],
"scanjs-rules/call_setInterval": [
0
],
"scanjs-rules/call_setTimeout": [
0
],
"scanjs-rules/identifier_indexedDB": [
1
],
"scanjs-rules/identifier_localStorage": [
1
],
"scanjs-rules/identifier_sessionStorage": [
1
],
"scanjs-rules/new_Function": [
1
],
"scanjs-rules/property_addIdleObserver": [
1
],
"scanjs-rules/property_createContextualFragment": [
1
],
"scanjs-rules/property_crypto": [
1
],
"scanjs-rules/property_geolocation": [
1
],
"scanjs-rules/property_getUserMedia": [
1
],
"scanjs-rules/property_indexedDB": [
1
],
"scanjs-rules/property_localStorage": [
1
],
"scanjs-rules/property_mgmt": [
1
],
"scanjs-rules/property_sessionStorage": [
1
],
"scanjs-rules/call_setAttribute_mozbrowser": [
0
],
"no-unsanitized/method": [
"error"
],
"no-unsanitized/property": [
"error"
],
"no-secrets/no-secrets": [
"error"
],
"unicorn/filename-case": [
0
],
"unicorn/prefer-exponentiation-operator": [
0
],
"unicorn/regex-shorthand": [
0
],
"unicorn/no-fn-reference-in-iterator": [
0
],
"unicorn/no-array-for-each": [
0
],
"unicorn/no-reduce": [
0
],
"unicorn/no-null": [
0
],
"unicorn/prefer-number-properties": [
0
],
"unicorn/prefer-optional-catch-binding": [
0
],
"unicorn/prevent-abbreviations": [
0
],
"unicorn/better-regex": [
"error"
],
"unicorn/catch-error-name": [
"error"
],
"unicorn/consistent-destructuring": [
"error"
],
"unicorn/consistent-function-scoping": [
"error"
],
"unicorn/custom-error-definition": [
"off"
],
"unicorn/error-message": [
"error"
],
"unicorn/escape-case": [
"error"
],
"unicorn/expiring-todo-comments": [
"error"
],
"unicorn/explicit-length-check": [
"error"
],
"unicorn/import-index": [
"off"
],
"unicorn/import-style": [
"error"
],
"unicorn/new-for-builtins": [
"error"
],
"unicorn/no-abusive-eslint-disable": [
"error"
],
"unicorn/no-array-callback-reference": [
"error"
],
"unicorn/no-array-push-push": [
"error"
],
"unicorn/no-array-reduce": [
"error"
],
"unicorn/no-console-spaces": [
"error"
],
"unicorn/no-for-loop": [
"error"
],
"unicorn/no-hex-escape": [
"error"
],
"unicorn/no-instanceof-array": [
"error"
],
"unicorn/no-keyword-prefix": [
"off"
],
"unicorn/no-lonely-if": [
"error"
],
"no-nested-ternary": [
"off"
],
"unicorn/no-new-array": [
"error"
],
"unicorn/no-new-buffer": [
"error"
],
"unicorn/no-object-as-default-parameter": [
"error"
],
"unicorn/no-process-exit": [
"error"
],
"unicorn/no-this-assignment": [
"error"
],
"unicorn/no-unreadable-array-destructuring": [
"error"
],
"unicorn/no-unsafe-regex": [
"off"
],
"unicorn/no-unused-properties": [
"off"
],
"unicorn/no-useless-undefined": [
"error"
],
"unicorn/no-zero-fractions": [
"error"
],
"unicorn/numeric-separators-style": [
"off"
],
"unicorn/prefer-add-event-listener": [
"error"
],
"unicorn/prefer-array-find": [
"error"
],
"unicorn/prefer-array-flat-map": [
"off"
],
"unicorn/prefer-array-index-of": [
"error"
],
"unicorn/prefer-array-some": [
"error"
],
"unicorn/prefer-date-now": [
"error"
],
"unicorn/prefer-default-parameters": [
"error"
],
"unicorn/prefer-dom-node-append": [
"error"
],
"unicorn/prefer-dom-node-dataset": [
"error"
],
"unicorn/prefer-dom-node-remove": [
"error"
],
"unicorn/prefer-dom-node-text-content": [
"error"
],
"unicorn/prefer-includes": [
"error"
],
"unicorn/prefer-keyboard-event-key": [
"error"
],
"unicorn/prefer-math-trunc": [
"error"
],
"unicorn/prefer-modern-dom-apis": [
"error"
],
"unicorn/prefer-negative-index": [
"error"
],
"unicorn/prefer-query-selector": [
"error"
],
"unicorn/prefer-reflect-apply": [
"error"
],
"unicorn/prefer-regexp-test": [
"error"
],
"unicorn/prefer-set-has": [
"error"
],
"unicorn/prefer-spread": [
"error"
],
"unicorn/prefer-string-replace-all": [
"off"
],
"unicorn/prefer-string-slice": [
"error"
],
"unicorn/prefer-string-starts-ends-with": [
"error"
],
"unicorn/prefer-string-trim-start-end": [
"error"
],
"unicorn/prefer-ternary": [
"error"
],
"unicorn/prefer-type-error": [
"error"
],
"unicorn/string-content": [
"off"
],
"unicorn/throw-new-error": [
"error"
],
"switch-case/newline-between-switch-case": [
"error",
"always",
{
"fallthrough": "never"
}
],
"switch-case/no-case-curly": [
"error"
],
"simple-import-sort/imports": [
"error"
],
"simple-import-sort/exports": [
"error"
],
"sort-imports": [
"off",
{
"ignoreCase": false,
"ignoreDeclarationSort": false,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": [
"none",
"all",
"multiple",
"single"
]
}
],
"import/order": [
"off",
{
"groups": [
[
"builtin",
"external",
"internal"
]
]
}
],
"promise/prefer-await-to-callbacks": [
"off"
],
"promise/prefer-await-to-then": [
"off"
],
"promise/always-return": [
"error"
],
"promise/no-return-wrap": [
"error"
],
"promise/param-names": [
"error"
],
"promise/catch-or-return": [
"error"
],
"promise/no-native": [
"off"
],
"promise/no-nesting": [
"warn"
],
"promise/no-promise-in-callback": [
"warn"
],
"promise/no-callback-in-promise": [
"warn"
],
"promise/avoid-new": [
"off"
],
"promise/no-new-statics": [
"error"
],
"promise/no-return-in-finally": [
"warn"
],
"promise/valid-params": [
"warn"
],
"optimize-regex/optimize-regex": [
"warn"
],
"no-use-extend-native/no-use-extend-native": [
"error"
],
"no-constructor-bind/no-constructor-bind": [
"error"
],
"no-constructor-bind/no-constructor-state": [
"error"
],
"no-var": [
0
],
"no-unused-vars": [
0,
{
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true
}
],
"json/colon-expected": [
0
],
"json/comma-expected": [
0
],
"json/comma-or-close-backet-expected": [
0
],
"json/comma-or-close-brace-expected": [
0
],
"json/comment-not-permitted": [
0
],
"json/duplicate-key": [
0
],
"json/enum-value-mismatch": [
0
],
"json/invalid-character": [
0
],
"json/invalid-escape-character": [
0
],
"json/invalid-unicode": [
0
],
"json/json": [
0
],
"json/property-expected": [
0
],
"json/schema-resolve-error": [
0
],
"json/trailing-comma": [
0
],
"json/undefined": [
0
],
"json/unexpected-end-of-comment": [
0
],
"json/unexpected-end-of-number": [
0
],
"json/unexpected-end-of-string": [
0
],
"json/unknown": [
0
],
"json/value-expected": [
0
],
"json/*": [
"error",
{
"allowComments": true
}
],
"eslint-comments/no-restricted-disable": [
0
],
"eslint-comments/no-unused-disable": [
0
],
"eslint-comments/no-use": [
0
],
"eslint-comments/require-description": [
0
],
"eslint-comments/disable-enable-pair": [
"error"
],
"eslint-comments/no-aggregating-enable": [
"error"
],
"eslint-comments/no-duplicate-disable": [
"error"
],
"eslint-comments/no-unlimited-disable": [
"error"
],
"eslint-comments/no-unused-enable": [
"error"
],
"array-func/prefer-array-from": [
"off"
],
"array-func/prefer-flat": [
0
],
"array-func/prefer-flat-map": [
0
],
"array-func/from-map": [
"error"
],
"array-func/no-unnecessary-this-arg": [
"error"
],
"array-func/avoid-reverse": [
"error"
],
"react/jsx-no-constructed-context-values": [
0
],
"react-hooks/rules-of-hooks": [
"error"
],
"react-hooks/exhaustive-deps": [
"error"
],
"jsx-a11y/anchor-has-content": [
"error",
{
"components": []
}
],
"jsx-a11y/aria-role": [
"error",
{
"ignoreNonDOM": false
}
],
"jsx-a11y/aria-props": [
"error"
],
"jsx-a11y/aria-proptypes": [
"error"
],
"jsx-a11y/aria-unsupported-elements": [
"error"
],
"jsx-a11y/alt-text": [
"error",
{
"elements": [
"img",
"object",
"area",
"input[type=\"image\"]"
],
"img": [],
"object": [],
"area": [],
"input[type=\"image\"]": []
}
],
"jsx-a11y/img-redundant-alt": [
"error"
],
"jsx-a11y/label-has-for": [
"off",
{
"components": [],
"required": {
"every": [
"nesting",
"id"
]
},
"allowChildren": false
}
],
"jsx-a11y/label-has-associated-control": [
"error",
{
"labelComponents": [],
"labelAttributes": [],
"controlComponents": [],
"assert": "both",
"depth": 25
}
],
"jsx-a11y/control-has-associated-label": [
"error",
{
"labelAttributes": [
"label"
],
"controlComponents": [],
"ignoreElements": [
"audio",
"canvas",
"embed",
"input",
"textarea",
"tr",
"video"
],
"ignoreRoles": [
"grid",
"listbox",
"menu",
"menubar",
"radiogroup",
"row",
"tablist",
"toolbar",
"tree",
"treegrid"
],
"depth": 5
}
],
"jsx-a11y/mouse-events-have-key-events": [
"error"
],
"jsx-a11y/no-access-key": [
"error"
],
"jsx-a11y/no-onchange": [
"off"
],
"jsx-a11y/interactive-supports-focus": [
"error"
],
"jsx-a11y/role-has-required-aria-props": [
"error"
],
"jsx-a11y/role-supports-aria-props": [
"error"
],
"jsx-a11y/tabindex-no-positive": [
"error"
],
"jsx-a11y/heading-has-content": [
"error",
{
"components": [
""
]
}
],
"jsx-a11y/html-has-lang": [
"error"
],
"jsx-a11y/lang": [
"error"
],
"jsx-a11y/no-distracting-elements": [
"error",
{
"elements": [
"marquee",
"blink"
]
}
],
"jsx-a11y/scope": [
"error"
],
"jsx-a11y/click-events-have-key-events": [
"error"
],
"jsx-a11y/no-static-element-interactions": [
"error",
{
"handlers": [
"onClick",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
]
}
],
"jsx-a11y/no-noninteractive-element-interactions": [
"error",
{
"handlers": [
"onClick",
"onMouseDown",
"onMouseUp",
"onKeyPress",
"onKeyDown",
"onKeyUp"
]
}
],
"jsx-a11y/accessible-emoji": [
"off"
],
"jsx-a11y/aria-activedescendant-has-tabindex": [
"error"
],
"jsx-a11y/iframe-has-title": [
"error"
],
"jsx-a11y/no-autofocus": [
"error",
{
"ignoreNonDOM": true
}
],
"jsx-a11y/no-redundant-roles": [
"error"
],
"jsx-a11y/media-has-caption": [
"error",
{
"audio": [],
"video": [],
"track": []
}
],
"jsx-a11y/no-interactive-element-to-noninteractive-role": [
"error",
{
"tr": [
"none",
"presentation"
]
}
],
"jsx-a11y/no-noninteractive-element-to-interactive-role": [
"error",
{
"ul": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
],
"ol": [
"listbox",
"menu",
"menubar",
"radiogroup",
"tablist",
"tree",
"treegrid"
],
"li": [
"menuitem",
"option",
"row",
"tab",
"treeitem"
],
"table": [
"grid"
],
"td": [
"gridcell"
]
}
],
"jsx-a11y/no-noninteractive-tabindex": [
"error",
{
"tags": [],
"roles": [
"tabpanel"
]
}
],
"jsx-a11y/anchor-is-valid": [
"error",
{
"components": [
"Link"
],
"specialLink": [
"to"
],
"aspects": [
"noHref",
"invalidHref",
"preferButton"
]
}
],
"jsx-a11y/autocomplete-valid": [
"off",
{
"inputComponents": []
}
],
"no-underscore-dangle": [
"error",
{
"allow": [
"__REDUX_DEVTOOLS_EXTENSION_COMPOSE__"
],
"allowAfterThis": false,
"allowAfterSuper": false,
"enforceInMethodNames": true,
"allowAfterThisConstructor": false,
"allowFunctionParams": true
}
],
"class-methods-use-this": [
"error",
{
"exceptMethods": [
"render",
"getInitialState",
"getDefaultProps",
"getChildContext",
"componentWillMount",
"UNSAFE_componentWillMount",
"componentDidMount",
"componentWillReceiveProps",
"UNSAFE_componentWillReceiveProps",
"shouldComponentUpdate",
"componentWillUpdate",
"UNSAFE_componentWillUpdate",
"componentDidUpdate",
"componentWillUnmount",
"componentDidCatch",
"getSnapshotBeforeUpdate"
]
}
],
"react/display-name": [
"off",
{
"ignoreTranspilerName": false
}
],
"react/forbid-prop-types": [
"error",
{
"forbid": [
"any",
"array",
"object"
],
"checkContextTypes": true,
"checkChildContextTypes": true
}
],
"react/forbid-dom-props": [
"off",
{
"forbid": []
}
],
"react/jsx-boolean-value": [
"error",
"never",
{
"always": []
}
],
"react/jsx-handler-names": [
"off",
{
"eventHandlerPrefix": "handle",
"eventHandlerPropPrefix": "on"
}
],
"react/jsx-key": [
"off"
],
"react/jsx-no-bind": [
"error",
{
"ignoreRefs": true,
"allowArrowFunctions": true,
"allowFunctions": false,
"allowBind": false,
"ignoreDOMComponents": true
}
],
"react/jsx-no-duplicate-props": [
"error",
{
"ignoreCase": true
}
],
"react/jsx-no-literals": [
"off",
{
"noStrings": true
}
],
"react/jsx-no-undef": [
"error"
],
"react/jsx-pascal-case": [
"error",
{
"allowAllCaps": true,
"ignore": []
}
],
"react/sort-prop-types": [
"off",
{
"ignoreCase": true,
"callbacksLast": false,
"requiredFirst": false,
"sortShapeProp": true
}
],
"react/jsx-sort-prop-types": [
"off"
],
"react/jsx-sort-props": [
"off",
{
"ignoreCase": true,
"callbacksLast": false,
"shorthandFirst": false,
"shorthandLast": false,
"noSortAlphabetically": false,
"reservedFirst": true
}
],
"react/jsx-sort-default-props": [
"off",
{
"ignoreCase": true
}
],
"react/jsx-uses-react": [
"error"
],
"react/jsx-uses-vars": [
"error"
],
"react/no-danger": [
"warn"
],
"react/no-deprecated": [
"error"
],
"react/no-did-mount-set-state": [
"off"
],
"react/no-did-update-set-state": [
"error"
],
"react/no-will-update-set-state": [
"error"
],
"react/no-direct-mutation-state": [
"off"
],
"react/no-is-mounted": [
"error"
],
"react/no-multi-comp": [
"off"
],
"react/no-set-state": [
"off"
],
"react/no-string-refs": [
"error"
],
"react/no-unknown-property": [
"error"
],
"react/prefer-es6-class": [
"error",
"always"
],
"react/prefer-stateless-function": [
"error",
{
"ignorePureComponents": true
}
],
"react/prop-types": [
"error",
{
"ignore": [],
"customValidators": [],
"skipUndeclared": false
}
],
"react/react-in-jsx-scope": [
"error"
],
"react/require-render-return": [
"error"
],
"react/self-closing-comp": [
"error"
],
"react/sort-comp": [
"error",
{
"order": [
"static-variables",
"static-methods",
"instance-variables",
"lifecycle",
"/^handle.+$/",
"/^on.+$/",
"getters",
"setters",
"/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/",
"instance-methods",
"everything-else",
"rendering"
],
"groups": {
"lifecycle": [
"displayName",
"propTypes",
"contextTypes",
"childContextTypes",
"mixins",
"statics",
"defaultProps",
"constructor",
"getDefaultProps",
"getInitialState",
"state",
"getChildContext",
"getDerivedStateFromProps",
"componentWillMount",
"UNSAFE_componentWillMount",
"componentDidMount",
"componentWillReceiveProps",
"UNSAFE_componentWillReceiveProps",
"shouldComponentUpdate",
"componentWillUpdate",
"UNSAFE_componentWillUpdate",
"getSnapshotBeforeUpdate",
"componentDidUpdate",
"componentDidCatch",
"componentWillUnmount"
],
"rendering": [
"/^render.+$/",
"render"
]
}
}
],
"react/jsx-no-target-blank": [
"error",
{
"enforceDynamicLinks": "always"
}
],
"react/jsx-filename-extension": [
"error",
{
"extensions": [
".jsx"
]
}
],
"react/jsx-no-comment-textnodes": [
"error"
],
"react/no-render-return-value": [
"error"
],
"react/require-optimization": [
"off",
{
"allowDecorators": []
}
],
"react/no-find-dom-node": [
"error"
],
"react/forbid-component-props": [
"off",
{
"forbid": []
}
],
"react/forbid-elements": [
"off",
{
"forbid": []
}
],
"react/no-danger-with-children": [
"error"
],
"react/no-unused-prop-types": [
"error",
{
"customValidators": [],
"skipShapeProps": true
}
],
"react/style-prop-object": [
"error"
],
"react/no-unescaped-entities": [
"error"
],
"react/no-children-prop": [
"error"
],
"react/no-array-index-key": [
"error"
],
"react/require-default-props": [
"error",
{
"forbidDefaultForRequired": true
}
],
"react/forbid-foreign-prop-types": [
"warn",
{
"allowInPropTypes": true
}
],
"react/void-dom-elements-no-children": [
"error"
],
"react/default-props-match-prop-types": [
"error",
{
"allowRequiredDefaults": false
}
],
"react/no-redundant-should-component-update": [
"error"
],
"react/no-unused-state": [
"error"
],
"react/boolean-prop-naming": [
"off",
{
"propTypeNames": [
"bool",
"mutuallyExclusiveTrueProps"
],
"rule": "^(is|has)[A-Z]([A-Za-z0-9]?)+",
"message": ""
}
],
"react/no-typos": [
"error"
],
"react/jsx-curly-brace-presence": [
"error",
{
"props": "never",
"children": "never"
}
],
"react/destructuring-assignment": [
"error",
"always"
],
"react/no-access-state-in-setstate": [
"error"
],
"react/button-has-type": [
"error",
{
"button": true,
"submit": true,
"reset": false
}
],
"react/no-this-in-sfc": [
"error"
],
"react/jsx-max-depth": [
"off"
],
"react/no-unsafe": [
"off"
],
"react/jsx-fragments": [
"error",
"syntax"
],
"react/state-in-constructor": [
"error",
"always"
],
"react/static-property-placement": [
"error",
"property assignment"
],
"react/prefer-read-only-props": [
"off"
],
"react/jsx-no-script-url": [
"off",
[
{
"name": "Link",
"props": [
"to"
]
}
]
],
"react/jsx-no-useless-fragment": [
"off"
],
"react/no-adjacent-inline-elements": [
"off"
],
"react/function-component-definition": [
"off",
{
"namedComponents": "function-expression",
"unnamedComponents": "function-expression"
}
],
"strict": [
"error",
"never"
],
"import/no-unresolved": [
"error",
{
"commonjs": true,
"caseSensitive": true
}
],
"import/named": [
"error"
],
"import/default": [
"off"
],
"import/namespace": [
"off"
],
"import/export": [
"error"
],
"import/no-named-as-default": [
"error"
],
"import/no-named-as-default-member": [
"error"
],
"import/no-deprecated": [
"off"
],
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": [
"test/**",
"tests/**",
"spec/**",
"**/__tests__/**",
"**/__mocks__/**",
"test.{js,jsx}",
"test-*.{js,jsx}",
"**/*{.,_}{test,spec}.{js,jsx}",
"**/jest.config.js",
"**/jest.setup.js",
"**/vue.config.js",
"**/webpack.config.js",
"**/webpack.config.*.js",
"**/rollup.config.js",
"**/rollup.config.*.js",
"**/gulpfile.js",
"**/gulpfile.*.js",
"**/Gruntfile{,.js}",
"**/protractor.conf.js",
"**/protractor.conf.*.js",
"**/karma.conf.js"
],
"optionalDependencies": false
}
],
"import/no-mutable-exports": [
"error"
],
"import/no-commonjs": [
"off"
],
"import/no-amd": [
"error"
],
"import/no-nodejs-modules": [
"off"
],
"import/first": [
"error"
],
"import/imports-first": [
"off"
],
"import/no-duplicates": [
"error"
],
"import/no-namespace": [
"off"
],
"import/extensions": [
"error",
"ignorePackages",
{
"js": "never",
"mjs": "never",
"jsx": "never"
}
],
"import/newline-after-import": [
"error"
],
"import/prefer-default-export": [
"error"
],
"import/no-restricted-paths": [
"off"
],
"import/max-dependencies": [
"off",
{
"max": 10
}
],
"import/no-absolute-path": [
"error"
],
"import/no-dynamic-require": [
"error"
],
"import/no-internal-modules": [
"off",
{
"allow": []
}
],
"import/unambiguous": [
"off"
],
"import/no-webpack-loader-syntax": [
"error"
],
"import/no-unassigned-import": [
"off"
],
"import/no-named-default": [
"error"
],
"import/no-anonymous-default-export": [
"off",
{
"allowArray": false,
"allowArrowFunction": false,
"allowAnonymousClass": false,
"allowAnonymousFunction": false,
"allowLiteral": false,
"allowObject": false
}
],
"import/exports-last": [
"off"
],
"import/group-exports": [
"off"
],
"import/no-default-export": [
"off"
],
"import/no-named-export": [
"off"
],
"import/no-self-import": [
"error"
],
"import/no-cycle": [
"error",
{
"maxDepth": "∞",
"ignoreExternal": false
}
],
"import/no-useless-path-segments": [
"error",
{
"commonjs": true
}
],
"import/dynamic-import-chunkname": [
"off",
{
"importFunctions": [],
"webpackChunknameFormat": "[0-9a-zA-Z-_/.]+"
}
],
"import/no-relative-parent-imports": [
"off"
],
"import/no-unused-modules": [
"off",
{
"ignoreExports": [],
"missingExports": true,
"unusedExports": true
}
],
"arrow-body-style": [
"error",
"as-needed",
{
"requireReturnForObjectLiteral": false
}
],
"constructor-super": [
"error"
],
"no-class-assign": [
"error"
],
"no-const-assign": [
"error"
],
"no-dupe-class-members": [
"error"
],
"no-duplicate-imports": [
"off"
],
"no-new-symbol": [
"error"
],
"no-restricted-exports": [
"off",
{
"restrictedNamedExports": [
"default",
"then"
]
}
],
"no-restricted-imports": [
"off",
{
"paths": [],
"patterns": []
}
],
"no-this-before-super": [
"error"
],
"no-useless-computed-key": [
"error"
],
"no-useless-constructor": [
"error"
],
"no-useless-rename": [
"error",
{
"ignoreDestructuring": false,
"ignoreImport": false,
"ignoreExport": false
}
],
"object-shorthand": [
"error",
"always",
{
"ignoreConstructors": false,
"avoidQuotes": true
}
],
"prefer-arrow-callback": [
"error",
{
"allowNamedFunctions": false,
"allowUnboundThis": true
}
],
"prefer-const": [
"error",
{
"destructuring": "any",
"ignoreReadBeforeAssign": true
}
],
"prefer-destructuring": [
"error",
{
"VariableDeclarator": {
"array": false,
"object": true
},
"AssignmentExpression": {
"array": true,
"object": false
}
},
{
"enforceForRenamedProperties": false
}
],
"prefer-numeric-literals": [
"error"
],
"prefer-reflect": [
"off"
],
"prefer-rest-params": [
"error"
],
"prefer-spread": [
"error"
],
"prefer-template": [
"error"
],
"require-yield": [
"error"
],
"symbol-description": [
"error"
],
"init-declarations": [
"off"
],
"no-catch-shadow": [
"off"
],
"no-delete-var": [
"error"
],
"no-label-var": [
"error"
],
"no-restricted-globals": [
"error",
{
"name": "isFinite",
"message": "Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite"
},
{
"name": "isNaN",
"message": "Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan"
},
"addEventListener",
"blur",
"close",
"closed",
"confirm",
"defaultStatus",
"defaultstatus",
"event",
"external",
"find",
"focus",
"frameElement",
"frames",
"history",
"innerHeight",
"innerWidth",
"length",
"location",
"locationbar",
"menubar",
"moveBy",
"moveTo",
"name",
"onblur",
"onerror",
"onfocus",
"onload",
"onresize",
"onunload",
"open",
"opener",
"opera",
"outerHeight",
"outerWidth",
"pageXOffset",
"pageYOffset",
"parent",
"print",
"removeEventListener",
"resizeBy",
"resizeTo",
"screen",
"screenLeft",
"screenTop",
"screenX",
"screenY",
"scroll",
"scrollbars",
"scrollBy",
"scrollTo",
"scrollX",
"scrollY",
"self",
"status",
"statusbar",
"stop",
"toolbar",
"top"
],
"no-shadow": [
"error"
],
"no-shadow-restricted-names": [
"error"
],
"no-undef": [
"error"
],
"no-undef-init": [
"error"
],
"no-undefined": [
"off"
],
"no-use-before-define": [
"error",
{
"functions": true,
"classes": true,
"variables": true
}
],
"camelcase": [
"error",
{
"properties": "never",
"ignoreDestructuring": false,
"ignoreImports": false,
"ignoreGlobals": false
}
],
"capitalized-comments": [
"off",
"never",
{
"line": {
"ignorePattern": ".*",
"ignoreInlineComments": true,
"ignoreConsecutiveComments": true
},
"block": {
"ignorePattern": ".*",
"ignoreInlineComments": true,
"ignoreConsecutiveComments": true
}
}
],
"consistent-this": [
"off"
],
"func-name-matching": [
"off",
"always",
{
"includeCommonJSModuleExports": false,
"considerPropertyDescriptor": true
}
],
"func-names": [
"warn"
],
"func-style": [
"off",
"expression"
],
"id-blacklist": [
"off"
],
"id-denylist": [
"off"
],
"id-length": [
"off"
],
"id-match": [
"off"
],
"line-comment-position": [
"off",
{
"position": "above",
"ignorePattern": "",
"applyDefaultPatterns": true
}
],
"lines-between-class-members": [
"error",
"always",
{
"exceptAfterSingleLine": false
}
],
"lines-around-directive": [
"error",
{
"before": "always",
"after": "always"
}
],
"max-depth": [
"off",
4
],
"max-lines": [
"off",
{
"max": 300,
"skipBlankLines": true,
"skipComments": true
}
],
"max-lines-per-function": [
"off",
{
"max": 50,
"skipBlankLines": true,
"skipComments": true,
"IIFEs": true
}
],
"max-nested-callbacks": [
"off"
],
"max-params": [
"off",
3
],
"max-statements": [
"off",
10
],
"max-statements-per-line": [
"off",
{
"max": 1
}
],
"multiline-comment-style": [
"off",
"starred-block"
],
"new-cap": [
"error",
{
"newIsCap": true,
"newIsCapExceptions": [],
"capIsNew": false,
"capIsNewExceptions": [
"Immutable.Map",
"Immutable.Set",
"Immutable.List"
],
"properties": true
}
],
"newline-after-var": [
"off"
],
"newline-before-return": [
"off"
],
"no-array-constructor": [
"error"
],
"no-bitwise": [
"error"
],
"no-continue": [
"error"
],
"no-inline-comments": [
"off"
],
"no-lonely-if": [
"error"
],
"no-multi-assign": [
"error"
],
"no-negated-condition": [
"off"
],
"no-new-object": [
"error"
],
"no-plusplus": [
"error"
],
"no-restricted-syntax": [
"error",
{
"selector": "ForInStatement",
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
},
{
"selector": "ForOfStatement",
"message": "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
}
],
"no-ternary": [
"off"
],
"no-unneeded-ternary": [
"error",
{
"defaultAssignment": false
}
],
"one-var": [
"error",
"never"
],
"operator-assignment": [
"error",
"always"
],
"padding-line-between-statements": [
"off"
],
"prefer-exponentiation-operator": [
"off"
],
"prefer-object-spread": [
"error"
],
"require-jsdoc": [
"off"
],
"sort-keys": [
"off",
"asc",
{
"caseSensitive": false,
"natural": true
}
],
"sort-vars": [
"off"
],
"spaced-comment": [
"error",
"always",
{
"line": {
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!",
"/"
]
},
"block": {
"exceptions": [
"-",
"+"
],
"markers": [
"=",
"!",
":",
"::"
],
"balanced": true
}
}
],
"callback-return": [
"off"
],
"global-require": [
"error"
],
"handle-callback-err": [
"off"
],
"no-buffer-constructor": [
"error"
],
"no-mixed-requires": [
"off",
false
],
"no-new-require": [
"error"
],
"no-path-concat": [
"error"
],
"no-process-env": [
"off"
],
"no-process-exit": [
"off"
],
"no-restricted-modules": [
"off"
],
"no-sync": [
"off"
],
"for-direction": [
"error"
],
"getter-return": [
"error",
{
"allowImplicit": true
}
],
"no-async-promise-executor": [
"error"
],
"no-await-in-loop": [
"error"
],
"no-compare-neg-zero": [
"error"
],
"no-cond-assign": [
"error",
"always"
],
"no-console": [
"warn"
],
"no-constant-condition": [
"warn"
],
"no-control-regex": [
"error"
],
"no-debugger": [
"error"
],
"no-dupe-args": [
"error"
],
"no-dupe-else-if": [
"off"
],
"no-dupe-keys": [
"error"
],
"no-duplicate-case": [
"error"
],
"no-empty": [
"error"
],
"no-empty-character-class": [
"error"
],
"no-ex-assign": [
"error"
],
"no-extra-boolean-cast": [
"error"
],
"no-func-assign": [
"error"
],
"no-import-assign": [
"off"
],
"no-inner-declarations": [
"error"
],
"no-invalid-regexp": [
"error"
],
"no-irregular-whitespace": [
"error"
],
"no-loss-of-precision": [
"off"
],
"no-misleading-character-class": [
"error"
],
"no-obj-calls": [
"error"
],
"no-promise-executor-return": [
"off"
],
"no-prototype-builtins": [
"error"
],
"no-regex-spaces": [
"error"
],
"no-setter-return": [
"off"
],
"no-sparse-arrays": [
"error"
],
"no-template-curly-in-string": [
"error"
],
"no-unreachable": [
"error"
],
"no-unreachable-loop": [
"off",
{
"ignore": []
}
],
"no-unsafe-finally": [
"error"
],
"no-unsafe-negation": [
"error"
],
"no-useless-backreference": [
"off"
],
"no-negated-in-lhs": [
"off"
],
"require-atomic-updates": [
"off"
],
"use-isnan": [
"error"
],
"valid-jsdoc": [
"off"
],
"valid-typeof": [
"error",
{
"requireStringLiterals": true
}
],
"accessor-pairs": [
"off"
],
"array-callback-return": [
"error",
{
"allowImplicit": true,
"checkForEach": false
}
],
"block-scoped-var": [
"error"
],
"complexity": [
"off",
11
],
"consistent-return": [
"error"
],
"default-case": [
"error",
{
"commentPattern": "^no default$"
}
],
"default-case-last": [
"off"
],
"default-param-last": [
"off"
],
"dot-notation": [
"error",
{
"allowKeywords": true,
"allowPattern": ""
}
],
"eqeqeq": [
"error",
"always",
{
"null": "ignore"
}
],
"grouped-accessor-pairs": [
"off"
],
"guard-for-in": [
"error"
],
"max-classes-per-file": [
"error",
1
],
"no-alert": [
"warn"
],
"no-caller": [
"error"
],
"no-case-declarations": [
"error"
],
"no-constructor-return": [
"off"
],
"no-div-regex": [
"off"
],
"no-else-return": [
"error",
{
"allowElseIf": false
}
],
"no-empty-function": [
"error",
{
"allow": [
"arrowFunctions",
"functions",
"methods"
]
}
],
"no-empty-pattern": [
"error"
],
"no-eq-null": [
"off"
],
"no-eval": [
"error"
],
"no-extend-native": [
"error"
],
"no-extra-bind": [
"error"
],
"no-extra-label": [
"error"
],
"no-fallthrough": [
"error"
],
"no-global-assign": [
"error",
{
"exceptions": []
}
],
"no-native-reassign": [
"off"
],
"no-implicit-coercion": [
"off",
{
"boolean": false,
"number": true,
"string": true,
"allow": []
}
],
"no-implicit-globals": [
"off"
],
"no-implied-eval": [
"error"
],
"no-invalid-this": [
"off"
],
"no-iterator": [
"error"
],
"no-labels": [
"error",
{
"allowLoop": false,
"allowSwitch": false
}
],
"no-lone-blocks": [
"error"
],
"no-loop-func": [
"error"
],
"no-magic-numbers": [
"off",
{
"ignore": [],
"ignoreArrayIndexes": true,
"enforceConst": true,
"detectObjects": false
}
],
"no-multi-str": [
"error"
],
"no-new": [
"error"
],
"no-new-func": [
"error"
],
"no-new-wrappers": [
"error"
],
"no-octal": [
"error"
],
"no-octal-escape": [
"error"
],
"no-param-reassign": [
"error",
{
"props": true,
"ignorePropertyModificationsFor": [
"acc",
"accumulator",
"e",
"ctx",
"context",
"req",
"request",
"res",
"response",
"$scope",
"staticContext"
]
}
],
"no-proto": [
"error"
],
"no-redeclare": [
"error"
],
"no-restricted-properties": [
"error",
{
"object": "arguments",
"property": "callee",
"message": "arguments.callee is deprecated"
},
{
"object": "global",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "self",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "window",
"property": "isFinite",
"message": "Please use Number.isFinite instead"
},
{
"object": "global",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"object": "self",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"object": "window",
"property": "isNaN",
"message": "Please use Number.isNaN instead"
},
{
"property": "__defineGetter__",
"message": "Please use Object.defineProperty instead."
},
{
"property": "__defineSetter__",
"message": "Please use Object.defineProperty instead."
},
{
"object": "Math",
"property": "pow",
"message": "Use the exponentiation operator (**) instead."
}
],
"no-return-assign": [
"error",
"always"
],
"no-return-await": [
"error"
],
"no-script-url": [
"error"
],
"no-self-assign": [
"error",
{
"props": true
}
],
"no-self-compare": [
"error"
],
"no-sequences": [
"error"
],
"no-throw-literal": [
"error"
],
"no-unmodified-loop-condition": [
"off"
],
"no-unused-expressions": [
"error",
{
"allowShortCircuit": false,
"allowTernary": false,
"allowTaggedTemplates": false,
"enforceForJSX": false
}
],
"no-unused-labels": [
"error"
],
"no-useless-call": [
"off"
],
"no-useless-catch": [
"error"
],
"no-useless-concat": [
"error"
],
"no-useless-escape": [
"error"
],
"no-useless-return": [
"error"
],
"no-void": [
"error"
],
"no-warning-comments": [
"off",
{
"terms": [
"todo",
"fixme",
"xxx"
],
"location": "start"
}
],
"no-with": [
"error"
],
"prefer-promise-reject-errors": [
"error",
{
"allowEmptyReject": true
}
],
"prefer-named-capture-group": [
"off"
],
"prefer-regex-literals": [
"off"
],
"radix": [
"error"
],
"require-await": [
"off"
],
"require-unicode-regexp": [
"off"
],
"vars-on-top": [
"error"
],
"yoda": [
"error"
]
},
"settings": {
"import/resolver": {
"node": {
"extensions": [
".js",
".jsx",
".json"
]
}
},
"react": {
"pragma": "React",
"version": "detect"
},
"propWrapperFunctions": [
"forbidExtraProps",
"exact",
"Object.freeze"
],
"import/extensions": [
".js",
".mjs",
".jsx"
],
"import/core-modules": [],
"import/ignore": [
"node_modules",
"\\.(coffee|scss|css|less|hbs|svg|json)$"
]
},
"ignorePatterns": []
}
package.json
{
"name": "yorailevi",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^12.8.0",
"@types/jest": "^26.0.20",
"@types/node": "^12.20.4",
"@types/react": "^17.0.2",
"@types/react-dom": "^17.0.1",
"install": "^0.13.0",
"npm": "^7.6.0",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-scripts": "4.0.3",
"typescript": "^4.2.2",
"web-vitals": "^1.1.0"
},
"scripts": {
"lint": "eslint --color --ext .html --ext .js --ext .json --ext .jsx --ext .md --ext .ts --ext .tsx src/",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^4.16.1",
"@typescript-eslint/parser": "^4.16.1",
"eslint": "^7.21.0",
"eslint-config-adjunct": "^4.9.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-airbnb-typescript": "^12.3.1",
"eslint-config-auto": "^0.6.6",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-array-func": "^3.1.7",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-html": "^6.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest-async": "^1.0.3",
"eslint-plugin-jest-dom": "^3.6.5",
"eslint-plugin-json": "^2.1.2",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-markdown": "^2.0.0",
"eslint-plugin-no-constructor-bind": "^2.0.4",
"eslint-plugin-no-secrets": "^0.8.9",
"eslint-plugin-no-unsanitized": "^3.1.4",
"eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-optimize-regex": "^1.2.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-promise": "^4.3.1",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
"eslint-plugin-scanjs-rules": "^0.2.1",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"eslint-plugin-sonarjs": "^0.6.0",
"eslint-plugin-switch-case": "^1.1.2",
"eslint-plugin-unicorn": "^28.0.2",
"prettier": "2.2.1"
}
}
basically the parser option is null and it doesn't apply ts,tsx rules despite typescript being installed and available in package.json.
windows 10, powershell
Add support for MDX files
Add '@vue/airbnband
@vue/typescript/recommended`
It would be great if we could go from the message:
npm install ${notInstalled.map((pkg) => atLatest(pkg)).join(' ')} --save-dev
to
yarn add -D ${notInstalled.map((pkg) => atLatest(pkg)).join(' ')}
If a yarn.lock
file exists in the projects root directory.
When installing eslint-config-prettier
but not eslint-plugin-prettier
the eslint command returns the following error:
Oops! Something went wrong! :(
eslint-config-auto could not find the following package
eslint-plugin-prettier
To install the missing package, please run the following command:
npm install eslint-plugin-prettier@latest --save-dev
It would be great if this would work without the plugin version of prettier as recommended by the prettier docs.
My package.json dependencies:
"devDependencies": {
"@types/chai": "^4.2.14",
"@types/mocha": "^8.0.3",
"@types/node": "^14.14.2",
"@types/node-fetch": "^2.5.7",
"@types/test-console": "^1.1.0",
"@typescript-eslint/eslint-plugin": "^4.13.0",
"@typescript-eslint/parser": "^4.13.0",
"babel-eslint": "^10.1.0",
"chai": "^4.2.0",
"eslint": "^7.17.0",
"eslint-config-adjunct": "^4.9.0",
"eslint-config-airbnb-base": "^14.2.0",
"eslint-config-airbnb-typescript": "^12.3.1",
"eslint-config-auto": "^0.6.6",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-array-func": "^3.1.7",
"eslint-plugin-chai-expect": "^2.2.0",
"eslint-plugin-chai-friendly": "^0.6.0",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-html": "^6.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-json": "^2.1.2",
"eslint-plugin-markdown": "^1.0.2",
"eslint-plugin-mocha": "^8.0.0",
"eslint-plugin-mocha-cleanup": "^1.9.1",
"eslint-plugin-no-constructor-bind": "^2.0.4",
"eslint-plugin-no-secrets": "^0.6.8",
"eslint-plugin-no-unsanitized": "^3.1.4",
"eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-optimize-regex": "^1.2.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-scanjs-rules": "^0.2.1",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"eslint-plugin-sonarjs": "^0.5.0",
"eslint-plugin-switch-case": "^1.1.2",
"eslint-plugin-unicorn": "^27.0.0",
"gts": "^3.0.1",
"mocha": "^8.2.0",
"nock": "^13.0.5",
"nyc": "^15.1.0",
"prettier": "2.2.1",
"release-it": "^14.2.2",
"request": "^2.88.2",
"test-console": "^1.1.0",
"ts-node": "^9.0.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^4.0.3"
},
"dependencies": {
"@types/base-64": "^0.1.3",
"@types/jsdom": "^16.2.6",
"@types/spark-md5": "^3.0.2",
"base-64": "^1.0.0",
"isomorphic-unfetch": "^3.1.0",
"jsdom": "^16.4.0",
"postcss": "^8.2.4",
"postcss-import-url": "^6.0.0",
"postcss-js": "^3.0.3",
"postcss-url": "^10.1.1",
"spark-md5": "^3.0.1"
}
I think it fits in, right? https://github.com/microsoft/tsdoc/tree/main/eslint-plugin
Add eslint-plugin-xstate to the library for the very popular state machine library.
Hello, I tried this plugin. It works in the terminal, but it crashes in VS Code.
The error:
Uncaught exception received.
TypeError: Cannot read config file: projectPath/node_modules/eslint-config-auto/index.js
Error: Cannot destructure property 'packageJson' of 'readPkgUp.sync(...)' as it is undefined.
Referenced from: projectPath/.eslintrc.json
at Object.<anonymous> (projectPath/node_modules/eslint-config-adjunct/lib/utils.js:12:22)
at Module._compile (node:internal/modules/cjs/loader:1163:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1216:10)
at Module.load (node:internal/modules/cjs/loader:1035:32)
at Module._load (node:internal/modules/cjs/loader:876:12)
at Function.c._load (node:electron/js2c/asar_bundle:5:13343)
at Module.require (node:internal/modules/cjs/loader:1059:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (projectPath/node_modules/eslint-config-adjunct/configs.js:1:23)
at Module._compile (node:internal/modules/cjs/loader:1163:14)
This is my config:
{
"extends": [
"auto"
]
}
And these are the used packages:
eslint
and eslint-plugin-import
as normal peer deps, and everything else as optional. Why? PnP won't work without this.
Hi,
I don't have any error/warning appearing in VS Code (ESLint plugin) whereas it works perfectly in command line. I'm not sure the simplified .eslintrc.json
is the cause or if there is a configuration to do. Is this supposed to work in VS Code too?
Cheers,
Fabrice
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.