Skip to content

Commit f2292e1

Browse files
committed
build: Setup tsdown
1 parent 385eb61 commit f2292e1

File tree

10 files changed

+808
-354
lines changed

10 files changed

+808
-354
lines changed

package-lock.json

Lines changed: 740 additions & 226 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,39 @@
2525
"rollup-plugin",
2626
"bundle-stats"
2727
],
28-
"main": "./dist/cjs/index.js",
29-
"module": "./dist/esm/index.js",
30-
"typings": "./dist/types/index.d.ts",
28+
"main": "./dist/index.cjs",
29+
"module": "./dist/index.mjs",
30+
"typings": "./dist/index.d.cts",
3131
"files": [
3232
"dist"
3333
],
3434
"exports": {
3535
".": {
36-
"types": "./dist/types/index.d.ts",
37-
"import": "./dist/esm/index.js",
38-
"require": "./dist/cjs/index.js"
36+
"import": {
37+
"types": "./dist/index.d.mts",
38+
"default": "./dist/index.mjs"
39+
},
40+
"require": {
41+
"types": "./dist/index.d.cts",
42+
"default": "./dist/index.cjs"
43+
}
3944
},
4045
"./extract": {
41-
"types": "./dist/types/extract.d.ts",
42-
"import": "./dist/esm/extract.js",
43-
"require": "./dist/cjs/extract.js"
46+
"import": {
47+
"types": "./dist/extract.d.mts",
48+
"default": "./dist/extract.mjs"
49+
},
50+
"require": {
51+
"types": "./dist/extract.d.cts",
52+
"default": "./dist/extract.cjs"
53+
}
4454
}
4555
},
4656
"engines": {
4757
"node": ">=18"
4858
},
4959
"scripts": {
50-
"build": "npm run clean && npm run type-check && rollup -c && npm run build-esm-packages",
51-
"build-esm-packages": "echo '{\"type\":\"module\"}' > dist/esm/package.json",
60+
"build": "npm run clean && npm run type-check && tsdown",
5261
"clean": "rimraf ./dist",
5362
"type-check": "tsc",
5463
"lint": "eslint",
@@ -65,10 +74,6 @@
6574
"devDependencies": {
6675
"@eslint/js": "9.39.2",
6776
"@release-it/conventional-changelog": "10.0.5",
68-
"@rollup/plugin-commonjs": "^28.0.6",
69-
"@rollup/plugin-node-resolve": "^16.0.1",
70-
"@rollup/plugin-typescript": "12.3.0",
71-
"@tsconfig/node18": "18.2.6",
7277
"@types/deep-freeze-strict": "1.1.2",
7378
"@types/node": "25.2.1",
7479
"deep-freeze-strict": "1.1.1",
@@ -82,6 +87,7 @@
8287
"release-it": "19.2.4",
8388
"rimraf": "6.0.1",
8489
"rollup": "4.57.1",
90+
"tsdown": "0.20.3",
8591
"typescript": "5.9.3",
8692
"typescript-eslint": "8.54.0",
8793
"vite": "7.3.1",

rollup.config.mjs

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import type {
22
Plugin as RollupPlugin,
33
OutputOptions as RollupOutputOptions,
4+
OutputBundle as RollupOutputBundle,
45
} from 'rollup';
56
import type { Plugin as VitePlugin } from 'vite';
67

78
export type Plugin = VitePlugin & RollupPlugin;
89
export type OutputOptions = RollupOutputOptions;
10+
export type OutputBundle = RollupOutputBundle;

test/unit/extract.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { describe, test, expect } from 'vitest';
22
import deepFreeze from 'deep-freeze-strict';
33

44
import extract from '../../src/extract';
5+
import type { OutputBundle } from '../../src/types';
56
import * as rollupStats from './fixtures/rollup-stats';
6-
import type { OutputBundle } from 'rollup';
77

88
const fixtures = rollupStats.stats as unknown as OutputBundle;
99

tsconfig.base.json

Lines changed: 0 additions & 31 deletions
This file was deleted.

tsconfig.cjs.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

tsconfig.esm.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

tsconfig.json

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
11
{
2-
"extends": "./tsconfig.base.json"
2+
"compilerOptions": {
3+
/* dirs */
4+
"rootDir": "./src",
5+
"outDir": "./dist",
6+
"declarationDir": "./dist/types",
7+
"types": ["node"],
8+
/* target config for node 18 */
9+
"target": "es2022",
10+
"lib": ["es2022", "es2022.error"],
11+
"moduleResolution": "node",
12+
"resolveJsonModule": true,
13+
"esModuleInterop": true,
14+
/* behaviour options */
15+
"strict": true,
16+
"allowJs": true,
17+
"allowSyntheticDefaultImports": true,
18+
"noFallthroughCasesInSwitch": true,
19+
"declaration": true,
20+
"sourceMap": true,
21+
"noImplicitReturns": true,
22+
"noImplicitOverride": true,
23+
"noUnusedLocals": true,
24+
"noUnusedParameters": true,
25+
"skipLibCheck": true,
26+
"forceConsistentCasingInFileNames": true,
27+
"noEmit": true,
28+
"declarationMap": true
29+
},
30+
"include": ["src"],
31+
"exclude": ["node_modules", "dist"]
332
}

tsdown.config.mjs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { defineConfig } from 'tsdown';
2+
3+
export default defineConfig({
4+
entry: {
5+
index: './src/index.ts',
6+
extract: './src/extract.ts',
7+
},
8+
format: ['esm', 'cjs'],
9+
dts: true,
10+
unbundle: true,
11+
hash: false,
12+
minify: false,
13+
sourcemap: true,
14+
});

0 commit comments

Comments
 (0)