Skip to content

Commit c0cf65f

Browse files
hi-ogawasxzz
andauthored
chore: use unplugin-isolated-decl with oxc-transform for dts build (#7609)
Co-authored-by: 三咲智子 Kevin Deng <[email protected]>
1 parent 5eb4cd1 commit c0cf65f

File tree

18 files changed

+407
-74
lines changed

18 files changed

+407
-74
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"esbuild": "^0.25.0",
5454
"eslint": "^9.21.0",
5555
"magic-string": "^0.30.17",
56+
"oxc-transform": "^0.56.0",
5657
"pathe": "^2.0.3",
5758
"rimraf": "^6.0.1",
5859
"rollup": "^4.34.8",
@@ -62,6 +63,7 @@
6263
"tinyglobby": "^0.2.12",
6364
"tsx": "^4.19.3",
6465
"typescript": "^5.7.3",
66+
"unplugin-isolated-decl": "^0.12.0",
6567
"vite": "^6.2.0",
6668
"vitest": "workspace:*",
6769
"zx": "^8.3.2"

packages/browser/rollup.config.js

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import commonjs from '@rollup/plugin-commonjs'
33
import json from '@rollup/plugin-json'
44
import resolve from '@rollup/plugin-node-resolve'
55
import { defineConfig } from 'rollup'
6-
import dts from 'rollup-plugin-dts'
76
import esbuild from 'rollup-plugin-esbuild'
7+
import { createDtsUtils } from '../../scripts/build-utils.js'
88

99
const require = createRequire(import.meta.url)
1010
const pkg = require('./package.json')
@@ -18,6 +18,13 @@ const external = [
1818
'vite',
1919
]
2020

21+
const dtsUtils = createDtsUtils()
22+
const dtsUtilsClient = createDtsUtils({
23+
// need extra depth to avoid output conflict
24+
isolatedDeclDir: '.types-client/tester',
25+
cleanupDir: '.types-client',
26+
})
27+
2128
const plugins = [
2229
resolve({
2330
preferBuiltins: true,
@@ -58,6 +65,7 @@ export default () =>
5865
}
5966
},
6067
},
68+
...dtsUtils.isolatedDecl(),
6169
...plugins,
6270
],
6371
},
@@ -74,7 +82,10 @@ export default () =>
7482
format: 'esm',
7583
},
7684
external,
77-
plugins,
85+
plugins: [
86+
...dtsUtilsClient.isolatedDecl(),
87+
...plugins,
88+
],
7889
},
7990
{
8091
input: './src/client/tester/context.ts',
@@ -118,32 +129,26 @@ export default () =>
118129
],
119130
},
120131
{
121-
input: input.index,
132+
input: dtsUtils.dtsInput(input.index),
122133
output: {
123-
file: 'dist/index.d.ts',
134+
dir: 'dist',
135+
entryFileNames: '[name].d.ts',
124136
format: 'esm',
125137
},
126138
external,
127-
plugins: [
128-
dts({
129-
respectExternal: true,
130-
}),
131-
],
139+
plugins: dtsUtils.dts(),
132140
},
133141
{
134-
input: {
142+
input: dtsUtilsClient.dtsInput({
135143
'locators/index': './src/client/tester/locators/index.ts',
136-
},
144+
}),
137145
output: {
138146
dir: 'dist',
147+
entryFileNames: '[name].d.ts',
139148
format: 'esm',
140149
},
141150
external,
142-
plugins: [
143-
dts({
144-
respectExternal: true,
145-
}),
146-
],
151+
plugins: dtsUtilsClient.dts(),
147152
},
148153
// {
149154
// input: './src/client/tester/jest-dom.ts',

packages/coverage-istanbul/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import commonjs from '@rollup/plugin-commonjs'
33
import json from '@rollup/plugin-json'
44
import nodeResolve from '@rollup/plugin-node-resolve'
55
import { join } from 'pathe'
6-
import dts from 'rollup-plugin-dts'
76
import esbuild from 'rollup-plugin-esbuild'
7+
import { createDtsUtils } from '../../scripts/build-utils.js'
88

99
const require = createRequire(import.meta.url)
1010
const pkg = require('./package.json')
@@ -21,7 +21,10 @@ const external = [
2121
/^@?vitest(\/|$)/,
2222
]
2323

