382
382
'@typescript-eslint/no-unsafe-enum-comparison' : 'error' ,
383
383
'@typescript-eslint/no-unsafe-unary-minus' : 'error' ,
384
384
'@typescript-eslint/parameter-properties' : [ 'error' , { prefer : 'parameter-property' } ] ,
385
+ '@typescript-eslint/restrict-template-expressions' : [ 'error' , { allowNumber : true } ] ,
385
386
} ,
386
387
387
388
optout : {
520
521
} ,
521
522
} ] ;
522
523
523
- import viteConfig from './vite.config.ts' ;
524
- import pluginStylistic from '@stylistic/eslint-plugin' ;
525
- import pluginImportX from 'eslint-plugin-import-x' ;
526
- import pluginUnicorn from 'eslint-plugin-unicorn' ;
527
- import * as typescriptESLintParserForExtraFiles from 'typescript-eslint-parser-for-extra-files' ;
528
524
import * as vueESLintParser from 'vue-eslint-parser' ;
525
+ // eslint-disable-next-line import-x/extensions
529
526
import vueESLintConfigTypescriptRecommendedExtends from '@vue/eslint-config-typescript/recommended.js' ;
530
527
import pluginVue from 'eslint-plugin-vue' ;
531
528
import { fixupConfigRules } from '@eslint/compat' ;
532
529
import { FlatCompat } from '@eslint/eslintrc' ;
533
530
import eslintJs from '@eslint/js' ;
531
+ import pluginStylistic from '@stylistic/eslint-plugin' ;
534
532
import stylisticMigrate from '@stylistic/eslint-plugin-migrate' ;
533
+ import pluginImportX from 'eslint-plugin-import-x' ;
534
+ import pluginUnicorn from 'eslint-plugin-unicorn' ;
535
+ // eslint-disable-next-line import-x/extensions
536
+ import { tsImport } from 'tsx/esm/api' ;
537
+ import * as typescriptESLintParserForExtraFiles from 'typescript-eslint-parser-for-extra-files' ;
535
538
import * as _ from 'lodash-es' ;
536
539
540
+ // https://github.com/pzmosquito/eslint-import-resolver-vite/issues/12#issuecomment-2151349705
541
+ const viteConfig = await tsImport ( './vite.config.ts' , import . meta. url ) ;
542
+
537
543
// https://github.com/eslint/eslint/issues/18093
538
544
// https://github.com/eslint/eslint/issues/18391
539
545
const compat = new FlatCompat ( ) ;
@@ -546,8 +552,11 @@ export default [
546
552
'plugin:@typescript-eslint/strict-type-checked' ,
547
553
'plugin:@typescript-eslint/stylistic-type-checked' ,
548
554
) ,
549
- ...compat . config ( pluginImportX . configs . recommended ) , // https://github.com/un-ts/eslint-plugin-import-x/issues/29#issuecomment-2148843214
550
- ...compat . config ( pluginImportX . configs . typescript ) ,
555
+ { // https://github.com/un-ts/eslint-plugin-import-x/pull/85#issuecomment-2153376351
556
+ plugins : { 'import-x' : { rules : pluginImportX . rules } } ,
557
+ rules : pluginImportX . configs . recommended . rules ,
558
+ } , // https://github.com/import-js/eslint-plugin-import/issues/2556#issuecomment-2119520339
559
+ pluginImportX . configs . typescript ,
551
560
...fixupConfigRules ( ...compat . extends (
552
561
'plugin:@tanstack/eslint-plugin-query/recommended' , // https://github.com/TanStack/query/pull/7253
553
562
) ) ,
@@ -562,6 +571,12 @@ export default [
562
571
tsconfigRootDir : import . meta. dirname ,
563
572
} ,
564
573
} ,
574
+ settings : {
575
+ 'import-x/resolver' : {
576
+ typescript : true ,
577
+ vite : { viteConfig } , // https://github.com/pzmosquito/eslint-import-resolver-vite/issues/12#issuecomment-2148676875
578
+ } ,
579
+ } ,
565
580
plugins : { '@stylistic' : pluginStylistic } ,
566
581
567
582
// https://stackoverflow.com/questions/30221286/how-to-convert-an-array-of-objects-to-an-object-in-lodash/36692117#36692117
@@ -576,7 +591,6 @@ export default [
576
591
{
577
592
files : [ '**/*.ts' ] ,
578
593
languageOptions : { parser : typescriptESLintParserForExtraFiles } ,
579
- settings : { 'import-x/resolver' : { typescript : true } } ,
580
594
} ,
581
595
{
582
596
files : [ '**/*.vue' ] ,
@@ -588,12 +602,6 @@ export default [
588
602
tsconfigRootDir : import . meta. dirname ,
589
603
} ,
590
604
} ,
591
- settings : {
592
- 'import-x/resolver' : {
593
- typescript : true ,
594
- vite : { viteConfig } , // https://github.com/pzmosquito/eslint-import-resolver-vite/issues/12#issuecomment-2148676875
595
- } ,
596
- } ,
597
605
} ,
598
606
{
599
607
files : [ 'eslint.config.js' ] ,
0 commit comments