11parserOptions :
22 sourceType : script
3- ecmaVersion : 2020
43env :
5- es6 : true
6- node : true
4+ es2022 : true
5+ shared- node-browser : true
76reportUnusedDisableDirectives : true
87plugins :
98 - internal-rules
@@ -12,7 +11,10 @@ plugins:
1211 - simple-import-sort
1312settings :
1413 node :
15- tryExtensions : ['.js', '.jsx', '.json', '.node', '.ts', '.d.ts']
14+ tryExtensions : ['.js', '.ts', '.jsx', '.json', '.node', '.d.ts']
15+ # eslint-plugin-import tries to parse all imported files included huge ones (e.g. 'typescript')
16+ # that leads to very poor perfomance so to fix that we disable all checks on external files.
17+ import/ignore : ' /node_modules/'
1618
1719rules :
1820 # #############################################################################
3638 node/no-exports-assign : error
3739 node/no-extraneous-import : error
3840 node/no-extraneous-require : error
39- node/no-missing-import : error
41+ node/no-missing-import : [ error, { allowModules: ['graphql'] }]
4042 node/no-missing-require : error
4143 node/no-new-require : error
4244 node/no-path-concat : error
@@ -77,12 +79,12 @@ rules:
7779 node/prefer-promises/fs : off
7880
7981 # #############################################################################
80- # `eslint-plugin-import` rule list based on `v2.25 .x`
82+ # `eslint-plugin-import` rule list based on `v2.26 .x`
8183 # #############################################################################
8284
8385 # Static analysis
8486 # https://github.com/benmosher/eslint-plugin-import#static-analysis
85- import/no-unresolved : error
87+ import/no-unresolved : [ error, { ignore: ['graphql'] }]
8688 import/named : error
8789 import/default : error
8890 import/namespace : error
@@ -148,6 +150,9 @@ rules:
148150 simple-import-sort/imports :
149151 - error
150152 - groups :
153+ # Node.js builtin modules
154+ - ["^node:\\w"]
155+
151156 # Packages.
152157 # Things that start with a letter (or digit or underscore), or `@` followed by a letter.
153158 - ["^@?\\w"]
@@ -174,7 +179,7 @@ rules:
174179 simple-import-sort/exports : off # TODO
175180
176181 # #############################################################################
177- # ESLint builtin rules list based on `v8.8 .x`
182+ # ESLint builtin rules list based on `v8.16 .x`
178183 # #############################################################################
179184
180185 # Possible Errors
@@ -186,6 +191,7 @@ rules:
186191 no-await-in-loop : error
187192 no-compare-neg-zero : error
188193 no-cond-assign : error
194+ no-constant-binary-expression : error
189195 no-console : warn
190196 no-constant-condition : error
191197 no-control-regex : error
@@ -487,7 +493,7 @@ overrides:
487493 tsdoc/syntax : error
488494
489495 # #########################################################################
490- # `@typescript-eslint/eslint-plugin` rule list based on `v5.10 .x`
496+ # `@typescript-eslint/eslint-plugin` rule list based on `v5.26 .x`
491497 # #########################################################################
492498
493499 # Supported Rules
@@ -514,6 +520,7 @@ overrides:
514520 ' @typescript-eslint/no-base-to-string ' : error
515521 ' @typescript-eslint/no-confusing-non-null-assertion ' : error
516522 ' @typescript-eslint/no-confusing-void-expression ' : off # TODO enable with ignoreArrowShorthand
523+ ' @typescript-eslint/no-duplicate-enum-values ' : error
517524 ' @typescript-eslint/no-dynamic-delete ' : off
518525 ' @typescript-eslint/no-empty-interface ' : error
519526 ' @typescript-eslint/no-explicit-any ' : off # TODO error
@@ -531,7 +538,7 @@ overrides:
531538 ' @typescript-eslint/no-non-null-asserted-nullish-coalescing ' : error
532539 ' @typescript-eslint/no-non-null-asserted-optional-chain ' : error
533540 ' @typescript-eslint/no-non-null-assertion ' : error
534- ' @typescript-eslint/no-parameter-properties ' : error
541+ ' @typescript-eslint/no-redundant-type-constituents ' : error
535542 ' @typescript-eslint/no-invalid-void-type ' : error
536543 ' @typescript-eslint/no-require-imports ' : error
537544 ' @typescript-eslint/no-this-alias ' : error
@@ -547,8 +554,10 @@ overrides:
547554 ' @typescript-eslint/no-unsafe-call ' : off # TODO consider
548555 ' @typescript-eslint/no-unsafe-member-access ' : off # TODO consider
549556 ' @typescript-eslint/no-unsafe-return ' : off # TODO consider
557+ ' @typescript-eslint/no-useless-empty-export ' : error
550558 ' @typescript-eslint/no-var-requires ' : error
551559 ' @typescript-eslint/non-nullable-type-assertion-style ' : off # TODO temporarily disabled
560+ ' @typescript-eslint/parameter-properties ' : error
552561 ' @typescript-eslint/prefer-as-const ' : error
553562 ' @typescript-eslint/prefer-enum-initializers ' : error
554563 ' @typescript-eslint/prefer-for-of ' : error
@@ -647,6 +656,7 @@ overrides:
647656 ' @typescript-eslint/no-extra-parens ' : off
648657 ' @typescript-eslint/no-extra-semi ' : off
649658 ' @typescript-eslint/semi ' : off
659+ ' @typescript-eslint/space-before-blocks ' : off
650660 ' @typescript-eslint/space-before-function-paren ' : off
651661 ' @typescript-eslint/space-infix-ops ' : off
652662 ' @typescript-eslint/type-annotation-spacing ' : off
@@ -661,36 +671,48 @@ overrides:
661671 import/no-restricted-paths : off
662672 import/no-extraneous-dependencies : [error, { devDependencies: true }]
663673 - files : ' integrationTests/*'
674+ env :
675+ node : true
664676 rules :
665677 node/no-sync : off
666- node/no-unpublished-require : [error, { allowModules: ['mocha'] }]
678+ node/no-unpublished-import : [error, { allowModules: ['mocha'] }]
667679 import/no-extraneous-dependencies : [error, { devDependencies: true }]
680+ import/no-namespace : off
668681 import/no-nodejs-modules : off
669682 - files : ' integrationTests/*/**'
683+ parserOptions :
684+ sourceType : module
685+ env :
686+ node : true
670687 rules :
671688 node/no-sync : off
672- node/no-missing-require : [error, { allowModules: ['graphql'] }]
673- import/no-commonjs : off
674689 import/no-nodejs-modules : off
675690 no-console : off
676691 - files : ' benchmark/**'
692+ parserOptions :
693+ sourceType : module
694+ env :
695+ node : true
677696 rules :
678- internal-rules/only-ascii : [error, { allowEmoji: true }]
679697 node/no-sync : off
680- node /no-missing-require : off
698+ import /no-unresolved : off
681699 import/no-nodejs-modules : off
682- import/no-commonjs : off
683- no-console : off
684- no-await-in-loop : off
685700 - files : ' resources/**'
701+ env :
702+ node : true
686703 rules :
687704 internal-rules/only-ascii : [error, { allowEmoji: true }]
688- node/no-unpublished-require : off
705+ node/no-unpublished-import : off
689706 node/no-sync : off
707+ import/no-namespace : off
690708 import/no-extraneous-dependencies : [error, { devDependencies: true }]
691709 import/no-nodejs-modules : off
692- import/no-commonjs : off
693710 no-console : off
711+ - files : ' resources/eslint-internal-rules/**'
712+ env :
713+ node : true
714+ rules :
715+ import/no-commonjs : off
694716 - files : ' **/*.jsx'
695717 parserOptions :
696718 sourceType : module
@@ -700,6 +722,8 @@ overrides:
700722 node/no-unpublished-import : off
701723 import/no-default-export : off
702724 - files : ' website/**'
725+ env :
726+ node : true
703727 plugins :
704728 - ' react'
705729 extends :
0 commit comments