@ereo/server 0.2.19 → 0.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bun-server.d.ts.map +1 -1
- package/dist/index.js +70 -54
- package/package.json +5 -5
package/dist/bun-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun-server.d.ts","sourceRoot":"","sources":["../src/bun-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bun-server.d.ts","sourceRoot":"","sources":["../src/bun-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -749,8 +749,21 @@ class BunServer {
|
|
|
749
749
|
addWebSocketUpgrade(path, upgrader, wsConfig) {
|
|
750
750
|
this.wsUpgradeHandlers.push({ path, upgrader, wsConfig });
|
|
751
751
|
}
|
|
752
|
-
async handleRequest(request) {
|
|
752
|
+
async handleRequest(request, wsType) {
|
|
753
753
|
const context = createContext(request);
|
|
754
|
+
if (this.server) {
|
|
755
|
+
if (wsType) {
|
|
756
|
+
const actualServer = this.server;
|
|
757
|
+
context.set("server", {
|
|
758
|
+
upgrade(req, opts) {
|
|
759
|
+
const data = { ...opts?.data, _wsType: wsType };
|
|
760
|
+
return actualServer.upgrade(req, { ...opts, data });
|
|
761
|
+
}
|
|
762
|
+
});
|
|
763
|
+
} else {
|
|
764
|
+
context.set("server", this.server);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
754
767
|
try {
|
|
755
768
|
if (this.options.trace && typeof this.options.trace === "object") {
|
|
756
769
|
const url = new URL(request.url);
|
|
@@ -866,6 +879,9 @@ class BunServer {
|
|
|
866
879
|
const routeHeaders3 = this.buildRouteHeaders(match);
|
|
867
880
|
return this.applyRouteHeaders(result, routeHeaders3);
|
|
868
881
|
}
|
|
882
|
+
if (result === undefined || result === null) {
|
|
883
|
+
return new Response(null, { status: 200 });
|
|
884
|
+
}
|
|
869
885
|
const jsonResponse = new Response(JSON.stringify(result), {
|
|
870
886
|
headers: { "Content-Type": "application/json" }
|
|
871
887
|
});
|
|
@@ -1580,65 +1596,67 @@ class BunServer {
|
|
|
1580
1596
|
}
|
|
1581
1597
|
async start() {
|
|
1582
1598
|
const { port, hostname, tls, websocket } = this.options;
|
|
1583
|
-
const
|
|
1584
|
-
const
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
};
|
|
1605
|
-
} else if (hasPluginWs) {
|
|
1606
|
-
mergedWebSocket = {
|
|
1607
|
-
message(ws, message) {
|
|
1608
|
-
const handler = pluginUpgradeHandlers.find((h) => h.path === ws.data?._wsType)?.wsConfig;
|
|
1609
|
-
handler?.message?.(ws, message);
|
|
1610
|
-
},
|
|
1611
|
-
open(ws) {
|
|
1612
|
-
const handler = pluginUpgradeHandlers.find((h) => h.path === ws.data?._wsType)?.wsConfig;
|
|
1613
|
-
handler?.open?.(ws);
|
|
1614
|
-
},
|
|
1615
|
-
close(ws) {
|
|
1616
|
-
const handler = pluginUpgradeHandlers.find((h) => h.path === ws.data?._wsType)?.wsConfig;
|
|
1617
|
-
handler?.close?.(ws);
|
|
1618
|
-
},
|
|
1619
|
-
drain(ws) {
|
|
1620
|
-
const handler = pluginUpgradeHandlers.find((h) => h.path === ws.data?._wsType)?.wsConfig;
|
|
1621
|
-
handler?.drain?.(ws);
|
|
1622
|
-
}
|
|
1623
|
-
};
|
|
1624
|
-
}
|
|
1599
|
+
const upgradeHandlers = this.wsUpgradeHandlers;
|
|
1600
|
+
const resolveHandler = (ws) => {
|
|
1601
|
+
const type = ws.data?._wsType;
|
|
1602
|
+
if (type === "hmr" && websocket)
|
|
1603
|
+
return websocket;
|
|
1604
|
+
return upgradeHandlers.find((h) => h.path === type)?.wsConfig;
|
|
1605
|
+
};
|
|
1606
|
+
const mergedWebSocket = {
|
|
1607
|
+
message(ws, message) {
|
|
1608
|
+
resolveHandler(ws)?.message?.(ws, message);
|
|
1609
|
+
},
|
|
1610
|
+
open(ws) {
|
|
1611
|
+
resolveHandler(ws)?.open?.(ws);
|
|
1612
|
+
},
|
|
1613
|
+
close(ws) {
|
|
1614
|
+
resolveHandler(ws)?.close?.(ws);
|
|
1615
|
+
},
|
|
1616
|
+
drain(ws) {
|
|
1617
|
+
resolveHandler(ws)?.drain?.(ws);
|
|
1618
|
+
}
|
|
1619
|
+
};
|
|
1625
1620
|
const serverOptions = {
|
|
1626
1621
|
port,
|
|
1627
1622
|
hostname,
|
|
1628
|
-
fetch: (request, server) => {
|
|
1623
|
+
fetch: async (request, server) => {
|
|
1629
1624
|
const url = new URL(request.url);
|
|
1630
1625
|
if (websocket && url.pathname === "/__hmr") {
|
|
1631
1626
|
if (server.upgrade(request, { data: { _wsType: "hmr" } }))
|
|
1632
1627
|
return;
|
|
1633
1628
|
}
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1629
|
+
const upgradeHeader = request.headers.get("Upgrade");
|
|
1630
|
+
if (upgradeHeader?.toLowerCase() === "websocket") {
|
|
1631
|
+
for (const handler of upgradeHandlers) {
|
|
1632
|
+
if (url.pathname === handler.path) {
|
|
1633
|
+
const data = { _wsType: handler.path, subscriptions: new Map, ctx: {}, originalRequest: request };
|
|
1634
|
+
if (server.upgrade(request, { data }))
|
|
1635
|
+
return;
|
|
1636
|
+
}
|
|
1637
|
+
}
|
|
1638
|
+
if (this.router && typeof this.router.getRoutes === "function") {
|
|
1639
|
+
const routes = this.router.getRoutes();
|
|
1640
|
+
const matchResult = matchWithLayouts(url.pathname, routes);
|
|
1641
|
+
if (matchResult) {
|
|
1642
|
+
await this.router.loadModule(matchResult.route);
|
|
1643
|
+
const mod = matchResult.route.module;
|
|
1644
|
+
if (mod?.websocket) {
|
|
1645
|
+
const wsType = "route:" + url.pathname;
|
|
1646
|
+
if (!upgradeHandlers.some((h) => h.path === wsType)) {
|
|
1647
|
+
upgradeHandlers.push({
|
|
1648
|
+
path: wsType,
|
|
1649
|
+
upgrader: () => true,
|
|
1650
|
+
wsConfig: mod.websocket
|
|
1651
|
+
});
|
|
1652
|
+
}
|
|
1653
|
+
if (typeof mod.GET === "function") {
|
|
1654
|
+
return this.handleRequest(request, wsType);
|
|
1655
|
+
}
|
|
1656
|
+
if (server.upgrade(request, { data: { _wsType: wsType } })) {
|
|
1641
1657
|
return;
|
|
1658
|
+
}
|
|
1659
|
+
return new Response("WebSocket upgrade failed", { status: 400 });
|
|
1642
1660
|
}
|
|
1643
1661
|
}
|
|
1644
1662
|
}
|
|
@@ -1650,9 +1668,7 @@ class BunServer {
|
|
|
1650
1668
|
if (tls) {
|
|
1651
1669
|
serverOptions.tls = tls;
|
|
1652
1670
|
}
|
|
1653
|
-
|
|
1654
|
-
serverOptions.websocket = mergedWebSocket;
|
|
1655
|
-
}
|
|
1671
|
+
serverOptions.websocket = mergedWebSocket;
|
|
1656
1672
|
this.server = Bun.serve(serverOptions);
|
|
1657
1673
|
const protocol = tls ? "https" : "http";
|
|
1658
1674
|
console.log(`Server running at ${protocol}://${hostname}:${port}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ereo/server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Ereo Team",
|
|
6
6
|
"homepage": "https://ereojs.github.io/ereoJS",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"typecheck": "tsc --noEmit"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@ereo/core": "^0.2.
|
|
36
|
-
"@ereo/client": "^0.2.
|
|
37
|
-
"@ereo/router": "^0.2.
|
|
38
|
-
"@ereo/data": "^0.2.
|
|
35
|
+
"@ereo/core": "^0.2.20",
|
|
36
|
+
"@ereo/client": "^0.2.20",
|
|
37
|
+
"@ereo/router": "^0.2.20",
|
|
38
|
+
"@ereo/data": "^0.2.20"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/bun": "^1.1.0",
|