@aamini/config 0.0.13 → 0.0.14

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.
Files changed (56) hide show
  1. package/dist/{playwright.shared.config.d.mts → playwright.d.mts} +2 -3
  2. package/dist/{playwright.shared.config.mjs → playwright.mjs} +2 -3
  3. package/dist/playwright.mjs.map +1 -0
  4. package/dist/setup/styles.mjs +0 -1
  5. package/dist/test/browser.d.mts +7 -2
  6. package/dist/test/browser.mjs +5 -3
  7. package/dist/test/browser.mjs.map +1 -1
  8. package/dist/test/db.d.mts +34 -7
  9. package/dist/test/db.mjs +29 -15
  10. package/dist/test/db.mjs.map +1 -1
  11. package/dist/test/server.d.mts +7 -3
  12. package/dist/test/server.mjs +3 -4
  13. package/dist/test/server.mjs.map +1 -1
  14. package/dist/vite.d.mts +81 -0
  15. package/dist/vite.mjs +211 -0
  16. package/dist/vite.mjs.map +1 -0
  17. package/package.json +38 -45
  18. package/tsconfig/tsconfig.tanstack.json +1 -1
  19. package/dist/internal-Dshd0hdM.mjs +0 -22
  20. package/dist/internal-Dshd0hdM.mjs.map +0 -1
  21. package/dist/playwright.shared.config.mjs.map +0 -1
  22. package/dist/test/database.d.mts +0 -22
  23. package/dist/test/database.mjs +0 -18
  24. package/dist/test/database.mjs.map +0 -1
  25. package/dist/test/playwright.d.mts +0 -7
  26. package/dist/test/playwright.mjs +0 -15
  27. package/dist/test/playwright.mjs.map +0 -1
  28. package/dist/test/postgres.d.mts +0 -14
  29. package/dist/test/postgres.mjs +0 -25
  30. package/dist/test/postgres.mjs.map +0 -1
  31. package/dist/test/visual-page.d.mts +0 -36
  32. package/dist/test/visual-page.mjs +0 -30
  33. package/dist/test/visual-page.mjs.map +0 -1
  34. package/dist/vite.shared.d.mts +0 -379
  35. package/dist/vite.shared.mjs +0 -302
  36. package/dist/vite.shared.mjs.map +0 -1
  37. package/dist/vitest.shared.d.mts +0 -12
  38. package/dist/vitest.shared.mjs +0 -122
  39. package/dist/vitest.shared.mjs.map +0 -1
  40. package/msw.ts +0 -5
  41. package/playwright.shared.config.ts +0 -71
  42. package/setup/styles.ts +0 -4
  43. package/test/browser.ts +0 -44
  44. package/test/database.ts +0 -38
  45. package/test/db.ts +0 -86
  46. package/test/internal.ts +0 -45
  47. package/test/playwright.ts +0 -17
  48. package/test/postgres.ts +0 -43
  49. package/test/server.ts +0 -43
  50. package/test/visual-page.ts +0 -57
  51. package/tsconfig/tsconfig.astro.json +0 -34
  52. package/tsconfig/tsconfig.react.json +0 -16
  53. package/virtual-modules.d.ts +0 -6
  54. package/vite.config.ts +0 -53
  55. package/vite.shared.ts +0 -411
  56. package/vitest.shared.ts +0 -183
