Skip to content

Commit f5885eb

Browse files
committed
build(sdk/js): switch to tsup for dual CJS+ESM publish, drop sourcemaps
replace the two tsc invocations (node + browser) with a single tsup build that emits both formats from one entry list. - format: cjs (.js) and esm (.mjs); types as .d.ts and .d.mts - splitting/sourcemap off; treeshake on - exports use explicit \"types\"/\"import\"/\"require\" conditions per subpath so TypeScript picks .d.mts for ESM consumers and .d.ts for CommonJS, and runtime picks .mjs vs .js accordingly - drop tsconfig.node.json and tsconfig.browser.json — tsup carries its own config, the root tsconfig.json is still used for typecheck - drop .js.map / .d.ts.map outputs; the previous maps pointed at src/*.ts paths that the package did not ship, so they were dead weight published package shape vs current 0.5.8-beta.1 on npm: files : 60 → 27 unpacked: 230 KB → 107 KB (-54%) tarball : 57 KB → 23 KB (-60%) now also ships ESM (.mjs) — bundlers get tree-shaking, modern Node can \`import\` natively; legacy \`require()\` still works through the .js files.
1 parent 721ca95 commit f5885eb

2 files changed

Lines changed: 59 additions & 58 deletions

File tree

sdk/js/package.json