24+
const dtsUtils = createDtsUtils()
25+
2426
const plugins = [
27+
...dtsUtils.isolatedDecl(),
2528
nodeResolve(),
2629
json(),
2730
commonjs(),
@@ -41,13 +44,13 @@ export default () => [
4144
plugins,
4245
},
4346
{
44-
input: entries,
47+
input: dtsUtils.dtsInput(entries),
4548
output: {
4649
dir: join(process.cwd(), 'dist'),
4750
entryFileNames: '[name].d.ts',
4851
format: 'esm',
4952
},
5053
external,
51-
plugins: [dts({ respectExternal: true })],
54+
plugins: dtsUtils.dts(),
5255
},
5356
]

packages/coverage-v8/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import commonjs from '@rollup/plugin-commonjs'
33
import json from '@rollup/plugin-json'
44
import nodeResolve from '@rollup/plugin-node-resolve'
55
import { join } from 'pathe'
6-
import dts from 'rollup-plugin-dts'
76
import esbuild from 'rollup-plugin-esbuild'
7+
import { createDtsUtils } from '../../scripts/build-utils.js'
88

99
const require = createRequire(import.meta.url)
1010
const pkg = require('./package.json')
@@ -23,7 +23,10 @@ const external = [
2323
/^@?vitest(\/|$)/,
2424
]
2525

26+
const dtsUtils = createDtsUtils()
27+
2628
const plugins = [
29+
...dtsUtils.isolatedDecl(),
2730
nodeResolve(),
2831
json(),
2932
commonjs(),
@@ -43,13 +46,13 @@ export default () => [
4346
plugins,
4447
},
4548
{
46-
input: entries,
49+
input: dtsUtils.dtsInput(entries),
4750
output: {
4851
dir: join(process.cwd(), 'dist'),
4952
entryFileNames: '[name].d.ts',
5053
format: 'esm',
5154
},
5255
external,
53-
plugins: [dts({ respectExternal: true })],
56+
plugins: dtsUtils.dts(),
5457
},
5558
]

packages/expect/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { builtinModules, createRequire } from 'node:module'
22
import { defineConfig } from 'rollup'
33
import copy from 'rollup-plugin-copy'
4-
import dts from 'rollup-plugin-dts'
54
import esbuild from 'rollup-plugin-esbuild'
5+
import { createDtsUtils } from '../../scripts/build-utils.js'
66

77
const require = createRequire(import.meta.url)
88
const pkg = require('./package.json')
@@ -14,7 +14,10 @@ const external = [
1414
/^@?vitest(\/|$)/,
1515
]
1616

17+
const dtsUtils = createDtsUtils()
18+
1719
const plugins = [
20+
...dtsUtils.isolatedDecl(),
1821
esbuild({
1922
target: 'node14',
2023
}),
@@ -43,14 +46,14 @@ export default defineConfig([
4346
onwarn,
4447
},
4548
{
46-
input: 'src/index.ts',
49+
input: dtsUtils.dtsInput('src/index.ts'),
4750
output: {
4851
dir: 'dist',
4952
entryFileNames: '[name].d.ts',
5053
format: 'esm',
5154
},
5255
external,
53-
plugins: [dts({ respectExternal: true })],
56+
plugins: dtsUtils.dts(),
5457
onwarn,
5558
},
5659
])

packages/mocker/rollup.config.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import commonjs from '@rollup/plugin-commonjs'
33
import json from '@rollup/plugin-json'
44
import resolve from '@rollup/plugin-node-resolve'
55
import { defineConfig } from 'rollup'
6-
import dts from 'rollup-plugin-dts'
76
import esbuild from 'rollup-plugin-esbuild'
7+
import { createDtsUtils } from '../../scripts/build-utils.js'
88

99
const require = createRequire(import.meta.url)
1010
const pkg = require('./package.json')
@@ -25,7 +25,11 @@ const external = [
2525
/^msw/,
2626
]
2727

28+
const dtsUtils = createDtsUtils()
29+
30+
/** @type {import('rollup').Plugin[]} */
2831
const plugins = [
32+
...dtsUtils.isolatedDecl(),
2933
resolve({
3034
preferBuiltins: true,
3135
}),
@@ -50,14 +54,14 @@ export default defineConfig([
5054
onwarn,
5155
},
5256
{
53-
input: entries,
57+
input: dtsUtils.dtsInput(entries),
5458
output: {
5559
dir: 'dist',
5660
entryFileNames: '[name].d.ts',
5761
format: 'esm',
5862
},
5963
external,
60-
plugins: [dts({ respectExternal: true })],
64+
plugins: dtsUtils.dts(),
6165
onwarn,
6266
},
6367
])

