From ed984971b46acd63ed04e2a38935d6809c50ff8a Mon Sep 17 00:00:00 2001 From: ocavue Date: Sun, 19 Nov 2023 23:34:32 +0800 Subject: [PATCH 1/5] test: add test --- test/index.test.ts | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/test/index.test.ts b/test/index.test.ts index 5f84bde3..be9c2d75 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -1633,3 +1633,67 @@ test('should emit declaration files with experimentalDts', async () => { ) expect(snapshots.sort().join('\n')).toMatchSnapshot() }) + +test('should only include exported declarations with experimentalDts', async () => { + const files = { + 'package.json': ` + { + "name": "tsup-playground", + "private": true, + "version": "0.0.0", + "exports": { + "./entry1": { + "types": "./dist/entry1.d.ts", + "default": "./dist/entry1.js" + }, + "./entry2": { + "types": "./dist/entry2.d.ts", + "default": "./dist/entry2.js" + } + } + } + `, + 'tsconfig.json': ` + { + "compilerOptions": { + "target": "ES2020", + "skipLibCheck": true, + "noEmit": true + }, + "include": ["./src"] + } + `, + 'tsup.config.ts': ` + export default { + name: 'tsup', + entry: { + 'entry1': './src/entry1.ts', + 'entry2': './src/entry2.ts', + }, + } + `, + 'src/shared.ts': ` + export const declare1 = 'declare1' + export const declare2 = 'declare2' + `, + 'src/entry1.ts': ` + export { declare1 } from './shared' + `, + 'src/entry2.ts': ` + export { declare2 } from './shared' + `, + } + const { getFileContent } = await run(getTestName(), files, { + entry: [], + flags: ['--experimental-dts'], + }) + + let entry1dts = await getFileContent('dist/entry1.d.ts') + let entry2dts = await getFileContent('dist/entry2.d.ts') + + expect(entry1dts).toContain('declare1') + expect(entry1dts).not.toContain('declare2') + + expect(entry2dts).toContain('declare2') + expect(entry2dts).not.toContain('declare1') +}) From 3eb4974ae87be7a6fc5d8d4cd2553f50a842144d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 19 Nov 2023 15:56:57 +0000 Subject: [PATCH 2/5] chore(ci): [bot] format code --- test/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/index.test.ts b/test/index.test.ts index be9c2d75..340e68c7 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -1683,7 +1683,7 @@ test('should only include exported declarations with experimentalDts', async () export { declare2 } from './shared' `, } - const { getFileContent } = await run(getTestName(), files, { + const { getFileContent } = await run(getTestName(), files, { entry: [], flags: ['--experimental-dts'], }) From 89bfb9964be9336bbcd820a5e3f855c96eb67442 Mon Sep 17 00:00:00 2001 From: ocavue Date: Sun, 19 Nov 2023 23:57:39 +0800 Subject: [PATCH 3/5] fix(experimental-dts): only include exported declarations --- src/api-extractor.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/api-extractor.ts b/src/api-extractor.ts index d1121d0f..ea2a5a6c 100644 --- a/src/api-extractor.ts +++ b/src/api-extractor.ts @@ -123,9 +123,14 @@ async function rollupDtsFiles( sourceFileName = toAbsolutePath(sourceFileName) const outFileName = path.join(outDir, out + dtsExtension) + // Find all declarations that are exported from the current source file + const currentExports = exports.filter( + (declaration) => declaration.sourceFileName === sourceFileName + ) + writeFileSync( outFileName, - formatDistributionExports(exports, outFileName, dtsOutputFilePath) + formatDistributionExports(currentExports, outFileName, dtsOutputFilePath) ) } } From 64953a5d6081e0491579aa5c3158469b1a56cefb Mon Sep 17 00:00:00 2001 From: ocavue Date: Mon, 20 Nov 2023 00:03:38 +0800 Subject: [PATCH 4/5] Update test snapshot --- test/__snapshots__/index.test.ts.snap | 78 +++++---------------------- 1 file changed, 14 insertions(+), 64 deletions(-) diff --git a/test/__snapshots__/index.test.ts.snap b/test/__snapshots__/index.test.ts.snap index b3dd2ab5..80c49058 100644 --- a/test/__snapshots__/index.test.ts.snap +++ b/test/__snapshots__/index.test.ts.snap @@ -340,44 +340,22 @@ export { } // dist/index.d.mts ////////////////////////////////////////////////////////////////////// -export { render } from './_tsup-dts-rollup'; -export { ClientRenderOptions } from './_tsup-dts-rollup'; -export { sharedFunction } from './_tsup-dts-rollup'; -export { sharedType } from './_tsup-dts-rollup'; export { VERSION } from './_tsup-dts-rollup'; -export { default_alias as default } from './_tsup-dts-rollup'; -export { ServerRenderOptions } from './_tsup-dts-rollup'; -export { serverConstant } from './_tsup-dts-rollup'; -export { serverConstantAlias } from './_tsup-dts-rollup'; -export { ServerClass } from './_tsup-dts-rollup'; -export { ServerThirdPartyNamespace } from './_tsup-dts-rollup'; -export { renderToString } from './_tsup-dts-rollup'; -export { renderToNodeStream } from './_tsup-dts-rollup'; -export { renderToStaticMarkup } from './_tsup-dts-rollup'; -export { renderToStaticNodeStream } from './_tsup-dts-rollup'; -export { version } from './_tsup-dts-rollup'; +export { render_alias_1 as render } from './_tsup-dts-rollup'; +export { ClientRenderOptions_alias_1 as ClientRenderOptions } from './_tsup-dts-rollup'; +export { sharedFunction_alias_1 as sharedFunction } from './_tsup-dts-rollup'; +export { sharedType_alias_1 as sharedType } from './_tsup-dts-rollup'; ////////////////////////////////////////////////////////////////////// // dist/index.d.ts ////////////////////////////////////////////////////////////////////// -export { render } from './_tsup-dts-rollup'; -export { ClientRenderOptions } from './_tsup-dts-rollup'; -export { sharedFunction } from './_tsup-dts-rollup'; -export { sharedType } from './_tsup-dts-rollup'; export { VERSION } from './_tsup-dts-rollup'; -export { default_alias as default } from './_tsup-dts-rollup'; -export { ServerRenderOptions } from './_tsup-dts-rollup'; -export { serverConstant } from './_tsup-dts-rollup'; -export { serverConstantAlias } from './_tsup-dts-rollup'; -export { ServerClass } from './_tsup-dts-rollup'; -export { ServerThirdPartyNamespace } from './_tsup-dts-rollup'; -export { renderToString } from './_tsup-dts-rollup'; -export { renderToNodeStream } from './_tsup-dts-rollup'; -export { renderToStaticMarkup } from './_tsup-dts-rollup'; -export { renderToStaticNodeStream } from './_tsup-dts-rollup'; -export { version } from './_tsup-dts-rollup'; +export { render_alias_1 as render } from './_tsup-dts-rollup'; +export { ClientRenderOptions_alias_1 as ClientRenderOptions } from './_tsup-dts-rollup'; +export { sharedFunction_alias_1 as sharedFunction } from './_tsup-dts-rollup'; +export { sharedType_alias_1 as sharedType } from './_tsup-dts-rollup'; ////////////////////////////////////////////////////////////////////// @@ -388,18 +366,6 @@ export { render } from './_tsup-dts-rollup'; export { ClientRenderOptions } from './_tsup-dts-rollup'; export { sharedFunction } from './_tsup-dts-rollup'; export { sharedType } from './_tsup-dts-rollup'; -export { VERSION } from './_tsup-dts-rollup'; -export { default_alias as default } from './_tsup-dts-rollup'; -export { ServerRenderOptions } from './_tsup-dts-rollup'; -export { serverConstant } from './_tsup-dts-rollup'; -export { serverConstantAlias } from './_tsup-dts-rollup'; -export { ServerClass } from './_tsup-dts-rollup'; -export { ServerThirdPartyNamespace } from './_tsup-dts-rollup'; -export { renderToString } from './_tsup-dts-rollup'; -export { renderToNodeStream } from './_tsup-dts-rollup'; -export { renderToStaticMarkup } from './_tsup-dts-rollup'; -export { renderToStaticNodeStream } from './_tsup-dts-rollup'; -export { version } from './_tsup-dts-rollup'; ////////////////////////////////////////////////////////////////////// @@ -410,35 +376,21 @@ export { render } from './_tsup-dts-rollup'; export { ClientRenderOptions } from './_tsup-dts-rollup'; export { sharedFunction } from './_tsup-dts-rollup'; export { sharedType } from './_tsup-dts-rollup'; -export { VERSION } from './_tsup-dts-rollup'; -export { default_alias as default } from './_tsup-dts-rollup'; -export { ServerRenderOptions } from './_tsup-dts-rollup'; -export { serverConstant } from './_tsup-dts-rollup'; -export { serverConstantAlias } from './_tsup-dts-rollup'; -export { ServerClass } from './_tsup-dts-rollup'; -export { ServerThirdPartyNamespace } from './_tsup-dts-rollup'; -export { renderToString } from './_tsup-dts-rollup'; -export { renderToNodeStream } from './_tsup-dts-rollup'; -export { renderToStaticMarkup } from './_tsup-dts-rollup'; -export { renderToStaticNodeStream } from './_tsup-dts-rollup'; -export { version } from './_tsup-dts-rollup'; ////////////////////////////////////////////////////////////////////// // dist/server/index.d.mts ////////////////////////////////////////////////////////////////////// -export { render } from '../_tsup-dts-rollup'; -export { ClientRenderOptions } from '../_tsup-dts-rollup'; -export { sharedFunction } from '../_tsup-dts-rollup'; -export { sharedType } from '../_tsup-dts-rollup'; -export { VERSION } from '../_tsup-dts-rollup'; +export { render_alias_2 as render } from '../_tsup-dts-rollup'; export { default_alias as default } from '../_tsup-dts-rollup'; export { ServerRenderOptions } from '../_tsup-dts-rollup'; export { serverConstant } from '../_tsup-dts-rollup'; export { serverConstantAlias } from '../_tsup-dts-rollup'; export { ServerClass } from '../_tsup-dts-rollup'; export { ServerThirdPartyNamespace } from '../_tsup-dts-rollup'; +export { sharedFunction_alias_2 as sharedFunction } from '../_tsup-dts-rollup'; +export { sharedType_alias_2 as sharedType } from '../_tsup-dts-rollup'; export { renderToString } from '../_tsup-dts-rollup'; export { renderToNodeStream } from '../_tsup-dts-rollup'; export { renderToStaticMarkup } from '../_tsup-dts-rollup'; @@ -450,17 +402,15 @@ export { version } from '../_tsup-dts-rollup'; // dist/server/index.d.ts ////////////////////////////////////////////////////////////////////// -export { render } from '../_tsup-dts-rollup'; -export { ClientRenderOptions } from '../_tsup-dts-rollup'; -export { sharedFunction } from '../_tsup-dts-rollup'; -export { sharedType } from '../_tsup-dts-rollup'; -export { VERSION } from '../_tsup-dts-rollup'; +export { render_alias_2 as render } from '../_tsup-dts-rollup'; export { default_alias as default } from '../_tsup-dts-rollup'; export { ServerRenderOptions } from '../_tsup-dts-rollup'; export { serverConstant } from '../_tsup-dts-rollup'; export { serverConstantAlias } from '../_tsup-dts-rollup'; export { ServerClass } from '../_tsup-dts-rollup'; export { ServerThirdPartyNamespace } from '../_tsup-dts-rollup'; +export { sharedFunction_alias_2 as sharedFunction } from '../_tsup-dts-rollup'; +export { sharedType_alias_2 as sharedType } from '../_tsup-dts-rollup'; export { renderToString } from '../_tsup-dts-rollup'; export { renderToNodeStream } from '../_tsup-dts-rollup'; export { renderToStaticMarkup } from '../_tsup-dts-rollup'; From 553d9ff1db6f10bbe01edf44bac85cc60eb91049 Mon Sep 17 00:00:00 2001 From: ocavue Date: Mon, 20 Nov 2023 00:09:38 +0800 Subject: [PATCH 5/5] test: simplify config files --- test/index.test.ts | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/test/index.test.ts b/test/index.test.ts index 340e68c7..c22bb2f0 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -1636,40 +1636,11 @@ test('should emit declaration files with experimentalDts', async () => { test('should only include exported declarations with experimentalDts', async () => { const files = { - 'package.json': ` - { - "name": "tsup-playground", - "private": true, - "version": "0.0.0", - "exports": { - "./entry1": { - "types": "./dist/entry1.d.ts", - "default": "./dist/entry1.js" - }, - "./entry2": { - "types": "./dist/entry2.d.ts", - "default": "./dist/entry2.js" - } - } - } - `, - 'tsconfig.json': ` - { - "compilerOptions": { - "target": "ES2020", - "skipLibCheck": true, - "noEmit": true - }, - "include": ["./src"] - } - `, + 'package.json': `{ "name": "tsup-playground", "private": true }`, + 'tsconfig.json': `{ "compilerOptions": { "skipLibCheck": true } }`, 'tsup.config.ts': ` export default { - name: 'tsup', - entry: { - 'entry1': './src/entry1.ts', - 'entry2': './src/entry2.ts', - }, + entry: ['./src/entry1.ts', './src/entry2.ts'] } `, 'src/shared.ts': `