Skip to content

Commit 2b939e2

Browse files
committed
add a script to serve playground bundle locally
1 parent d911ca6 commit 2b939e2

File tree

3 files changed

+89
-1
lines changed

3 files changed

+89
-1
lines changed

packages/playground/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"clean": "rescript clean",
77
"test": "node ./playground_test.cjs",
88
"build": "rescript clean && rescript legacy build && node scripts/generate_cmijs.mjs && rollup -c",
9-
"upload-bundle": "node scripts/upload_bundle.mjs"
9+
"upload-bundle": "node scripts/upload_bundle.mjs",
10+
"serve-bundle": "node serve-bundle.mjs"
1011
},
1112
"dependencies": {
1213
"@rescript/react": "^0.13.1",
@@ -15,6 +16,7 @@
1516
"devDependencies": {
1617
"@rollup/plugin-node-resolve": "^16.0.0",
1718
"glob": "^11.0.1",
19+
"h3": "2.0.0-beta.4",
1820
"rollup": "^4.32.0"
1921
}
2022
}

packages/playground/serve-bundle.mjs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { stat, readFile } from "node:fs/promises";
2+
import * as path from "node:path";
3+
import { H3, serve, serveStatic } from "h3";
4+
5+
import { rescript_compiler } from "./compiler.js";
6+
7+
const compilerVersion = rescript_compiler.version;
8+
9+
const app = new H3()
10+
.get("/versions.json", () => {
11+
return [`${compilerVersion}-local`];
12+
})
13+
.use("**", event => {
14+
return serveStatic(event, {
15+
getContents: id => {
16+
const basePath = id === "/compiler.js"
17+
? import.meta.dirname
18+
: path.join(import.meta.dirname, "packages");
19+
return readFile(path.join(basePath, id));
20+
},
21+
getMeta: async id => {
22+
const basePath = id === "/compiler.js"
23+
? import.meta.dirname
24+
: path.join(import.meta.dirname, "packages");
25+
const stats = await stat(path.join(basePath, id)).catch(() => {});
26+
if (stats?.isFile()) {
27+
return {
28+
size: stats.size,
29+
mtime: stats.mtimeMs,
30+
};
31+
}
32+
},
33+
});
34+
});
35+
36+
serve(app, { port: 8888 });

yarn.lock

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,13 @@ __metadata:
11171117
languageName: node
11181118
linkType: hard
11191119

1120+
"cookie-es@npm:^2.0.0":
1121+
version: 2.0.0
1122+
resolution: "cookie-es@npm:2.0.0"
1123+
checksum: 10c0/3b2459030a5ad2bc715aeb27a32f274340670bfc5031ac29e1fba804212517411bb617880d3fe66ace2b64dfb28f3049e2d1ff40d4bec342154ccdd124deaeaa
1124+
languageName: node
1125+
linkType: hard
1126+
11201127
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6":
11211128
version: 7.0.6
11221129
resolution: "cross-spawn@npm:7.0.6"
@@ -1280,6 +1287,13 @@ __metadata:
12801287
languageName: node
12811288
linkType: hard
12821289

1290+
"fetchdts@npm:^0.1.6":
1291+
version: 0.1.7
1292+
resolution: "fetchdts@npm:0.1.7"
1293+
checksum: 10c0/7497671ee28b3e7cc49d037a7c11e6f98e53e6e2abd85f26e8fac3fae4142c3c0d91352dc46198530f73b16480585605c63e3d112c34210ff2c75be1199668a0
1294+
languageName: node
1295+
linkType: hard
1296+
12831297
"fill-range@npm:^7.1.1":
12841298
version: 7.1.1
12851299
resolution: "fill-range@npm:7.1.1"
@@ -1501,6 +1515,23 @@ __metadata:
15011515
languageName: node
15021516
linkType: hard
15031517

1518+
"h3@npm:2.0.0-beta.4":
1519+
version: 2.0.0-beta.4
1520+
resolution: "h3@npm:2.0.0-beta.4"
1521+
dependencies:
1522+
cookie-es: "npm:^2.0.0"
1523+
fetchdts: "npm:^0.1.6"
1524+
rou3: "npm:^0.7.3"
1525+
srvx: "npm:^0.8.7"
1526+
peerDependencies:
1527+
crossws: ^0.4.1
1528+
peerDependenciesMeta:
1529+
crossws:
1530+
optional: true
1531+
checksum: 10c0/ac40213784bab18a96509048d82338763484dddab303763ab549c1fc2e41c8c83a00013154fd9861042b9016f91dc0be3e6c12e553e7450910dc692c17e59403
1532+
languageName: node
1533+
linkType: hard
1534+
15041535
"has-flag@npm:^4.0.0":
15051536
version: 4.0.0
15061537
resolution: "has-flag@npm:4.0.0"
@@ -2412,6 +2443,7 @@ __metadata:
24122443
"@rescript/react": "npm:^0.13.1"
24132444
"@rollup/plugin-node-resolve": "npm:^16.0.0"
24142445
glob: "npm:^11.0.1"
2446+
h3: "npm:2.0.0-beta.4"
24152447
rescript: "workspace:^"
24162448
rollup: "npm:^4.32.0"
24172449
languageName: unknown
@@ -2680,6 +2712,13 @@ __metadata:
26802712
languageName: node
26812713
linkType: hard
26822714

2715+
"rou3@npm:^0.7.3":
2716+
version: 0.7.3
2717+
resolution: "rou3@npm:0.7.3"
2718+
checksum: 10c0/f20224a724838c8a0cbdd8b37462ad684b59f87a8314aa7e6a1a892f96d806bcf504bcb9108f9d812cdb6194e1a347adc15f2c379238bfbc3b723e33dc71ca46
2719+
languageName: node
2720+
linkType: hard
2721+
26832722
"safe-buffer@npm:^5.1.0":
26842723
version: 5.2.1
26852724
resolution: "safe-buffer@npm:5.2.1"
@@ -2839,6 +2878,17 @@ __metadata:
28392878
languageName: node
28402879
linkType: hard
28412880

2881+
"srvx@npm:^0.8.7":
2882+
version: 0.8.7
2883+
resolution: "srvx@npm:0.8.7"
2884+
dependencies:
2885+
cookie-es: "npm:^2.0.0"
2886+
bin:
2887+
srvx: bin/srvx.mjs
2888+
checksum: 10c0/67b0b0acbb660df966dd0486e93eba456535190b38a8817f45afbfc4a8892146d69bf8183cdc270bfbbc360169df26f4b636d29ca6b28a4c5eec20d3432ab317
2889+
languageName: node
2890+
linkType: hard
2891+
28422892
"ssri@npm:^12.0.0":
28432893
version: 12.0.0
28442894
resolution: "ssri@npm:12.0.0"

0 commit comments

Comments
 (0)