From b9c394707e74908364284630f1a8c905abadc7f4 Mon Sep 17 00:00:00 2001 From: qmhc <544022268@qq.com> Date: Wed, 24 Jul 2024 22:37:10 +0800 Subject: [PATCH] fix: ignore namespace from declaration collect fix #352 --- examples/ts/src/index.ts | 3 +++ examples/ts/src/modules.ts | 5 +++++ examples/ts/src/namespace.ts | 10 ++++++++++ examples/ts/vite.config.ts | 4 +--- src/plugin.ts | 2 +- src/transform.ts | 2 ++ 6 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 examples/ts/src/modules.ts create mode 100644 examples/ts/src/namespace.ts diff --git a/examples/ts/src/index.ts b/examples/ts/src/index.ts index f2cb3b6..98dfba6 100644 --- a/examples/ts/src/index.ts +++ b/examples/ts/src/index.ts @@ -19,3 +19,6 @@ export default data export type { User as MyUser } from './types' export type { AliasType } from '@alias/type' + +export type * from './namespace' +export type * from './modules' diff --git a/examples/ts/src/modules.ts b/examples/ts/src/modules.ts new file mode 100644 index 0000000..ddc923e --- /dev/null +++ b/examples/ts/src/modules.ts @@ -0,0 +1,5 @@ +declare module 'tslib' { + export type Test = { newField: string } +} + +export {} diff --git a/examples/ts/src/namespace.ts b/examples/ts/src/namespace.ts new file mode 100644 index 0000000..61d186e --- /dev/null +++ b/examples/ts/src/namespace.ts @@ -0,0 +1,10 @@ +// eslint-disable-next-line @typescript-eslint/no-namespace +export namespace NameSpace { + export const namespace = 'namespace' + export const enum NamespaceEnum { + A, + B, + C, + D + } +} diff --git a/examples/ts/vite.config.ts b/examples/ts/vite.config.ts index 903f8e5..0121229 100644 --- a/examples/ts/vite.config.ts +++ b/examples/ts/vite.config.ts @@ -6,8 +6,6 @@ import dts from '../../src' emptyDir(resolve(__dirname, 'dist')) emptyDir(resolve(__dirname, 'types')) -console.log('a') - export default defineConfig({ resolve: { alias: { @@ -29,7 +27,7 @@ export default defineConfig({ // aliasesExclude: [/^@components/], staticImport: true, // insertTypesEntry: true, - // rollupTypes: true, + rollupTypes: true, declarationOnly: true }) ] diff --git a/src/plugin.ts b/src/plugin.ts index 8ddd5d7..228b914 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -741,7 +741,7 @@ export function dtsPlugin(options: PluginOptions = {}): import('vite').Plugin { await runParallel(cpus().length, [...rollupFiles], async filePath => { await writeOutput( filePath, - (await readFile(filePath, 'utf-8')) + (declared ? `\n${declared}\n` : ''), + (await readFile(filePath, 'utf-8')) + (declared ? `\n${declared}` : ''), dirname(filePath) ) }) diff --git a/src/transform.ts b/src/transform.ts index e5e29b3..72a9c91 100644 --- a/src/transform.ts +++ b/src/transform.ts @@ -213,6 +213,8 @@ export function transformCode(options: { if (ts.isModuleDeclaration(node)) { if ( + node.modifiers?.[0] && + node.modifiers[0].kind === ts.SyntaxKind.DeclareKeyword && node.body && ts.isModuleBlock(node.body) && !node.body.statements.some(