Skip to content

Commit 0b47312

Browse files
committedMar 19, 2025··
fix: pass all params for load & transform hooks
1 parent 93b2af2 commit 0b47312

File tree

5 files changed

+17
-21
lines changed

5 files changed

+17
-21
lines changed
 

‎src/rolldown/index.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@ export function getRolldownPlugin<UserOptions = Record<string, never>, Nested ex
1212
const rawPlugins = toArray(factory(userOptions!, meta))
1313

1414
const plugins = rawPlugins.map((rawPlugin) => {
15-
const plugin = toRollupPlugin(rawPlugin, false) as RolldownPlugin
16-
if (rawPlugin.rolldown)
17-
Object.assign(plugin, rawPlugin.rolldown)
18-
15+
const plugin = toRollupPlugin(rawPlugin, 'rolldown') as RolldownPlugin
1916
return plugin
2017
})
2118

‎src/rollup/index.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,34 @@ export function getRollupPlugin<UserOptions = Record<string, never>, Nested exte
99
framework: 'rollup',
1010
}
1111
const rawPlugins = toArray(factory(userOptions!, meta))
12-
const plugins = rawPlugins.map(plugin => toRollupPlugin(plugin))
12+
const plugins = rawPlugins.map(plugin => toRollupPlugin(plugin, 'rollup'))
1313
return plugins.length === 1 ? plugins[0] : plugins
1414
}) as UnpluginInstance<UserOptions, Nested>['rollup']
1515
}
1616

17-
export function toRollupPlugin(plugin: UnpluginOptions, containRollupOptions = true): RollupPlugin {
17+
export function toRollupPlugin(plugin: UnpluginOptions, key: 'rollup' | 'rolldown' | 'vite' | 'unloader'): RollupPlugin {
1818
if (plugin.transform && plugin.transformInclude) {
1919
const _transform = plugin.transform
20-
plugin.transform = function (code, id) {
20+
plugin.transform = function (code, id, ...args) {
2121
if (plugin.transformInclude && !plugin.transformInclude(id))
2222
return null
2323

24-
return _transform.call(this, code, id)
24+
return _transform.call(this, code, id, ...args)
2525
}
2626
}
2727

2828
if (plugin.load && plugin.loadInclude) {
2929
const _load = plugin.load
30-
plugin.load = function (id) {
30+
plugin.load = function (id, ...args) {
3131
if (plugin.loadInclude && !plugin.loadInclude(id))
3232
return null
3333

34-
return _load.call(this, id)
34+
return _load.call(this, id, ...args)
3535
}
3636
}
3737

38-
if (plugin.rollup && containRollupOptions)
39-
Object.assign(plugin, plugin.rollup)
38+
if (plugin[key])
39+
Object.assign(plugin, plugin[key])
4040

4141
return plugin as RollupPlugin
4242
}

‎src/unloader/index.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@ export function getUnloaderPlugin<UserOptions = Record<string, never>, Nested ex
1212
const rawPlugins = toArray(factory(userOptions!, meta))
1313

1414
const plugins = rawPlugins.map((rawPlugin) => {
15-
const plugin = toRollupPlugin(rawPlugin, false) as UnloaderPlugin
16-
if (rawPlugin.unloader)
17-
Object.assign(plugin, rawPlugin.unloader)
18-
15+
const plugin = toRollupPlugin(rawPlugin, 'unloader') as UnloaderPlugin
1916
return plugin
2017
})
2118

‎src/vite/index.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@ export function getVitePlugin<UserOptions = Record<string, never>, Nested extend
1212
const rawPlugins = toArray(factory(userOptions!, meta))
1313

1414
const plugins = rawPlugins.map((rawPlugin) => {
15-
const plugin = toRollupPlugin(rawPlugin, false) as VitePlugin
16-
if (rawPlugin.vite)
17-
Object.assign(plugin, rawPlugin.vite)
18-
15+
const plugin = toRollupPlugin(rawPlugin, 'vite') as VitePlugin
1916
return plugin
2017
})
2118

‎test/unit-tests/id-consistency/id-consistency.test.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ function checkHookCalls(
5454
const ids = transformIncludeCallback.mock.calls.map(call => call[0])
5555
ids.forEach((id) => {
5656
expect(path.isAbsolute(id)).toBe(true)
57-
expect(transformCallback).toHaveBeenCalledWith(expect.anything(), id)
57+
if (name === 'vite') {
58+
expect(transformCallback).toHaveBeenCalledWith(expect.anything(), id, expect.anything())
59+
}
60+
else {
61+
expect(transformCallback).toHaveBeenCalledWith(expect.anything(), id)
62+
}
5863
const isVite = expect.getState().currentTestName?.includes('vite')
5964
expect(loadCallback).toHaveBeenCalledWith(
6065
id,

0 commit comments

Comments
 (0)
Please sign in to comment.