@@ -1,379 +0,0 @@
1
- import { TestProjectConfiguration, TestProjectInlineConfiguration } from "vitest/config";
2
-
3
- //#region vite.shared.d.ts
4
- interface ProjectOverrides {
5
- server?: TestProjectConfiguration;
6
- browser?: TestProjectConfiguration;
7
- }
8
- declare function createAppConfig(root: string, projectOverrides?: ProjectOverrides, overrides?: TestProjectInlineConfiguration): {
9
- fmt: {
10
- singleQuote: boolean;
11
- semi: boolean;
12
- useTabs: boolean;
13
- experimentalTailwindcss: {};
14
- printWidth: number;
15
- experimentalSortPackageJson: boolean;
16
- proseWrap: string;
17
- ignorePatterns: string[];
18
- overrides: {
19
- files: string[];
20
- options: {
21
- useTabs: boolean;
22
- };
23
- }[];
24
- };
25
- lint: {
26
- plugins: string[];
27
- categories: {};
28
- options: {
29
- typeAware: boolean;
30
- typeCheck: boolean;
31
- };
32
- rules: {
33
- 'no-empty-pattern': string;
34
- 'no-console': (string | {
35
- allow: string[];
36
- })[];
37
- };
38
- settings: {
39
- 'jsx-a11y': {
40
- components: {};
41
- attributes: {};
42
- };
43
- react: {
44
- formComponents: any[];
45
- linkComponents: any[];
46
- };
47
- jsdoc: {
48
- ignorePrivate: boolean;
49
- ignoreInternal: boolean;
50
- ignoreReplacesDocs: boolean;
51
- overrideReplacesDocs: boolean;
52
- augmentsExtendsReplacesDocs: boolean;
53
- implementsReplacesDocs: boolean;
54
- exemptDestructuredRootsFromChecks: boolean;
55
- tagNamePreference: {};
56
- };
57
- };
58
- env: {
59
- builtin: boolean;
60
- };
61
- globals: {};
62
- ignorePatterns: string[];
63
- overrides: ({
64
- files: string[];
65
- rules: {
66
- 'eslint/no-restricted-imports': (string | {
67
- patterns: {
68
- group: string[];
69
- message: string;
70
- }[];
71
- })[];
72
- 'react/self-closing-comp'?: undefined;
73
- '@typescript-eslint/no-explicit-any'?: undefined;
74
- 'vitest/no-standalone-expect'?: undefined;
75
- 'no-console'?: undefined;
76
- };
77
- plugins?: undefined;
78
- } | {
79
- files: string[];
80
- rules: {
81
- 'eslint/no-restricted-imports': (string | {
82
- paths: {
83
- name: string;
84
- message: string;
85
- }[];
86
- })[];
87
- 'react/self-closing-comp'?: undefined;
88
- '@typescript-eslint/no-explicit-any'?: undefined;
89
- 'vitest/no-standalone-expect'?: undefined;
90
- 'no-console'?: undefined;
91
- };
92
- plugins?: undefined;
93
- } | {
94
- files: string[];
95
- plugins: string[];
96
- rules: {
97
- 'react/self-closing-comp': string;
98
- 'eslint/no-restricted-imports'?: undefined;
99
- '@typescript-eslint/no-explicit-any'?: undefined;
100
- 'vitest/no-standalone-expect'?: undefined;
101
- 'no-console'?: undefined;
102
- };
103
- } | {
104
- files: string[];
105
- plugins: string[];
106
- rules: {
107
- '@typescript-eslint/no-explicit-any': string;
108
- 'vitest/no-standalone-expect': (string | {
109
- additionalTestBlockFunctions: string[];
110
- })[];
111
- 'eslint/no-restricted-imports'?: undefined;
112
- 'react/self-closing-comp'?: undefined;
113
- 'no-console'?: undefined;
114
- };
115
- } | {
116
- files: string[];
117
- rules: {
118
- 'no-console': string;
119
- 'eslint/no-restricted-imports'?: undefined;
120
- 'react/self-closing-comp'?: undefined;
121
- '@typescript-eslint/no-explicit-any'?: undefined;
122
- 'vitest/no-standalone-expect'?: undefined;
123
- };
124
- plugins?: undefined;
125
- })[];
126
- };
127
- staged: {
128
- '*.{js,ts,tsx}': string;
129
- };
130
- };
131
- declare function baseConfigFor(configUrl: string | URL): {
132
- fmt: {
133
- singleQuote: boolean;
134
- semi: boolean;
135
- useTabs: boolean;
136
- experimentalTailwindcss: {};
137
- printWidth: number;
138
- experimentalSortPackageJson: boolean;
139
- proseWrap: string;
140
- ignorePatterns: string[];
141
- overrides: {
142
- files: string[];
143
- options: {
144
- useTabs: boolean;
145
- };
146
- }[];
147
- };
148
- lint: {
149
- plugins: string[];
150
- categories: {};
151
- options: {
152
- typeAware: boolean;
153
- typeCheck: boolean;
154
- };
155
- rules: {
156
- 'no-empty-pattern': string;
157
- 'no-console': (string | {
158
- allow: string[];
159
- })[];
160
- };
161
- settings: {
162
- 'jsx-a11y': {
163
- components: {};
164
- attributes: {};
165
- };
166
- react: {
167
- formComponents: any[];
168
- linkComponents: any[];
169
- };
170
- jsdoc: {
171
- ignorePrivate: boolean;
172
- ignoreInternal: boolean;
173
- ignoreReplacesDocs: boolean;
174
- overrideReplacesDocs: boolean;
175
- augmentsExtendsReplacesDocs: boolean;
176
- implementsReplacesDocs: boolean;
177
- exemptDestructuredRootsFromChecks: boolean;
178
- tagNamePreference: {};
179
- };
180
- };
181
- env: {
182
- builtin: boolean;
183
- };
184
- globals: {};
185
- ignorePatterns: string[];
186
- overrides: ({
187
- files: string[];
188
- rules: {
189
- 'eslint/no-restricted-imports': (string | {
190
- patterns: {
191
- group: string[];
192
- message: string;
193
- }[];
194
- })[];
195
- 'react/self-closing-comp'?: undefined;
196
- '@typescript-eslint/no-explicit-any'?: undefined;
197
- 'vitest/no-standalone-expect'?: undefined;
198
- 'no-console'?: undefined;
199
- };
200
- plugins?: undefined;
201
- } | {
202
- files: string[];
203
- rules: {
204
- 'eslint/no-restricted-imports': (string | {
205
- paths: {
206
- name: string;
207
- message: string;
208
- }[];
209
- })[];
210
- 'react/self-closing-comp'?: undefined;
211
- '@typescript-eslint/no-explicit-any'?: undefined;
212
- 'vitest/no-standalone-expect'?: undefined;
213
- 'no-console'?: undefined;
214
- };
215
- plugins?: undefined;
216
- } | {
217
- files: string[];
218
- plugins: string[];
219
- rules: {
220
- 'react/self-closing-comp': string;
221
- 'eslint/no-restricted-imports'?: undefined;
222
- '@typescript-eslint/no-explicit-any'?: undefined;
223
- 'vitest/no-standalone-expect'?: undefined;
224
- 'no-console'?: undefined;
225
- };
226
- } | {
227
- files: string[];
228
- plugins: string[];
229
- rules: {
230
- '@typescript-eslint/no-explicit-any': string;
231
- 'vitest/no-standalone-expect': (string | {
232
- additionalTestBlockFunctions: string[];
233
- })[];
234
- 'eslint/no-restricted-imports'?: undefined;
235
- 'react/self-closing-comp'?: undefined;
236
- 'no-console'?: undefined;
237
- };
238
- } | {
239
- files: string[];
240
- rules: {
241
- 'no-console': string;
242
- 'eslint/no-restricted-imports'?: undefined;
243
- 'react/self-closing-comp'?: undefined;
244
- '@typescript-eslint/no-explicit-any'?: undefined;
245
- 'vitest/no-standalone-expect'?: undefined;
246
- };
247
- plugins?: undefined;
248
- })[];
249
- };
250
- staged: {
251
- '*.{js,ts,tsx}': string;
252
- };
253
- };
254
- declare const workspaceConfig: {
255
- fmt: {
256
- singleQuote: boolean;
257
- semi: boolean;
258
- useTabs: boolean;
259
- experimentalTailwindcss: {};
260
- printWidth: number;
261
- experimentalSortPackageJson: boolean;
262
- proseWrap: string;
263
- ignorePatterns: string[];
264
- overrides: {
265
- files: string[];
266
- options: {
267
- useTabs: boolean;
268
- };
269
- }[];
270
- };
271
- lint: {
272
- plugins: string[];
273
- categories: {};
274
- options: {
275
- typeAware: boolean;
276
- typeCheck: boolean;
277
- };
278
- rules: {
279
- 'no-empty-pattern': string;
280
- 'no-console': (string | {
281
- allow: string[];
282
- })[];
283
- };
284
- settings: {
285
- 'jsx-a11y': {
286
- components: {};
287
- attributes: {};
288
- };
289
- react: {
290
- formComponents: any[];
291
- linkComponents: any[];
292
- };
293
- jsdoc: {
294
- ignorePrivate: boolean;
295
- ignoreInternal: boolean;
296
- ignoreReplacesDocs: boolean;
297
- overrideReplacesDocs: boolean;
298
- augmentsExtendsReplacesDocs: boolean;
299
- implementsReplacesDocs: boolean;
300
- exemptDestructuredRootsFromChecks: boolean;
301
- tagNamePreference: {};
302
- };
303
- };
304
- env: {
305
- builtin: boolean;
306
- };
307
- globals: {};
308
- ignorePatterns: string[];
309
- overrides: ({
310
- files: string[];
311
- rules: {
312
- 'eslint/no-restricted-imports': (string | {
313
- patterns: {
314
- group: string[];
315
- message: string;
316
- }[];
317
- })[];
318
- 'react/self-closing-comp'?: undefined;
319
- '@typescript-eslint/no-explicit-any'?: undefined;
320
- 'vitest/no-standalone-expect'?: undefined;
321
- 'no-console'?: undefined;
322
- };
323
- plugins?: undefined;
324
- } | {
325
- files: string[];
326
- rules: {
327
- 'eslint/no-restricted-imports': (string | {
328
- paths: {
329
- name: string;
330
- message: string;
331
- }[];
332
- })[];
333
- 'react/self-closing-comp'?: undefined;
334
- '@typescript-eslint/no-explicit-any'?: undefined;
335
- 'vitest/no-standalone-expect'?: undefined;
336
- 'no-console'?: undefined;
337
- };
338
- plugins?: undefined;
339
- } | {
340
- files: string[];
341
- plugins: string[];
342
- rules: {
343
- 'react/self-closing-comp': string;
344
- 'eslint/no-restricted-imports'?: undefined;
345
- '@typescript-eslint/no-explicit-any'?: undefined;
346
- 'vitest/no-standalone-expect'?: undefined;
347
- 'no-console'?: undefined;
348
- };
349
- } | {
350
- files: string[];
351
- plugins: string[];
352
- rules: {
353
- '@typescript-eslint/no-explicit-any': string;
354
- 'vitest/no-standalone-expect': (string | {
355
- additionalTestBlockFunctions: string[];
356
- })[];
357
- 'eslint/no-restricted-imports'?: undefined;
358
- 'react/self-closing-comp'?: undefined;
359
- 'no-console'?: undefined;
360
- };
361
- } | {
362
- files: string[];
363
- rules: {
364
- 'no-console': string;
365
- 'eslint/no-restricted-imports'?: undefined;
366
- 'react/self-closing-comp'?: undefined;
367
- '@typescript-eslint/no-explicit-any'?: undefined;
368
- 'vitest/no-standalone-expect'?: undefined;
369
- };
370
- plugins?: undefined;
371
- })[];
372
- };
373
- staged: {
374
- '*.{js,ts,tsx}': string;
375
- };
376
- };
377
- //#endregion
378
- export { baseConfigFor, createAppConfig, workspaceConfig };
379
- //# sourceMappingURL=vite.shared.d.mts.map
@@ -1,302 +0,0 @@
1
- import { nitro } from "nitro/vite";
2
- import { devtools } from "@tanstack/devtools-vite";
3
- import { tanstackStart } from "@tanstack/react-start/plugin/vite";
4
- import viteReact, { reactCompilerPreset } from "@vitejs/plugin-react";
5
- import tailwindcss from "@tailwindcss/vite";
6
- import babel from "@rolldown/plugin-babel";
7
- import svgr from "vite-plugin-svgr";
8
- import { existsSync } from "node:fs";
9
- import { dirname, resolve } from "node:path";
10
- import { fileURLToPath } from "node:url";
11
- import { defineConfig, mergeConfig } from "vitest/config";
12
- import { defineConfig as defineConfig$1 } from "vite";
13
- import { playwright } from "vite-plus/test/browser-playwright";
14
- //#region vite.shared.ts
15
- const HANDLER_LOCATIONS = [
16
- "__mocks__/handlers.ts",
17
- "__mocks__/handlers.js",
18
- "src/mocks/handlers.ts",
19
- "src/mocks/handlers.js"
20
- ];
21
- const STYLES_LOCATIONS = [
22
- "src/styles.css",
23
- "src/index.css",
24
- "src/app.css"
25
- ];
26
- function mswHandlersPlugin(root) {
27
- const virtualModuleId = "@test/handlers";
28
- const resolvedVirtualModuleId = "\0" + virtualModuleId;
29
- return {
30
- name: "msw-handlers-resolver",
31
- resolveId(id) {
32
- if (id === virtualModuleId) return resolvedVirtualModuleId;
33
- },
34
- load(id) {
35
- if (id === resolvedVirtualModuleId) {
36
- for (const location of HANDLER_LOCATIONS) {
37
- const fullPath = resolve(root, location);
38
- if (existsSync(fullPath)) return `export { default } from '${fullPath}'`;
39
- }
40
- throw new Error(`No MSW handlers found. Expected one of:\n${HANDLER_LOCATIONS.map((l) => ` - ${resolve(root, l)}`).join("\n")}`);
41
- }
42
- }
43
- };
44
- }
45
- function stylesPlugin(root) {
46
- const virtualModuleId = "@test/styles";
47
- const resolvedVirtualModuleId = "\0" + virtualModuleId;
48
- return {
49
- name: "styles-resolver",
50
- resolveId(id) {
51
- if (id === virtualModuleId) return resolvedVirtualModuleId;
52
- },
53
- load(id) {
54
- if (id === resolvedVirtualModuleId) {
55
- for (const location of STYLES_LOCATIONS) {
56
- const fullPath = resolve(root, location);
57
- if (existsSync(fullPath)) return `import '${fullPath}'`;
58
- }
59
- throw new Error(`No styles file found. Expected one of:\n${STYLES_LOCATIONS.map((l) => ` - ${resolve(root, l)}`).join("\n")}`);
60
- }
61
- }
62
- };
63
- }
64
- const stylesSetup = "@aamini/config/setup/styles";
65
- function mergeProjectConfig(base, overrides = {}) {
66
- return mergeConfig(base, overrides);
67
- }
68
- function createBaseConfig(root, overrides = {}, projectOverrides = {}) {
69
- const localSetup = resolve(root, "vitest.setup.ts");
70
- const hasLocalSetup = existsSync(localSetup);
71
- return mergeConfig(defineConfig({
72
- root,
73
- resolve: {
74
- tsconfigPaths: true,
75
- dedupe: ["react", "react-dom"],
76
- alias: [{
77
- find: "@/mocks",
78
- replacement: resolve(root, "__mocks__")
79
- }, {
80
- find: "@",
81
- replacement: resolve(root, "src")
82
- }]
83
- },
84
- plugins: [tailwindcss(), svgr({
85
- include: "**/*.svg",
86
- svgrOptions: { exportType: "default" }
87
- })],
88
- test: {
89
- passWithNoTests: true,
90
- exclude: [
91
- "**/node_modules/**",
92
- "**/dist/**",
93
- "**/.output/**",
94
- "**/.vercel/**",
95
- "**/cypress/**",
96
- "**/.{idea,git,cache,output,temp}/**",
97
- "**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*",
98
- "**/e2e/**"
99
- ],
100
- projects: [
101
- {
102
- extends: true,
103
- test: {
104
- name: "unit",
105
- include: ["src/**/*.test.unit.ts"]
106
- }
107
- },
108
- mergeProjectConfig({
109
- extends: true,
110
- plugins: [mswHandlersPlugin(root)],
111
- test: {
112
- name: "server",
113
- include: ["src/**/*.test.ts"],
114
- exclude: ["src/**/*.test.unit.ts", "src/**/*.test.tsx"],
115
- testTimeout: 3e4,
116
- fileParallelism: false,
117
- setupFiles: hasLocalSetup ? [localSetup] : []
118
- }
119
- }, projectOverrides.server ?? {}),
120
- mergeProjectConfig({
121
- extends: true,
122
- plugins: [mswHandlersPlugin(root), stylesPlugin(root)],
123
- test: {
124
- name: "browser",
125
- include: ["src/**/*.test.tsx", "tests/**/*.test.tsx"],
126
- setupFiles: [stylesSetup],
127
- browser: {
128
- instances: [{ browser: "chromium" }],
129
- provider: playwright(),
130
- enabled: true,
131
- headless: true
132
- }
133
- }
134
- }, projectOverrides.browser ?? {})
135
- ]
136
- }
137
- }), overrides);
138
- }
139
- const isVitest = process.env.VITEST === "true";
140
- function createFrameworkConfig(root) {
141
- return defineConfig$1({
142
- root,
143
- resolve: {
144
- tsconfigPaths: true,
145
- dedupe: ["react", "react-dom"],
146
- alias: [{
147
- find: "@/mocks",
148
- replacement: resolve(root, "__mocks__")
149
- }, {
150
- find: "@",
151
- replacement: resolve(root, "src")
152
- }]
153
- },
154
- ssr: { noExternal: ["recharts"] },
155
- plugins: [
156
- ...isVitest ? [] : [
157
- devtools(),
158
- nitro(),
159
- tanstackStart()
160
- ],
161
- tailwindcss(),
162
- viteReact(),
163
- babel({ presets: [reactCompilerPreset()] }),
164
- svgr({
165
- include: "**/*.svg",
166
- svgrOptions: { exportType: "default" }
167
- })
168
- ]
169
- });
170
- }
171
- function createAppConfig(root, projectOverrides = {}, overrides = {}) {
172
- return {
173
- ...workspaceConfig,
174
- ...mergeConfig(createFrameworkConfig(root), createBaseConfig(root, overrides, projectOverrides))
175
- };
176
- }
177
- function baseConfigFor(configUrl) {
178
- return createAppConfig(dirname(fileURLToPath(configUrl)));
179
- }
180
- const workspaceConfig = {
181
- fmt: {
182
- singleQuote: true,
183
- semi: false,
184
- useTabs: true,
185
- experimentalTailwindcss: {},
186
- printWidth: 80,
187
- experimentalSortPackageJson: false,
188
- proseWrap: "always",
189
- ignorePatterns: [
190
- "**/.vercel",
191
- "**/.output",
192
- "**/dist/**",
193
- "**/env.d.ts",
194
- "pnpm-lock.yaml",
195
- "**/routeTree.gen.ts",
196
- "infra/manifests/gitops/flux-system/gotk-components.yaml",
197
- "infra/charts/**/templates/**/*.{yml,yaml}",
198
- "**/charts/**",
199
- "**/*.yaml",
200
- "**/*.yml"
201
- ],
202
- overrides: [{
203
- files: ["*.{yaml,yml}"],
204
- options: { useTabs: false }
205
- }]
206
- },
207
- lint: {
208
- plugins: [
209
- "eslint",
210
- "unicorn",
211
- "typescript",
212
- "oxc",
213
- "react",
214
- "react-perf",
215
- "import",
216
- "jsdoc",
217
- "jsx-a11y",
218
- "node",
219
- "promise"
220
- ],
221
- categories: {},
222
- options: {
223
- typeAware: true,
224
- typeCheck: true
225
- },
226
- rules: {
227
- "no-empty-pattern": "off",
228
- "no-console": ["error", { allow: ["warn", "error"] }]
229
- },
230
- settings: {
231
- "jsx-a11y": {
232
- components: {},
233
- attributes: {}
234
- },
235
- react: {
236
- formComponents: [],
237
- linkComponents: []
238
- },
239
- jsdoc: {
240
- ignorePrivate: false,
241
- ignoreInternal: false,
242
- ignoreReplacesDocs: true,
243
- overrideReplacesDocs: true,
244
- augmentsExtendsReplacesDocs: false,
245
- implementsReplacesDocs: false,
246
- exemptDestructuredRootsFromChecks: false,
247
- tagNamePreference: {}
248
- }
249
- },
250
- env: { builtin: true },
251
- globals: {},
252
- ignorePatterns: ["**/dist/**"],
253
- overrides: [
254
- {
255
- files: ["**/*.test.unit.ts"],
256
- rules: { "eslint/no-restricted-imports": ["error", { patterns: [{
257
- group: ["@aamini/config-testing/test/*"],
258
- message: "Unit tests should not import test fixtures. Use plain vitest imports instead."
259
- }] }] }
260
- },
261
- {
262
- files: ["**/*.test.tsx"],
263
- rules: { "eslint/no-restricted-imports": ["error", { paths: [{
264
- name: "@aamini/config-testing/test/server",
265
- message: "Browser tests (*.test.tsx) should use test/browser, not test/server."
266
- }, {
267
- name: "@aamini/config-testing/test/db",
268
- message: "Browser tests (*.test.tsx) should use test/browser, not test/db."
269
- }] }] }
270
- },
271
- {
272
- files: ["**/*.test.ts"],
273
- rules: { "eslint/no-restricted-imports": ["error", { paths: [{
274
- name: "@aamini/config-testing/test/browser",
275
- message: "Server tests (*.test.ts) should use test/server or test/db, not test/browser."
276
- }] }] }
277
- },
278
- {
279
- files: ["apps/**"],
280
- plugins: ["typescript", "react"],
281
- rules: { "react/self-closing-comp": "error" }
282
- },
283
- {
284
- files: ["**/*.test.ts", "**/*.test.tsx"],
285
- plugins: ["typescript", "vitest"],
286
- rules: {
287
- "@typescript-eslint/no-explicit-any": "off",
288
- "vitest/no-standalone-expect": ["warn", { additionalTestBlockFunctions: ["test", "test.skip"] }]
289
- }
290
- },
291
- {
292
- files: ["**/scripts/**", "**/src/lib/imdb/**"],
293
- rules: { "no-console": "off" }
294
- }
295
- ]
296
- },
297
- staged: { "*.{js,ts,tsx}": "vp check --fix" }
298
- };
299
- //#endregion
300
- export { baseConfigFor, createAppConfig, workspaceConfig };
301
-
302
- //# sourceMappingURL=vite.shared.mjs.map