@dvukovic/style-guide 0.14.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/cli/prompts.d.ts +1 -1
- package/dist/eslint/configs/tanstack-query.d.ts +12 -0
- package/dist/eslint/configs/turbo.d.ts +12 -0
- package/dist/eslint/file-patterns.d.ts +6 -0
- package/dist/eslint/index.d.ts +2 -0
- package/dist/eslint/plugins/tanstack-query.d.ts +2 -0
- package/dist/eslint/plugins/turbo.d.ts +2 -0
- package/package.json +3 -1
- package/src/cli/generators/eslint.js +10 -0
- package/src/cli/prompts.js +2 -0
- package/src/cspell/base.txt +1 -0
- package/src/eslint/configs/aws.js +2 -9
- package/src/eslint/configs/core.js +2 -9
- package/src/eslint/configs/jest.js +2 -13
- package/src/eslint/configs/mobx.js +2 -1
- package/src/eslint/configs/next.js +2 -1
- package/src/eslint/configs/node.js +2 -9
- package/src/eslint/configs/playwright.js +2 -13
- package/src/eslint/configs/react.js +2 -1
- package/src/eslint/configs/storybook.js +2 -7
- package/src/eslint/configs/tanstack-query.js +22 -0
- package/src/eslint/configs/turbo.js +22 -0
- package/src/eslint/configs/typescript-strict.js +3 -1
- package/src/eslint/configs/typescript.js +4 -11
- package/src/eslint/configs/vitest.js +2 -13
- package/src/eslint/file-patterns.js +29 -0
- package/src/eslint/index.js +2 -0
- package/src/eslint/plugins/tanstack-query.js +13 -0
- package/src/eslint/plugins/turbo.js +11 -0
package/README.md
CHANGED
|
@@ -47,6 +47,8 @@ export default customDefineConfig({
|
|
|
47
47
|
- `playwright()` - Playwright e2e testing
|
|
48
48
|
- `mobx()` - MobX state management
|
|
49
49
|
- `storybook()` - Storybook
|
|
50
|
+
- `tanstackQuery()` - TanStack Query
|
|
51
|
+
- `turbo()` - Turborepo
|
|
50
52
|
- `packageJson()` - package.json linting
|
|
51
53
|
- `packageJsonWorkspace()` - package.json linting for monorepos
|
|
52
54
|
|
package/dist/cli/prompts.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function promptToolSelection(): Promise<string[]>;
|
|
2
2
|
export function promptESLintOptions(): Promise<{
|
|
3
|
-
extras: ("mobx" | "storybook")[];
|
|
3
|
+
extras: ("mobx" | "storybook" | "tanstackQuery" | "turbo")[];
|
|
4
4
|
framework: "none" | "react" | "next";
|
|
5
5
|
includeAws: boolean;
|
|
6
6
|
includeNode: boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TanStack Query configuration
|
|
3
|
+
*
|
|
4
|
+
* @param {import("@eslint/config-helpers").ConfigWithExtends & { additionalFiles?: string[] }} [config]
|
|
5
|
+
* - Additional config
|
|
6
|
+
*
|
|
7
|
+
* @returns {import("@eslint/config-helpers").ConfigWithExtends} ESLint config
|
|
8
|
+
*/
|
|
9
|
+
export function tanstackQuery(config?: import("@eslint/config-helpers").ConfigWithExtends & {
|
|
10
|
+
additionalFiles?: string[];
|
|
11
|
+
}): import("@eslint/config-helpers").ConfigWithExtends;
|
|
12
|
+
export const tanstackQueryConfig: import("@eslint/config-helpers").Config[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turbo monorepo configuration
|
|
3
|
+
*
|
|
4
|
+
* @param {import("@eslint/config-helpers").ConfigWithExtends & { additionalFiles?: string[] }} [config]
|
|
5
|
+
* - Additional config
|
|
6
|
+
*
|
|
7
|
+
* @returns {import("@eslint/config-helpers").ConfigWithExtends} ESLint config
|
|
8
|
+
*/
|
|
9
|
+
export function turbo(config?: import("@eslint/config-helpers").ConfigWithExtends & {
|
|
10
|
+
additionalFiles?: string[];
|
|
11
|
+
}): import("@eslint/config-helpers").ConfigWithExtends;
|
|
12
|
+
export const turboConfig: import("@eslint/config-helpers").Config[];
|
package/dist/eslint/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { node } from "./configs/node.js";
|
|
|
18
18
|
export { playwright } from "./configs/playwright.js";
|
|
19
19
|
export { react } from "./configs/react.js";
|
|
20
20
|
export { storybook } from "./configs/storybook.js";
|
|
21
|
+
export { tanstackQuery } from "./configs/tanstack-query.js";
|
|
22
|
+
export { turbo } from "./configs/turbo.js";
|
|
21
23
|
export { typescript } from "./configs/typescript.js";
|
|
22
24
|
export { typescriptStrict } from "./configs/typescript-strict.js";
|
|
23
25
|
export { vitest } from "./configs/vitest.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dvukovic/style-guide",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "My own style guide",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"@next/eslint-plugin-next": "16.1.4",
|
|
67
67
|
"@rimac-technology/eslint-plugin": "1.5.0",
|
|
68
68
|
"@stylistic/eslint-plugin": "5.7.1",
|
|
69
|
+
"@tanstack/eslint-plugin-query": "5.91.4",
|
|
69
70
|
"@typescript-eslint/parser": "8.53.1",
|
|
70
71
|
"@vitest/eslint-plugin": "1.6.6",
|
|
71
72
|
"eslint-plugin-baseline-js": "0.4.2",
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"eslint-plugin-sort-destructure-keys": "2.0.0",
|
|
85
86
|
"eslint-plugin-sort-keys-fix": "1.1.2",
|
|
86
87
|
"eslint-plugin-storybook": "10.2.0",
|
|
88
|
+
"eslint-plugin-turbo": "2.8.1",
|
|
87
89
|
"eslint-plugin-typescript-sort-keys": "3.3.0",
|
|
88
90
|
"eslint-plugin-unicorn": "62.0.0",
|
|
89
91
|
"eslint-plugin-unused-imports": "4.3.0",
|
|
@@ -81,6 +81,16 @@ export function generateESLintConfig(options) {
|
|
|
81
81
|
configs.push("storybook()")
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
if (extras.includes("tanstackQuery")) {
|
|
85
|
+
imports.push("tanstackQuery")
|
|
86
|
+
configs.push("tanstackQuery()")
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (extras.includes("turbo")) {
|
|
90
|
+
imports.push("turbo")
|
|
91
|
+
configs.push("turbo()")
|
|
92
|
+
}
|
|
93
|
+
|
|
84
94
|
if (isMonorepo) {
|
|
85
95
|
imports.push("packageJsonWorkspace")
|
|
86
96
|
configs.push("packageJsonWorkspace()")
|
package/src/cli/prompts.js
CHANGED
|
@@ -147,6 +147,8 @@ export async function promptESLintOptions() {
|
|
|
147
147
|
options: [
|
|
148
148
|
{ label: "MobX", value: "mobx" },
|
|
149
149
|
{ label: "Storybook", value: "storybook" },
|
|
150
|
+
{ label: "TanStack Query", value: "tanstackQuery" },
|
|
151
|
+
{ label: "Turbo", value: "turbo" },
|
|
150
152
|
],
|
|
151
153
|
required: false,
|
|
152
154
|
})
|
package/src/cspell/base.txt
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NODE_FILES } from "../file-patterns.js"
|
|
1
2
|
import { sonarjsAws } from "../plugins/sonarjs-aws.js"
|
|
2
3
|
|
|
3
4
|
export const awsConfig = [sonarjsAws]
|
|
@@ -15,15 +16,7 @@ export function aws(config) {
|
|
|
15
16
|
|
|
16
17
|
return {
|
|
17
18
|
extends: [...awsConfig, ...(extendsConfig ?? [])],
|
|
18
|
-
files: files ?? [
|
|
19
|
-
"**/*.js",
|
|
20
|
-
"**/*.cjs",
|
|
21
|
-
"**/*.mjs",
|
|
22
|
-
"**/*.ts",
|
|
23
|
-
"**/*.cts",
|
|
24
|
-
"**/*.mts",
|
|
25
|
-
...(additionalFiles ?? []),
|
|
26
|
-
],
|
|
19
|
+
files: files ?? [...NODE_FILES, ...(additionalFiles ?? [])],
|
|
27
20
|
...rest,
|
|
28
21
|
}
|
|
29
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ALL_JS_TS_FILES } from "../file-patterns.js"
|
|
1
2
|
import { baseline } from "../plugins/baseline.js"
|
|
2
3
|
import { dvukovic } from "../plugins/dvukovic.js"
|
|
3
4
|
import { eslint } from "../plugins/eslint.js"
|
|
@@ -43,15 +44,7 @@ export function core(config) {
|
|
|
43
44
|
|
|
44
45
|
return {
|
|
45
46
|
extends: [...coreConfig, ...(extendsConfig ?? [])],
|
|
46
|
-
files: files ?? [
|
|
47
|
-
"**/*.js",
|
|
48
|
-
".*.js",
|
|
49
|
-
"**/*.cjs",
|
|
50
|
-
"**/*.mjs",
|
|
51
|
-
"**/*.ts",
|
|
52
|
-
"**/*.tsx",
|
|
53
|
-
...(additionalFiles ?? []),
|
|
54
|
-
],
|
|
47
|
+
files: files ?? [".*.js", ...ALL_JS_TS_FILES, ...(additionalFiles ?? [])],
|
|
55
48
|
...rest,
|
|
56
49
|
}
|
|
57
50
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TEST_FILES } from "../file-patterns.js"
|
|
1
2
|
import { jest as jestPlugin } from "../plugins/jest.js"
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -14,19 +15,7 @@ export function jest(config) {
|
|
|
14
15
|
|
|
15
16
|
return {
|
|
16
17
|
extends: [...jestConfig, ...(extendsConfig ?? [])],
|
|
17
|
-
files: files ?? [
|
|
18
|
-
"**/*.test.js",
|
|
19
|
-
"**/*.test.ts",
|
|
20
|
-
"**/*.spec.js",
|
|
21
|
-
"**/*.spec.ts",
|
|
22
|
-
"**/*.unit.test.js",
|
|
23
|
-
"**/*.unit.test.ts",
|
|
24
|
-
"**/*.int.test.js",
|
|
25
|
-
"**/*.int.test.ts",
|
|
26
|
-
"**/*.integration.test.js",
|
|
27
|
-
"**/*.integration.test.ts",
|
|
28
|
-
...(additionalFiles ?? []),
|
|
29
|
-
],
|
|
18
|
+
files: files ?? [...TEST_FILES, ...(additionalFiles ?? [])],
|
|
30
19
|
...rest,
|
|
31
20
|
}
|
|
32
21
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ALL_JS_TS_FILES } from "../file-patterns.js"
|
|
1
2
|
import { mobx as mobxPlugin } from "../plugins/mobx.js"
|
|
2
3
|
|
|
3
4
|
export const mobxConfig = [mobxPlugin]
|
|
@@ -15,7 +16,7 @@ export function mobx(config) {
|
|
|
15
16
|
|
|
16
17
|
return {
|
|
17
18
|
extends: [...mobxConfig, ...(extendsConfig ?? [])],
|
|
18
|
-
files: files ?? [
|
|
19
|
+
files: files ?? [...ALL_JS_TS_FILES, "**/*.jsx", ...(additionalFiles ?? [])],
|
|
19
20
|
...rest,
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ALL_JS_TS_FILES } from "../file-patterns.js"
|
|
1
2
|
import { next as nextPlugin } from "../plugins/next.js"
|
|
2
3
|
|
|
3
4
|
export const nextConfig = [nextPlugin]
|
|
@@ -15,7 +16,7 @@ export function next(config) {
|
|
|
15
16
|
|
|
16
17
|
return {
|
|
17
18
|
extends: [...nextConfig, ...(extendsConfig ?? [])],
|
|
18
|
-
files: files ?? [
|
|
19
|
+
files: files ?? [...ALL_JS_TS_FILES, "**/*.jsx", ...(additionalFiles ?? [])],
|
|
19
20
|
...rest,
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NODE_FILES } from "../file-patterns.js"
|
|
1
2
|
import { nodeN } from "../plugins/n.js"
|
|
2
3
|
import { securityNode } from "../plugins/security-node.js"
|
|
3
4
|
|
|
@@ -16,15 +17,7 @@ export function node(config) {
|
|
|
16
17
|
|
|
17
18
|
return {
|
|
18
19
|
extends: [...nodeConfig, ...(extendsConfig ?? [])],
|
|
19
|
-
files: files ?? [
|
|
20
|
-
"**/*.js",
|
|
21
|
-
"**/*.cjs",
|
|
22
|
-
"**/*.mjs",
|
|
23
|
-
"**/*.ts",
|
|
24
|
-
"**/*.cts",
|
|
25
|
-
"**/*.mts",
|
|
26
|
-
...(additionalFiles ?? []),
|
|
27
|
-
],
|
|
20
|
+
files: files ?? [...NODE_FILES, ...(additionalFiles ?? [])],
|
|
28
21
|
...rest,
|
|
29
22
|
}
|
|
30
23
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TEST_FILES } from "../file-patterns.js"
|
|
1
2
|
import { playwright as playwrightPlugin } from "../plugins/playwright.js"
|
|
2
3
|
|
|
3
4
|
export const playwrightConfig = [playwrightPlugin]
|
|
@@ -15,19 +16,7 @@ export function playwright(config) {
|
|
|
15
16
|
|
|
16
17
|
return {
|
|
17
18
|
extends: [...playwrightConfig, ...(extendsConfig ?? [])],
|
|
18
|
-
files: files ?? [
|
|
19
|
-
"**/*.test.js",
|
|
20
|
-
"**/*.test.ts",
|
|
21
|
-
"**/*.spec.js",
|
|
22
|
-
"**/*.spec.ts",
|
|
23
|
-
"**/*.unit.test.js",
|
|
24
|
-
"**/*.unit.test.ts",
|
|
25
|
-
"**/*.int.test.js",
|
|
26
|
-
"**/*.int.test.ts",
|
|
27
|
-
"**/*.integration.test.js",
|
|
28
|
-
"**/*.integration.test.ts",
|
|
29
|
-
...(additionalFiles ?? []),
|
|
30
|
-
],
|
|
19
|
+
files: files ?? [...TEST_FILES, ...(additionalFiles ?? [])],
|
|
31
20
|
...rest,
|
|
32
21
|
}
|
|
33
22
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { REACT_FILES } from "../file-patterns.js"
|
|
1
2
|
import { react as reactPlugin } from "../plugins/react.js"
|
|
2
3
|
import { reactHooks as reactHooksPlugin } from "../plugins/react-hooks.js"
|
|
3
4
|
|
|
@@ -16,7 +17,7 @@ export function react(config) {
|
|
|
16
17
|
|
|
17
18
|
return {
|
|
18
19
|
extends: [...reactConfig, ...(extendsConfig ?? [])],
|
|
19
|
-
files: files ?? [
|
|
20
|
+
files: files ?? [...REACT_FILES, ...(additionalFiles ?? [])],
|
|
20
21
|
...rest,
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { STORY_FILES } from "../file-patterns.js"
|
|
1
2
|
import { storybook as storybookPlugin } from "../plugins/storybook.js"
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -25,13 +26,7 @@ export function storybook(config) {
|
|
|
25
26
|
|
|
26
27
|
return {
|
|
27
28
|
extends: [...storybookConfig, ...(extendsConfig ?? [])],
|
|
28
|
-
files: files ?? [
|
|
29
|
-
"**/*.stories.js",
|
|
30
|
-
"**/*.stories.ts",
|
|
31
|
-
"**/*.stories.jsx",
|
|
32
|
-
"**/*.stories.tsx",
|
|
33
|
-
...(additionalFiles ?? []),
|
|
34
|
-
],
|
|
29
|
+
files: files ?? [...STORY_FILES, ...(additionalFiles ?? [])],
|
|
35
30
|
...rest,
|
|
36
31
|
}
|
|
37
32
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ALL_JS_TS_FILES } from "../file-patterns.js"
|
|
2
|
+
import { tanstackQuery as tanstackQueryPlugin } from "../plugins/tanstack-query.js"
|
|
3
|
+
|
|
4
|
+
export const tanstackQueryConfig = [tanstackQueryPlugin]
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* TanStack Query configuration
|
|
8
|
+
*
|
|
9
|
+
* @param {import("@eslint/config-helpers").ConfigWithExtends & { additionalFiles?: string[] }} [config]
|
|
10
|
+
* - Additional config
|
|
11
|
+
*
|
|
12
|
+
* @returns {import("@eslint/config-helpers").ConfigWithExtends} ESLint config
|
|
13
|
+
*/
|
|
14
|
+
export function tanstackQuery(config) {
|
|
15
|
+
const { additionalFiles, extends: extendsConfig, files, ...rest } = config ?? {}
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
extends: [...tanstackQueryConfig, ...(extendsConfig ?? [])],
|
|
19
|
+
files: files ?? [...ALL_JS_TS_FILES, "**/*.jsx", ...(additionalFiles ?? [])],
|
|
20
|
+
...rest,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ALL_JS_TS_FILES } from "../file-patterns.js"
|
|
2
|
+
import { turbo as turboPlugin } from "../plugins/turbo.js"
|
|
3
|
+
|
|
4
|
+
export const turboConfig = [turboPlugin]
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Turbo monorepo configuration
|
|
8
|
+
*
|
|
9
|
+
* @param {import("@eslint/config-helpers").ConfigWithExtends & { additionalFiles?: string[] }} [config]
|
|
10
|
+
* - Additional config
|
|
11
|
+
*
|
|
12
|
+
* @returns {import("@eslint/config-helpers").ConfigWithExtends} ESLint config
|
|
13
|
+
*/
|
|
14
|
+
export function turbo(config) {
|
|
15
|
+
const { additionalFiles, extends: extendsConfig, files, ...rest } = config ?? {}
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
extends: [...turboConfig, ...(extendsConfig ?? [])],
|
|
19
|
+
files: files ?? [...ALL_JS_TS_FILES, "**/*.jsx", ...(additionalFiles ?? [])],
|
|
20
|
+
...rest,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import typescriptEslint from "typescript-eslint"
|
|
2
2
|
|
|
3
|
+
import { TS_FILES } from "../file-patterns.js"
|
|
4
|
+
|
|
3
5
|
/** @type {import("@eslint/config-helpers").Config[]} */
|
|
4
6
|
export const typescriptStrictConfig = [
|
|
5
7
|
{
|
|
@@ -43,7 +45,7 @@ export function typescriptStrict(config) {
|
|
|
43
45
|
|
|
44
46
|
return {
|
|
45
47
|
extends: [...typescriptStrictConfig, ...(extendsConfig ?? [])],
|
|
46
|
-
files: files ?? [
|
|
48
|
+
files: files ?? [...TS_FILES, "**/*.tsx", ...(additionalFiles ?? [])],
|
|
47
49
|
...rest,
|
|
48
50
|
}
|
|
49
51
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import tseslint from "typescript-eslint"
|
|
2
2
|
|
|
3
|
+
import { ALL_JS_TS_FILES, TS_FILES } from "../file-patterns.js"
|
|
3
4
|
import { typescriptEslint } from "../plugins/typescript-eslint.js"
|
|
4
5
|
import { typescriptSortKeys } from "../plugins/typescript-sort-keys.js"
|
|
5
6
|
|
|
@@ -16,11 +17,11 @@ export const typescriptConfig = [
|
|
|
16
17
|
},
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
|
-
files: [
|
|
20
|
+
files: [...TS_FILES, "**/*.tsx"],
|
|
20
21
|
...typescriptEslint,
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
|
-
files: [
|
|
24
|
+
files: [...TS_FILES, "**/*.tsx"],
|
|
24
25
|
...typescriptSortKeys,
|
|
25
26
|
},
|
|
26
27
|
]
|
|
@@ -38,15 +39,7 @@ export function typescript(config) {
|
|
|
38
39
|
|
|
39
40
|
return {
|
|
40
41
|
extends: [...typescriptConfig, ...(extendsConfig ?? [])],
|
|
41
|
-
files: files ?? [
|
|
42
|
-
"**/*.js",
|
|
43
|
-
"**/*.ts",
|
|
44
|
-
"**/*.tsx",
|
|
45
|
-
"**/*.cjs",
|
|
46
|
-
"**/*.cts",
|
|
47
|
-
"**/*.mts",
|
|
48
|
-
...(additionalFiles ?? []),
|
|
49
|
-
],
|
|
42
|
+
files: files ?? [...ALL_JS_TS_FILES, ...(additionalFiles ?? [])],
|
|
50
43
|
...rest,
|
|
51
44
|
}
|
|
52
45
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TEST_FILES } from "../file-patterns.js"
|
|
1
2
|
import { vitest as vitestPlugin } from "../plugins/vitest.js"
|
|
2
3
|
|
|
3
4
|
export const vitestConfig = [vitestPlugin]
|
|
@@ -15,19 +16,7 @@ export function vitest(config) {
|
|
|
15
16
|
|
|
16
17
|
return {
|
|
17
18
|
extends: [...vitestConfig, ...(extendsConfig ?? [])],
|
|
18
|
-
files: files ?? [
|
|
19
|
-
"**/*.test.js",
|
|
20
|
-
"**/*.test.ts",
|
|
21
|
-
"**/*.spec.js",
|
|
22
|
-
"**/*.spec.ts",
|
|
23
|
-
"**/*.unit.test.js",
|
|
24
|
-
"**/*.unit.test.ts",
|
|
25
|
-
"**/*.int.test.js",
|
|
26
|
-
"**/*.int.test.ts",
|
|
27
|
-
"**/*.integration.test.js",
|
|
28
|
-
"**/*.integration.test.ts",
|
|
29
|
-
...(additionalFiles ?? []),
|
|
30
|
-
],
|
|
19
|
+
files: files ?? [...TEST_FILES, ...(additionalFiles ?? [])],
|
|
31
20
|
...rest,
|
|
32
21
|
}
|
|
33
22
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const JS_FILES = ["**/*.js", "**/*.cjs", "**/*.mjs"]
|
|
2
|
+
|
|
3
|
+
export const TS_FILES = ["**/*.ts", "**/*.cts", "**/*.mts"]
|
|
4
|
+
|
|
5
|
+
export const REACT_FILES = ["**/*.jsx", "**/*.tsx"]
|
|
6
|
+
|
|
7
|
+
export const ALL_JS_TS_FILES = [...JS_FILES, ...TS_FILES, ...REACT_FILES]
|
|
8
|
+
|
|
9
|
+
export const TEST_FILES = [
|
|
10
|
+
"**/*.test.js",
|
|
11
|
+
"**/*.test.ts",
|
|
12
|
+
"**/*.spec.js",
|
|
13
|
+
"**/*.spec.ts",
|
|
14
|
+
"**/*.unit.test.js",
|
|
15
|
+
"**/*.unit.test.ts",
|
|
16
|
+
"**/*.int.test.js",
|
|
17
|
+
"**/*.int.test.ts",
|
|
18
|
+
"**/*.integration.test.js",
|
|
19
|
+
"**/*.integration.test.ts",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
export const NODE_FILES = [...JS_FILES, ...TS_FILES]
|
|
23
|
+
|
|
24
|
+
export const STORY_FILES = [
|
|
25
|
+
"**/*.stories.js",
|
|
26
|
+
"**/*.stories.ts",
|
|
27
|
+
"**/*.stories.jsx",
|
|
28
|
+
"**/*.stories.tsx",
|
|
29
|
+
]
|
package/src/eslint/index.js
CHANGED
|
@@ -37,6 +37,8 @@ export { packageJson, packageJsonWorkspace } from "./configs/package-json.js"
|
|
|
37
37
|
export { playwright } from "./configs/playwright.js"
|
|
38
38
|
export { react } from "./configs/react.js"
|
|
39
39
|
export { storybook } from "./configs/storybook.js"
|
|
40
|
+
export { tanstackQuery } from "./configs/tanstack-query.js"
|
|
41
|
+
export { turbo } from "./configs/turbo.js"
|
|
40
42
|
export { typescript } from "./configs/typescript.js"
|
|
41
43
|
export { typescriptStrict } from "./configs/typescript-strict.js"
|
|
42
44
|
export { vitest } from "./configs/vitest.js"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import tanstackQueryPlugin from "@tanstack/eslint-plugin-query"
|
|
2
|
+
|
|
3
|
+
/** @type {import("@eslint/config-helpers").Config} */
|
|
4
|
+
export const tanstackQuery = {
|
|
5
|
+
plugins: {
|
|
6
|
+
"@tanstack/query": tanstackQueryPlugin,
|
|
7
|
+
},
|
|
8
|
+
rules: {
|
|
9
|
+
"@tanstack/query/exhaustive-deps": "error",
|
|
10
|
+
"@tanstack/query/no-rest-destructuring": "error",
|
|
11
|
+
"@tanstack/query/stable-query-client": "error",
|
|
12
|
+
},
|
|
13
|
+
}
|