packages/pretty-format/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import commonjs from '@rollup/plugin-commonjs'
33
import json from '@rollup/plugin-json'
44
import resolve from '@rollup/plugin-node-resolve'
55
import { defineConfig } from 'rollup'
6-
import dts from 'rollup-plugin-dts'
76
import esbuild from 'rollup-plugin-esbuild'
7+
import { createDtsUtils } from '../../scripts/build-utils.js'
88

99
const require = createRequire(import.meta.url)
1010
const pkg = require('./package.json')
@@ -19,7 +19,10 @@ const external = [
1919
...Object.keys(pkg.peerDependencies || {}),
2020
]
2121

22+
const dtsUtils = createDtsUtils()
23+
2224
const plugins = [
25+
...dtsUtils.isolatedDecl(),
2326
resolve({
2427
preferBuiltins: true,
2528
}),
@@ -44,14 +47,14 @@ export default defineConfig([
4447
onwarn,
4548
},
4649
{
47-
input: entries,
50+
input: dtsUtils.dtsInput(entries),
4851
output: {
4952
dir: 'dist',
5053
entryFileNames: '[name].d.ts',
5154
format: 'esm',
5255
},
5356
external,
54-
plugins: [dts({ respectExternal: true })],
57+
plugins: dtsUtils.dts(),
5558
onwarn,
5659
},
5760
])

packages/runner/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { builtinModules, createRequire } from 'node:module'
22
import json from '@rollup/plugin-json'
33
import { defineConfig } from 'rollup'
4-
import dts from 'rollup-plugin-dts'
54
import esbuild from 'rollup-plugin-esbuild'
5+
import { createDtsUtils } from '../../scripts/build-utils.js'
66

77
const require = createRequire(import.meta.url)
88
const pkg = require('./package.json')
@@ -20,7 +20,10 @@ const entries = {
2020
types: 'src/types.ts',
2121
}
2222

23+
const dtsUtils = createDtsUtils()
24+
2325
const plugins = [
26+
...dtsUtils.isolatedDecl(),
2427
esbuild({
2528
target: 'node14',
2629
}),
@@ -41,14 +44,14 @@ export default defineConfig([
4144
onwarn,
4245
},
4346
{
44-
input: entries,
47+
input: dtsUtils.dtsInput(entries),
4548
output: {
4649
dir: 'dist',
4750
entryFileNames: '[name].d.ts',
4851
format: 'esm',
4952
},
5053
external,
51-
plugins: [dts({ respectExternal: true })],
54+
plugins: dtsUtils.dts(),
5255
onwarn,
5356
},
5457
])

packages/snapshot/rollup.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { builtinModules, createRequire } from 'node:module'
22
import commonjs from '@rollup/plugin-commonjs'
33
import nodeResolve from '@rollup/plugin-node-resolve'
44
import { defineConfig } from 'rollup'
5-
import dts from 'rollup-plugin-dts'
65
import esbuild from 'rollup-plugin-esbuild'
6+
import { createDtsUtils } from '../../scripts/build-utils.js'
77

88
const require = createRequire(import.meta.url)
99
const pkg = require('./package.json')
@@ -20,7 +20,10 @@ const entries = {
2020
manager: 'src/manager.ts',
2121
}
2222

23+
const dtsUtils = createDtsUtils()
24+
2325
const plugins = [
26+
...dtsUtils.isolatedDecl(),
2427
nodeResolve({
2528
preferBuiltins: true,
2629
}),
@@ -44,14 +47,14 @@ export default defineConfig([
4447
onwarn,
4548
},
4649
{
47-
input: entries,
50+
input: dtsUtils.dtsInput(entries),
4851
output: {
4952
dir: 'dist',
5053
entryFileNames: '[name].d.ts',
5154
format: 'esm',
5255
},
5356
external,
54-
plugins: [dts({ respectExternal: true })],
57+
plugins: dtsUtils.dts(),
5558
onwarn,
5659
},
5760
])

packages/snapshot/src/port/state.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77

88
import type { OptionsReceived as PrettyFormatOptions } from '@vitest/pretty-format'
9-
import type { ParsedStack } from '../../../utils/src/index'
9+
import type { ParsedStack } from '@vitest/utils'
1010
import type {
1111
SnapshotData,
1212
SnapshotEnvironment,

0 commit comments

Comments
 (0)