1
1
import tseslint from 'typescript-eslint'
2
+ import vueparser from 'vue-eslint-parser'
2
3
import stylisticJs from '@stylistic/eslint-plugin-js'
3
4
import pluginImport from 'eslint-plugin-import-x'
4
5
import pluginNode from 'eslint-plugin-n'
@@ -9,7 +10,8 @@ import { typescriptRules } from './typescript.js'
9
10
import { nodeRules } from './node.js'
10
11
import { stylisticRules } from './stylistic.js'
11
12
12
- const GLOB_INCLUDE = [ '**/*.{js,svelte,ts,tsx,vue}' ]
13
+ const JS_GLOB_INCLUDE = [ '**/*.{js,ts,tsx}' ]
14
+ const VUE_GLOB_INCLUDE = [ '**/*.vue' ]
13
15
14
16
const GLOB_EXCLUDE = [
15
17
'**/.nx/**' ,
@@ -21,6 +23,21 @@ const GLOB_EXCLUDE = [
21
23
'**/vite.config.*.timestamp-*.*' ,
22
24
]
23
25
26
+ const jsRules = {
27
+ ...javascriptRules ,
28
+ ...typescriptRules ,
29
+ ...importRules ,
30
+ ...nodeRules ,
31
+ ...stylisticRules ,
32
+ }
33
+
34
+ const jsPlugins = {
35
+ '@stylistic/js' : stylisticJs ,
36
+ '@typescript-eslint' : tseslint . plugin ,
37
+ import : pluginImport ,
38
+ node : pluginNode ,
39
+ }
40
+
24
41
/** @type {import('eslint').Linter.Config[] } */
25
42
export const tanstackConfig = [
26
43
{
@@ -29,36 +46,42 @@ export const tanstackConfig = [
29
46
} ,
30
47
{
31
48
name : 'tanstack/setup' ,
32
- files : GLOB_INCLUDE ,
49
+ files : JS_GLOB_INCLUDE ,
33
50
languageOptions : {
34
51
sourceType : 'module' ,
35
52
ecmaVersion : 2020 ,
36
53
// @ts -expect-error
37
54
parser : tseslint . parser ,
38
55
parserOptions : {
39
56
project : true ,
40
- extraFileExtensions : [ '.svelte' , '.vue' ] ,
41
57
parser : tseslint . parser ,
42
58
} ,
43
59
globals : {
44
60
...globals . browser ,
45
61
} ,
46
62
} ,
47
- plugins : {
48
- // @ts -expect-error
49
- '@stylistic/js' : stylisticJs ,
50
- // @ts -expect-error
51
- '@typescript-eslint' : tseslint . plugin ,
52
- // @ts -expect-error
53
- import : pluginImport ,
54
- node : pluginNode ,
55
- } ,
56
- rules : {
57
- ...javascriptRules ,
58
- ...typescriptRules ,
59
- ...importRules ,
60
- ...nodeRules ,
61
- ...stylisticRules ,
63
+ // @ts -expect-error
64
+ plugins : jsPlugins ,
65
+ rules : jsRules ,
66
+ } ,
67
+ {
68
+ name : 'tanstack/vue' ,
69
+ files : VUE_GLOB_INCLUDE ,
70
+ languageOptions : {
71
+ parser : vueparser ,
72
+ parserOptions : {
73
+ sourceType : 'module' ,
74
+ ecmaVersion : 2020 ,
75
+ parser : tseslint . parser ,
76
+ project : true ,
77
+ extraFileExtensions : [ '.vue' ] ,
78
+ } ,
79
+ globals : {
80
+ ...globals . browser ,
81
+ } ,
62
82
} ,
83
+ // @ts -expect-error
84
+ plugins : jsPlugins ,
85
+ rules : jsRules ,
63
86
} ,
64
87
]
0 commit comments