Skip to content

Commit 22f7f2d

Browse files
authored
fix!: remove UserConfig type in favor of ViteUserConfig (#8196)
1 parent da59eb8 commit 22f7f2d

File tree

16 files changed

+43
-82
lines changed

16 files changed

+43
-82
lines changed

packages/vitest/src/node/core.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import type { CancelReason, File } from '@vitest/runner'
22
import type { Awaitable } from '@vitest/utils'
33
import type { Writable } from 'node:stream'
44
import type { ViteDevServer } from 'vite'
5-
import type { defineWorkspace } from 'vitest/config'
65
import type { SerializedCoverageConfig } from '../runtime/config'
76
import type { ArgumentsType, ProvidedContext, UserConsoleLog } from '../types/general'
87
import type { CliOptions } from './cli/cli-api'
@@ -481,7 +480,7 @@ export class Vitest {
481480
)
482481

483482
const workspaceModule = await this.import<{
484-
default: ReturnType<typeof defineWorkspace>
483+
default: TestProjectConfiguration[]
485484
}>(workspaceConfigPath)
486485

487486
if (!workspaceModule.default || !Array.isArray(workspaceModule.default)) {

packages/vitest/src/node/types/config.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,6 +1161,7 @@ export interface UserWorkspaceConfig extends ViteUserConfig {
11611161
test?: ProjectConfig
11621162
}
11631163

1164+
// TODO: remove types when "workspace" support is removed
11641165
export type UserProjectConfigFn = (
11651166
env: ConfigEnv
11661167
) => UserWorkspaceConfig | Promise<UserWorkspaceConfig>
@@ -1183,6 +1184,3 @@ export type TestProjectConfiguration =
11831184
| TestProjectInlineConfiguration
11841185
| Promise<UserWorkspaceConfig>
11851186
| UserProjectConfigFn
1186-
1187-
/** @deprecated use `TestProjectConfiguration` instead */
1188-
export type WorkspaceProjectConfiguration = TestProjectConfiguration

packages/vitest/src/public/config.ts

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import type { ConfigEnv, UserConfig as ViteUserConfig } from 'vite'
33
import type {
44
TestProjectConfiguration,
55
TestProjectInlineConfiguration,
6+
UserConfig,
67
UserProjectConfigExport,
78
UserProjectConfigFn,
89
UserWorkspaceConfig,
9-
WorkspaceProjectConfiguration,
1010
} from '../node/types/config'
1111
import '../node/types/vite'
1212

@@ -23,38 +23,33 @@ export type { WatcherTriggerPattern } from '../node/watcher'
2323
export { mergeConfig } from 'vite'
2424
export type { Plugin } from 'vite'
2525

26-
export type { ConfigEnv, ViteUserConfig }
27-
/**
28-
* @deprecated Use `ViteUserConfig` instead
29-
*/
30-
export type UserConfig = ViteUserConfig
26+
export type { ConfigEnv, UserConfig as TestUserConfig, ViteUserConfig }
3127
export type {
3228
TestProjectConfiguration,
3329
TestProjectInlineConfiguration,
3430
UserProjectConfigExport,
3531
UserProjectConfigFn,
3632
UserWorkspaceConfig,
37-
WorkspaceProjectConfiguration,
3833
}
39-
export type UserConfigFnObject = (env: ConfigEnv) => ViteUserConfig
40-
export type UserConfigFnPromise = (env: ConfigEnv) => Promise<ViteUserConfig>
41-
export type UserConfigFn = (
34+
export type ViteUserConfigFnObject = (env: ConfigEnv) => ViteUserConfig
35+
export type ViteUserConfigFnPromise = (env: ConfigEnv) => Promise<ViteUserConfig>
36+
export type ViteUserConfigFn = (
4237
env: ConfigEnv
4338
) => ViteUserConfig | Promise<ViteUserConfig>
44-
export type UserConfigExport =
39+
export type ViteUserConfigExport =
4540
| ViteUserConfig
4641
| Promise<ViteUserConfig>
47-
| UserConfigFnObject
48-
| UserConfigFnPromise
49-
| UserConfigFn
42+
| ViteUserConfigFnObject
43+
| ViteUserConfigFnPromise
44+
| ViteUserConfigFn
5045

5146
export function defineConfig(config: ViteUserConfig): ViteUserConfig
5247
export function defineConfig(
5348
config: Promise<ViteUserConfig>
5449
): Promise<ViteUserConfig>
55-
export function defineConfig(config: UserConfigFnObject): UserConfigFnObject
56-
export function defineConfig(config: UserConfigExport): UserConfigExport
57-
export function defineConfig(config: UserConfigExport): UserConfigExport {
50+
export function defineConfig(config: ViteUserConfigFnObject): ViteUserConfigFnObject
51+
export function defineConfig(config: ViteUserConfigExport): ViteUserConfigExport
52+
export function defineConfig(config: ViteUserConfigExport): ViteUserConfigExport {
5853
return config
5954
}
6055

@@ -65,10 +60,3 @@ export function defineProject(config: UserProjectConfigExport): UserProjectConfi
6560
export function defineProject(config: UserProjectConfigExport): UserProjectConfigExport {
6661
return config
6762
}
68-
69-
/**
70-
* @deprecated use the `projects` field in the root config instead
71-
*/
72-
export function defineWorkspace(config: TestProjectConfiguration[]): TestProjectConfiguration[] {
73-
return config
74-
}

test/cli/fixtures/browser-multiple/vitest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { resolve } from 'pathe';
2-
import { defineConfig, defineWorkspace } from 'vitest/config';
2+
import { defineConfig } from 'vitest/config';
33

44
export default defineConfig({
55
test: {

test/config/fixtures/pool-isolation/isolated.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { expect, test } from 'vitest'
2-
import type { UserConfig } from 'vitest/config'
2+
import type { TestUserConfig } from 'vitest/config'
33

44
const pool = process.env.TESTED_POOL as "forks" | "threads";
55

66
test('is isolated', () => {
77
// @ts-expect-error -- internal
8-
const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
8+
const config: TestUserConfig = globalThis.__vitest_worker__.config
99

1010
if (pool === 'forks') {
1111
expect(config.poolOptions?.forks?.isolate).toBe(true)

test/config/fixtures/pool-isolation/non-isolated.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { expect, test } from 'vitest'
2-
import type { UserConfig } from 'vitest/config'
2+
import type { TestUserConfig } from 'vitest/config'
33

44
const pool = process.env.TESTED_POOL as "forks" | "threads";
55

66
test('is isolated', () => {
77
// @ts-expect-error -- internal
8-
const config: NonNullable<UserConfig['test']> = globalThis.__vitest_worker__.config
8+
const config: TestUserConfig = globalThis.__vitest_worker__.config
99

1010
if (pool === 'forks') {
1111
expect(config.poolOptions?.forks?.isolate).toBe(false)
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { defineWorkspace } from "vitest/config";
2-
3-
export default defineWorkspace([
1+
// TODO: remove when --workspace is removed
2+
export default [
43
{
54
test: {
65
name: "Browser project",
@@ -11,4 +10,4 @@ export default defineWorkspace([
1110
},
1211
}
1312
}
14-
])
13+
]

test/config/test/config-types.test-d.ts

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
import type { TestUserConfig } from 'vitest/config'
12
import { assertType, describe, expectTypeOf, test } from 'vitest'
2-
import { defineConfig, defineProject, defineWorkspace, mergeConfig } from 'vitest/config'
3+
import { defineConfig, defineProject, mergeConfig } from 'vitest/config'
34

45
const expectMainTestConfig = expectTypeOf(defineConfig).parameter(0).resolves.toHaveProperty('test').exclude<undefined>()
56
const expectProjectTestConfig = expectTypeOf(defineProject).parameter(0).resolves.toHaveProperty('test').exclude<undefined>()
@@ -32,7 +33,7 @@ describe('merge config helper', () => {
3233
})
3334

3435
describe('define workspace helper', () => {
35-
type DefineWorkspaceParameter = Parameters<typeof defineWorkspace>[0]
36+
type DefineWorkspaceParameter = TestUserConfig['projects']
3637

3738
test('allows string', () => {
3839
assertType<DefineWorkspaceParameter>(['./path/to/workspace'])
@@ -75,32 +76,4 @@ describe('define workspace helper', () => {
7576
},
7677
])
7778
})
78-
79-
test('return type matches parameters', () => {
80-
expectTypeOf(defineWorkspace).returns.toMatchTypeOf<DefineWorkspaceParameter>()
81-
82-
expectTypeOf(defineWorkspace([
83-
'./path/to/project',
84-
{
85-
test: {
86-
name: 'Workspace Project #1',
87-
include: ['string'],
88-
89-
// @ts-expect-error -- Not allowed here
90-
coverage: {},
91-
},
92-
},
93-
'./path/to/another/project',
94-
{
95-
extends: 'workspace custom field',
96-
test: {
97-
name: 'Workspace Project #2',
98-
include: ['string'],
99-
100-
// @ts-expect-error -- Not allowed here
101-
coverage: {},
102-
},
103-
},
104-
])).items.toMatchTypeOf<DefineWorkspaceParameter[number]>()
105-
})
10679
})

test/core/test/exports.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ it('exports snapshot', async ({ skip, task }) => {
4646
"defaultInclude": "object",
4747
"defineConfig": "function",
4848
"defineProject": "function",
49-
"defineWorkspace": "function",
5049
"extraInlineDeps": "object",
5150
"mergeConfig": "function",
5251
},
@@ -202,7 +201,6 @@ it('exports snapshot', async ({ skip, task }) => {
202201
"defaultInclude": "object",
203202
"defineConfig": "function",
204203
"defineProject": "function",
205-
"defineWorkspace": "function",
206204
"extraInlineDeps": "object",
207205
"mergeConfig": "function",
208206
},

test/coverage-test/vitest.workspace.custom.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { defineConfig, defineWorkspace } from 'vitest/config'
1+
import type { UserWorkspaceConfig } from 'vitest/config'
2+
import { defineConfig } from 'vitest/config'
23

34
const GENERIC_TESTS = 'test/**.test.ts'
45
const V8_TESTS = 'test/**.v8.test.ts'
@@ -14,6 +15,11 @@ const config = defineConfig({
1415
},
1516
})
1617

18+
// TODO: move when --workspace is removed
19+
function defineWorkspace(config: UserWorkspaceConfig[]) {
20+
return config
21+
}
22+
1723
export default defineWorkspace([
1824
// Test cases for v8-provider
1925
{

0 commit comments

Comments
 (0)