Skip to content

Commit 495ba21

Browse files
Merge pull request #311 from swiftwasm/yt/dts-bundle
PackageToJS: Package TypeScript type definitions for runtime
2 parents cc33575 + 24f479a commit 495ba21

14 files changed

+481
-24
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ perf-tester:
3939
.PHONY: regenerate_swiftpm_resources
4040
regenerate_swiftpm_resources:
4141
npm run build
42-
cp Runtime/lib/index.js Runtime/lib/index.mjs Sources/JavaScriptKit/Runtime
42+
cp Runtime/lib/index.js Runtime/lib/index.mjs Runtime/lib/index.d.ts Sources/JavaScriptKit/Runtime

Plugins/PackageToJS/Sources/PackageToJS.swift

+1
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,7 @@ struct PackagingPlanner {
567567
("Plugins/PackageToJS/Templates/platforms/node.js", "platforms/node.js"),
568568
("Plugins/PackageToJS/Templates/platforms/node.d.ts", "platforms/node.d.ts"),
569569
("Sources/JavaScriptKit/Runtime/index.mjs", "runtime.js"),
570+
("Sources/JavaScriptKit/Runtime/index.d.ts", "runtime.d.ts"),
570571
] {
571572
packageInputs.append(
572573
planCopyTemplateFile(

Plugins/PackageToJS/Templates/instantiate.d.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
/* #if USE_SHARED_MEMORY */
2-
import type { SwiftRuntimeThreadChannel, SwiftRuntime } from "./runtime.js";
3-
/* #endif */
1+
import type { /* #if USE_SHARED_MEMORY */SwiftRuntimeThreadChannel, /* #endif */SwiftRuntime } from "./runtime.js";
42

53
export type Import = {
64
// TODO: Generate type from imported .d.ts files

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planBuild_debug.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,23 @@
233233
{
234234
"attributes" : [
235235

236+
],
237+
"inputs" : [
238+
"$PLANNER_SOURCE_PATH",
239+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
240+
"$INTERMEDIATES\/wasm-imports.json"
241+
],
242+
"output" : "$OUTPUT\/runtime.d.ts",
243+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
244+
"wants" : [
245+
"$OUTPUT",
246+
"$OUTPUT\/platforms",
247+
"$INTERMEDIATES\/wasm-imports.json"
248+
]
249+
},
250+
{
251+
"attributes" : [
252+
236253
],
237254
"inputs" : [
238255
"$PLANNER_SOURCE_PATH",
@@ -269,7 +286,8 @@
269286
"$OUTPUT\/platforms\/browser.worker.js",
270287
"$OUTPUT\/platforms\/node.js",
271288
"$OUTPUT\/platforms\/node.d.ts",
272-
"$OUTPUT\/runtime.js"
289+
"$OUTPUT\/runtime.js",
290+
"$OUTPUT\/runtime.d.ts"
273291
]
274292
}
275293
]

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planBuild_release.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,23 @@
248248
{
249249
"attributes" : [
250250

251+
],
252+
"inputs" : [
253+
"$PLANNER_SOURCE_PATH",
254+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
255+
"$INTERMEDIATES\/wasm-imports.json"
256+
],
257+
"output" : "$OUTPUT\/runtime.d.ts",
258+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
259+
"wants" : [
260+
"$OUTPUT",
261+
"$OUTPUT\/platforms",
262+
"$INTERMEDIATES\/wasm-imports.json"
263+
]
264+
},
265+
{
266+
"attributes" : [
267+
251268
],
252269
"inputs" : [
253270
"$PLANNER_SOURCE_PATH",
@@ -284,7 +301,8 @@
284301
"$OUTPUT\/platforms\/browser.worker.js",
285302
"$OUTPUT\/platforms\/node.js",
286303
"$OUTPUT\/platforms\/node.d.ts",
287-
"$OUTPUT\/runtime.js"
304+
"$OUTPUT\/runtime.js",
305+
"$OUTPUT\/runtime.d.ts"
288306
]
289307
}
290308
]

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planBuild_release_dwarf.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,23 @@
233233
{
234234
"attributes" : [
235235

236+
],
237+
"inputs" : [
238+
"$PLANNER_SOURCE_PATH",
239+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
240+
"$INTERMEDIATES\/wasm-imports.json"
241+
],
242+
"output" : "$OUTPUT\/runtime.d.ts",
243+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
244+
"wants" : [
245+
"$OUTPUT",
246+
"$OUTPUT\/platforms",
247+
"$INTERMEDIATES\/wasm-imports.json"
248+
]
249+
},
250+
{
251+
"attributes" : [
252+
236253
],
237254
"inputs" : [
238255
"$PLANNER_SOURCE_PATH",
@@ -269,7 +286,8 @@
269286
"$OUTPUT\/platforms\/browser.worker.js",
270287
"$OUTPUT\/platforms\/node.js",
271288
"$OUTPUT\/platforms\/node.d.ts",
272-
"$OUTPUT\/runtime.js"
289+
"$OUTPUT\/runtime.js",
290+
"$OUTPUT\/runtime.d.ts"
273291
]
274292
}
275293
]

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planBuild_release_name.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,23 @@
248248
{
249249
"attributes" : [
250250

251+
],
252+
"inputs" : [
253+
"$PLANNER_SOURCE_PATH",
254+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
255+
"$INTERMEDIATES\/wasm-imports.json"
256+
],
257+
"output" : "$OUTPUT\/runtime.d.ts",
258+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
259+
"wants" : [
260+
"$OUTPUT",
261+
"$OUTPUT\/platforms",
262+
"$INTERMEDIATES\/wasm-imports.json"
263+
]
264+
},
265+
{
266+
"attributes" : [
267+
251268
],
252269
"inputs" : [
253270
"$PLANNER_SOURCE_PATH",
@@ -284,7 +301,8 @@
284301
"$OUTPUT\/platforms\/browser.worker.js",
285302
"$OUTPUT\/platforms\/node.js",
286303
"$OUTPUT\/platforms\/node.d.ts",
287-
"$OUTPUT\/runtime.js"
304+
"$OUTPUT\/runtime.js",
305+
"$OUTPUT\/runtime.d.ts"
288306
]
289307
}
290308
]

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planBuild_release_no_optimize.json

