Skip to content

Commit 739db62

Browse files
committed
fix(unplugin-dts): forward aliasesExclude to Runtime
The aliasesExclude option was read in plugin.ts but never passed to Runtime.toInstance(), so Runtime.aliasesExclude defaulted to []. Consequently, transformCode ignored the exclusion list and transformed all aliases, including those the user intended to keep as package imports (e.g. monorepo cross-package names). fix #472
1 parent e0eda08 commit 739db62

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

packages/unplugin-dts/src/plugin.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ export const pluginFactory: UnpluginFactory<PluginOptions | undefined, false> =
286286
resolvers,
287287
entries,
288288
aliases: options.aliases ?? aliases,
289+
aliasesExclude,
289290
libName,
290291
indexName,
291292
logger,

packages/unplugin-dts/tests/runtime.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,30 @@ describe('runtime tests', () => {
9898
expect(ts6307).toHaveLength(0)
9999
})
100100

101+
it('should forward aliasesExclude to Runtime', async () => {
102+
tempDir = mkdtempSync(resolve(tmpdir(), 'unplugin-dts-'))
103+
104+
writeFileSync(
105+
resolve(tempDir, 'tsconfig.json'),
106+
JSON.stringify({
107+
compilerOptions: {},
108+
include: ['src/**/*'],
109+
}),
110+
)
111+
112+
mkdirSync(resolve(tempDir, 'src'), { recursive: true })
113+
writeFileSync(resolve(tempDir, 'src', 'index.ts'), 'export const foo = 1\n')
114+
115+
const aliasesExclude = [/^@gafe\//]
116+
const runtime = await Runtime.toInstance({
117+
root: tempDir,
118+
tsconfigPath: 'tsconfig.json',
119+
aliasesExclude,
120+
})
121+
122+
expect((runtime as any).aliasesExclude).toEqual(aliasesExclude)
123+
})
124+
101125
it('should use baseUrl when explicitly set', async () => {
102126
tempDir = mkdtempSync(resolve(tmpdir(), 'unplugin-dts-'))
103127

0 commit comments

Comments
 (0)