Lines changed: 40 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,74 +2,57 @@
22
"name": "@phala/dstack-sdk",
33
"version": "0.5.8-beta.1",
44
"description": "dstack SDK",
5-
"main": "dist/node/index.js",
6-
"types": "dist/node/index.d.ts",
5+
"main": "./dist/index.js",
6+
"module": "./dist/index.mjs",
7+
"types": "./dist/index.d.ts",
78
"exports": {
89
".": {
9-
"import": "./dist/node/index.js",
10-
"require": "./dist/node/index.js",
11-
"types": "./dist/node/index.d.ts"
10+
"types": {
11+
"import": "./dist/index.d.mts",
12+
"require": "./dist/index.d.ts"
13+
},
14+
"import": "./dist/index.mjs",
15+
"require": "./dist/index.js"
1216
},
1317
"./viem": {
14-
"import": "./dist/node/viem.js",
15-
"require": "./dist/node/viem.js",
16-
"types": "./dist/node/viem.d.ts"
17-
},
18-
"./encrypt-env-vars": {
19-
"node": {
20-
"import": "./dist/node/encrypt-env-vars.js",
21-
"require": "./dist/node/encrypt-env-vars.js",
22-
"types": "./dist/node/encrypt-env-vars.d.ts"
18+
"types": {
19+
"import": "./dist/viem.d.mts",
20+
"require": "./dist/viem.d.ts"
2321
},
24-
"browser": {
25-
"import": "./dist/browser/encrypt-env-vars.browser.js",
26-
"require": "./dist/browser/encrypt-env-vars.browser.js",
27-
"types": "./dist/browser/encrypt-env-vars.browser.d.ts"
28-
},
29-
"default": {
30-
"import": "./dist/browser/encrypt-env-vars.browser.js",
31-
"require": "./dist/browser/encrypt-env-vars.browser.js",
32-
"types": "./dist/browser/encrypt-env-vars.browser.d.ts"
33-
}
22+
"import": "./dist/viem.mjs",
23+
"require": "./dist/viem.js"
3424
},
3525
"./solana": {
36-
"import": "./dist/node/solana.js",
37-
"require": "./dist/node/solana.js",
38-
"types": "./dist/node/solana.d.ts"
26+
"types": {
27+
"import": "./dist/solana.d.mts",
28+
"require": "./dist/solana.d.ts"
29+
},
30+
"import": "./dist/solana.mjs",
31+
"require": "./dist/solana.js"
3932
},
40-
"./get-compose-hash": {
41-
"node": {
42-
"import": "./dist/node/get-compose-hash.js",
43-
"require": "./dist/node/get-compose-hash.js",
44-
"types": "./dist/node/get-compose-hash.d.ts"
33+
"./encrypt-env-vars": {
34+
"types": {
35+
"import": "./dist/encrypt-env-vars.d.mts",
36+
"require": "./dist/encrypt-env-vars.d.ts"
4537
},
46-
"browser": {
47-
"import": "./dist/browser/get-compose-hash.browser.js",
48-
"require": "./dist/browser/get-compose-hash.browser.js",
49-
"types": "./dist/browser/get-compose-hash.browser.d.ts"
38+
"import": "./dist/encrypt-env-vars.mjs",
39+
"require": "./dist/encrypt-env-vars.js"
40+
},
41+
"./get-compose-hash": {
42+
"types": {
43+
"import": "./dist/get-compose-hash.d.mts",
44+
"require": "./dist/get-compose-hash.d.ts"
5045
},
51-
"default": {
52-
"import": "./dist/browser/get-compose-hash.browser.js",
53-
"require": "./dist/browser/get-compose-hash.browser.js",
54-
"types": "./dist/browser/get-compose-hash.browser.d.ts"
55-
}
46+
"import": "./dist/get-compose-hash.mjs",
47+
"require": "./dist/get-compose-hash.js"
5648
},
5749
"./verify-env-encrypt-public-key": {
58-
"node": {
59-
"import": "./dist/node/verify-env-encrypt-public-key.js",
60-
"require": "./dist/node/verify-env-encrypt-public-key.js",
61-
"types": "./dist/node/verify-env-encrypt-public-key.d.ts"
62-
},
63-
"browser": {
64-
"import": "./dist/browser/verify-env-encrypt-public-key.browser.js",
65-
"require": "./dist/browser/verify-env-encrypt-public-key.browser.js",
66-
"types": "./dist/browser/verify-env-encrypt-public-key.browser.d.ts"
50+
"types": {
51+
"import": "./dist/verify-env-encrypt-public-key.d.mts",
52+
"require": "./dist/verify-env-encrypt-public-key.d.ts"
6753
},
68-
"default": {
69-
"import": "./dist/browser/verify-env-encrypt-public-key.browser.js",
70-
"require": "./dist/browser/verify-env-encrypt-public-key.browser.js",
71-
"types": "./dist/browser/verify-env-encrypt-public-key.browser.d.ts"
72-
}
54+
"import": "./dist/verify-env-encrypt-public-key.mjs",
55+
"require": "./dist/verify-env-encrypt-public-key.js"
7356
}
7457
},
7558
"engines": {
@@ -79,9 +62,7 @@
7962
"dist"
8063
],
8164
"scripts": {
82-
"build": "npm run build:node && npm run build:browser",
83-
"build:node": "tsc -p tsconfig.node.json",
84-
"build:browser": "tsc -p tsconfig.browser.json",
65+
"build": "tsup",
8566
"clean": "rm -rf dist",
8667
"test": "vitest",
8768
"test:ci": "vitest --run",
@@ -104,6 +85,7 @@
10485
"@noble/hashes": "^1.6.1",
10586
"@solana/web3.js": "^1.98.4",
10687
"@types/node": "latest",
88+
"tsup": "^8.5.1",
10789
"typescript": "^5.7.0",
10890
"viem": "^2.43.3",
10991
"vitest": "^3.2.4"

sdk/js/tsup.config.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { defineConfig } from "tsup"
2+
3+
export default defineConfig({
4+
entry: [
5+
"src/index.ts",
6+
"src/viem.ts",
7+
"src/solana.ts",
8+
"src/encrypt-env-vars.ts",
9+
"src/get-compose-hash.ts",
10+
"src/verify-env-encrypt-public-key.ts",
11+
],
12+
format: ["cjs", "esm"],
13+
dts: true,
14+
clean: true,
15+
sourcemap: false,
16+
splitting: false,
17+
treeshake: true,
18+
target: "es2020",
19+
})

0 commit comments

Comments
 (0)