-
-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathindex.js
More file actions
89 lines (84 loc) · 1.98 KB
/
index.js
File metadata and controls
89 lines (84 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import tseslint from 'typescript-eslint'
import vueparser from 'vue-eslint-parser'
import stylisticJs from '@stylistic/eslint-plugin-js'
import pluginImport from 'eslint-plugin-import-x'
import pluginNode from 'eslint-plugin-n'
import globals from 'globals'
import { javascriptRules } from './javascript.js'
import { importRules } from './import.js'
import { typescriptRules } from './typescript.js'
import { nodeRules } from './node.js'
import { stylisticRules } from './stylistic.js'
const JS_GLOB_INCLUDE = ['**/*.{js,ts,tsx}']
const VUE_GLOB_INCLUDE = ['**/*.vue']
const GLOB_EXCLUDE = [
'**/.nx/**',
'**/.output/**'
'**/.svelte-kit/**',
'**/.vinxi/**',
'**/build/**',
'**/coverage/**',
'**/dist/**',
'**/snap/**',
'**/vite.config.*.timestamp-*.*',
]
const jsRules = {
...javascriptRules,
...typescriptRules,
...importRules,
...nodeRules,
...stylisticRules,
}
const jsPlugins = {
'@stylistic/js': stylisticJs,
'@typescript-eslint': tseslint.plugin,
import: pluginImport,
node: pluginNode,
}
/** @type {import('eslint').Linter.Config[]} */
export const tanstackConfig = [
{
name: 'tanstack/ignores',
ignores: GLOB_EXCLUDE,
},
{
name: 'tanstack/setup',
files: JS_GLOB_INCLUDE,
languageOptions: {
sourceType: 'module',
ecmaVersion: 2020,
// @ts-expect-error
parser: tseslint.parser,
parserOptions: {
project: true,
parser: tseslint.parser,
},
globals: {
...globals.browser,
},
},
// @ts-expect-error
plugins: jsPlugins,
rules: jsRules,
},
{
name: 'tanstack/vue',
files: VUE_GLOB_INCLUDE,
languageOptions: {
parser: vueparser,
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020,
parser: tseslint.parser,
project: true,
extraFileExtensions: ['.vue'],
},
globals: {
...globals.browser,
},
},
// @ts-expect-error
plugins: jsPlugins,
rules: jsRules,
},
]