Skip to content

Commit 54c861e

Browse files
authored
feat: basic implementation of dts generation (#42)
1 parent f8965f1 commit 54c861e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1183
-53
lines changed

e2e/cases/alias/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { expect, test } from 'vitest';
2-
import { buildAndGetJsResults } from '#shared';
2+
import { buildAndGetResults } from '#shared';
33

44
test('source.alias', async () => {
55
const fixturePath = __dirname;
6-
const { entries } = await buildAndGetJsResults(fixturePath);
6+
const { entries } = await buildAndGetResults(fixturePath);
77

88
expect(entries.esm).toContain('hello world');
99
expect(entries.cjs).toContain('hello world');
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { extname, join } from 'node:path';
22
import { expect, test } from 'vitest';
3-
import { buildAndGetJsResults } from '#shared';
3+
import { buildAndGetResults } from '#shared';
44

55
test('autoExtension generate .mjs in build artifacts with esm format when type is commonjs', async () => {
66
const fixturePath = join(__dirname, 'type-commonjs');
7-
const { entryFiles } = await buildAndGetJsResults(fixturePath);
7+
const { entryFiles } = await buildAndGetResults(fixturePath);
88
expect(extname(entryFiles.esm!)).toEqual('.mjs');
99
expect(extname(entryFiles.cjs!)).toEqual('.js');
1010
});
1111

1212
test('autoExtension generate .cjs in build artifacts with cjs format when type is module', async () => {
1313
const fixturePath = join(__dirname, 'type-module');
14-
const { entryFiles } = await buildAndGetJsResults(fixturePath);
14+
const { entryFiles } = await buildAndGetResults(fixturePath);
1515
expect(extname(entryFiles.esm!)).toEqual('.js');
1616
expect(extname(entryFiles.cjs!)).toEqual('.cjs');
1717
});

e2e/cases/bundle-false/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { join } from 'node:path';
22
import { expect, test } from 'vitest';
3-
import { buildAndGetJsResults } from '#shared';
3+
import { buildAndGetResults } from '#shared';
44

55
test('bundle: false', async () => {
66
const fixturePath = join(__dirname, 'basic');
7-
const { files } = await buildAndGetJsResults(fixturePath);
7+
const { files } = await buildAndGetResults(fixturePath);
88

99
// TODO: record file paths with inline snapshot
1010
// need to add path serialization

e2e/cases/define/index.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { expect, test } from 'vitest';
2-
import { buildAndGetJsResults } from '#shared';
2+
import { buildAndGetResults } from '#shared';
33

44
test('source.define', async () => {
55
const fixturePath = __dirname;
6-
const { entries } = await buildAndGetJsResults(fixturePath);
6+
const { entries } = await buildAndGetResults(fixturePath);
77

88
expect(entries.esm).not.toContain('console.info(VERSION)');
99
expect(entries.esm).toContain('1.0.0');
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`dts when bundle: false 1`] = `
4+
{
5+
"./dist/esm/index.d.ts": "export * from './utils/numbers';
6+
export * from './utils/strings';
7+
export * from './sum';
8+
",
9+
"./dist/esm/sum.d.ts": "export declare const numSum: number;
10+
export declare const strSum: string;
11+
",
12+
"./dist/esm/utils/numbers.d.ts": "export declare const num1 = 1;
13+
export declare const num2 = 2;
14+
export declare const num3 = 3;
15+
",
16+
"./dist/esm/utils/strings.d.ts": "export declare const str1 = "str1";
17+
export declare const str2 = "str2";
18+
export declare const str3 = "str3";
19+
",
20+
}
21+
`;
22+
23+
exports[`dts when bundle: true 1`] = `
24+
{
25+
"esm": "export declare const num1 = 1;
26+
27+
export declare const num2 = 2;
28+
29+
export declare const num3 = 3;
30+
31+
export declare const numSum: number;
32+
33+
export declare const str1 = "str1";
34+
35+
export declare const str2 = "str2";
36+
37+
export declare const str3 = "str3";
38+
39+
export declare const strSum: string;
40+
41+
export { }
42+
",
43+
}
44+
`;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { defineConfig } from '@rslib/core';
2+
import { generateBundleCjsConfig, generateBundleEsmConfig } from '#shared';
3+
4+
export default defineConfig({
5+
lib: [
6+
generateBundleEsmConfig(__dirname, {
7+
bundle: false,
8+
dts: {
9+
bundle: false,
10+
},
11+
}),
12+
generateBundleCjsConfig(__dirname, {
13+
bundle: false,
14+
}),
15+
],
16+
source: {
17+
entry: {
18+
main: ['./src/**'],
19+
},
20+
},
21+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export * from './utils/numbers';
2+
export * from './utils/strings';
3+
export * from './sum';
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { num1, num2, num3 } from './utils/numbers';
2+
import { str1, str2, str3 } from './utils/strings';
3+
4+
export const numSum = num1 + num2 + num3;
5+
export const strSum = str1 + str2 + str3;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const num1 = 1;
2+
export const num2 = 2;
3+
export const num3 = 3;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const str1 = 'str1';
2+
export const str2 = 'str2';
3+
export const str3 = 'str3';

0 commit comments

Comments
 (0)