@@ -382,6 +382,7 @@ const rules = [{ // as of eslint-plugin-unicorn@50.0.1
382382 '@typescript-eslint/no-unsafe-enum-comparison' : 'error' ,
383383 '@typescript-eslint/no-unsafe-unary-minus' : 'error' ,
384384 '@typescript-eslint/parameter-properties' : [ 'error' , { prefer : 'parameter-property' } ] ,
385+ '@typescript-eslint/restrict-template-expressions' : [ 'error' , { allowNumber : true } ] ,
385386 } ,
386387} , { // as of eslint-plugin-vue@9.19.2
387388 optout : {
@@ -520,20 +521,25 @@ const rules = [{ // as of eslint-plugin-unicorn@50.0.1
520521 } ,
521522} ] ;
522523
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' ;
528524import * as vueESLintParser from 'vue-eslint-parser' ;
525+ // eslint-disable-next-line import-x/extensions
529526import vueESLintConfigTypescriptRecommendedExtends from '@vue/eslint-config-typescript/recommended.js' ;
530527import pluginVue from 'eslint-plugin-vue' ;
531528import { fixupConfigRules } from '@eslint/compat' ;
532529import { FlatCompat } from '@eslint/eslintrc' ;
533530import eslintJs from '@eslint/js' ;
531+ import pluginStylistic from '@stylistic/eslint-plugin' ;
534532import 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' ;
535538import * as _ from 'lodash-es' ;
536539
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+
537543// https://github.com/eslint/eslint/issues/18093
538544// https://github.com/eslint/eslint/issues/18391
539545const compat = new FlatCompat ( ) ;
@@ -546,8 +552,11 @@ export default [
546552 'plugin:@typescript-eslint/strict-type-checked' ,
547553 'plugin:@typescript-eslint/stylistic-type-checked' ,
548554 ) ,
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 ,
551560 ...fixupConfigRules ( ...compat . extends (
552561 'plugin:@tanstack/eslint-plugin-query/recommended' , // https://github.com/TanStack/query/pull/7253
553562 ) ) ,
@@ -562,6 +571,12 @@ export default [
562571 tsconfigRootDir : import . meta. dirname ,
563572 } ,
564573 } ,
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+ } ,
565580 plugins : { '@stylistic' : pluginStylistic } ,
566581
567582 // 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 [
576591 {
577592 files : [ '**/*.ts' ] ,
578593 languageOptions : { parser : typescriptESLintParserForExtraFiles } ,
579- settings : { 'import-x/resolver' : { typescript : true } } ,
580594 } ,
581595 {
582596 files : [ '**/*.vue' ] ,
@@ -588,12 +602,6 @@ export default [
588602 tsconfigRootDir : import . meta. dirname ,
589603 } ,
590604 } ,
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- } ,
597605 } ,
598606 {
599607 files : [ 'eslint.config.js' ] ,
0 commit comments