+19-1
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,23 @@
233233
{
234234
"attributes" : [
235235

236+
],
237+
"inputs" : [
238+
"$PLANNER_SOURCE_PATH",
239+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
240+
"$INTERMEDIATES\/wasm-imports.json"
241+
],
242+
"output" : "$OUTPUT\/runtime.d.ts",
243+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
244+
"wants" : [
245+
"$OUTPUT",
246+
"$OUTPUT\/platforms",
247+
"$INTERMEDIATES\/wasm-imports.json"
248+
]
249+
},
250+
{
251+
"attributes" : [
252+
236253
],
237254
"inputs" : [
238255
"$PLANNER_SOURCE_PATH",
@@ -269,7 +286,8 @@
269286
"$OUTPUT\/platforms\/browser.worker.js",
270287
"$OUTPUT\/platforms\/node.js",
271288
"$OUTPUT\/platforms\/node.d.ts",
272-
"$OUTPUT\/runtime.js"
289+
"$OUTPUT\/runtime.js",
290+
"$OUTPUT\/runtime.d.ts"
273291
]
274292
}
275293
]

Plugins/PackageToJS/Tests/__Snapshots__/PackagingPlannerTests/planTestBuild.json

+18
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,23 @@
274274
{
275275
"attributes" : [
276276

277+
],
278+
"inputs" : [
279+
"$PLANNER_SOURCE_PATH",
280+
"$SELF_PACKAGE\/Sources\/JavaScriptKit\/Runtime\/index.d.ts",
281+
"$INTERMEDIATES\/wasm-imports.json"
282+
],
283+
"output" : "$OUTPUT\/runtime.d.ts",
284+
"salt" : "eyJjb25kaXRpb25zIjp7IklTX1dBU0kiOnRydWUsIlVTRV9TSEFSRURfTUVNT1JZIjpmYWxzZSwiVVNFX1dBU0lfQ0ROIjpmYWxzZX0sInN1YnN0aXR1dGlvbnMiOnsiUEFDS0FHRV9UT19KU19NT0RVTEVfUEFUSCI6Im1haW4ud2FzbSIsIlBBQ0tBR0VfVE9fSlNfUEFDS0FHRV9OQU1FIjoidGVzdCJ9fQ==",
285+
"wants" : [
286+
"$OUTPUT",
287+
"$OUTPUT\/platforms",
288+
"$INTERMEDIATES\/wasm-imports.json"
289+
]
290+
},
291+
{
292+
"attributes" : [
293+
277294
],
278295
"inputs" : [
279296
"$PLANNER_SOURCE_PATH",
@@ -356,6 +373,7 @@
356373
"$OUTPUT\/platforms\/node.js",
357374
"$OUTPUT\/platforms\/node.d.ts",
358375
"$OUTPUT\/runtime.js",
376+
"$OUTPUT\/runtime.d.ts",
359377
"$INTERMEDIATES\/npm-install.stamp",
360378
"$OUTPUT\/bin",
361379
"$OUTPUT\/test.js",

Runtime/rollup.config.mjs

+24-13
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
11
import typescript from "@rollup/plugin-typescript";
2+
import dts from "rollup-plugin-dts";
23

34
/** @type {import('rollup').RollupOptions} */
4-
const config = {
5-
input: "src/index.ts",
6-
output: [
7-
{
8-
file: "lib/index.mjs",
5+
const config = [
6+
{
7+
input: "src/index.ts",
8+
output: [
9+
{
10+
file: "lib/index.mjs",
11+
format: "esm",
12+
},
13+
{
14+
file: "lib/index.js",
15+
format: "umd",
16+
name: "JavaScriptKit",
17+
},
18+
],
19+
plugins: [typescript()],
20+
},
21+
{
22+
input: "src/index.ts",
23+
output: {
24+
file: "lib/index.d.ts",
925
format: "esm",
1026
},
11-
{
12-
dir: "lib",
13-
format: "umd",
14-
name: "JavaScriptKit",
15-
},
16-
],
17-
plugins: [typescript()],
18-
};
27+
plugins: [dts()],
28+
},
29+
];
1930

2031
export default config;

Runtime/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"compilerOptions": {
3-
"declaration": true,
4-
"declarationDir": "lib",
3+
"declaration": false,
54
"importHelpers": true,
65
"module": "esnext",
76
"noEmit": true,

0 commit comments

Comments
 (0)