@marko/run 0.4.5 → 0.4.6
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/.tsbuildinfo +1 -1
- package/dist/adapter/dev-server.d.ts +2 -2
- package/dist/adapter/index.cjs +179 -134
- package/dist/adapter/index.d.ts +1 -1
- package/dist/adapter/index.js +182 -135
- package/dist/adapter/middleware.cjs +13 -4
- package/dist/adapter/middleware.d.ts +0 -1
- package/dist/adapter/middleware.js +13 -4
- package/dist/adapter/polyfill.d.ts +0 -1
- package/dist/adapter/utils.d.ts +16 -0
- package/dist/cli/index.mjs +207 -181
- package/dist/runtime/internal.cjs +7 -5
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.js +5 -4
- package/dist/runtime/router.d.ts +2 -2
- package/dist/vite/index.cjs +206 -180
- package/dist/vite/index.js +207 -181
- package/dist/vite/utils/ast.d.ts +1 -0
- package/dist/vite/utils/server.d.ts +0 -3
- package/package.json +25 -25
package/dist/adapter/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// src/adapter/index.ts
|
|
2
|
-
import
|
|
2
|
+
import path2 from "path";
|
|
3
3
|
import fs2 from "fs";
|
|
4
4
|
import inspector from "inspector";
|
|
5
5
|
import { fileURLToPath } from "url";
|
|
6
6
|
|
|
7
7
|
// src/adapter/dev-server.ts
|
|
8
|
-
import
|
|
8
|
+
import path from "path";
|
|
9
|
+
import {
|
|
10
|
+
createServer,
|
|
11
|
+
buildErrorMessage
|
|
12
|
+
} from "vite";
|
|
9
13
|
|
|
10
14
|
// src/adapter/polyfill.ts
|
|
11
15
|
import * as webStream from "stream/web";
|
|
@@ -114,6 +118,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
114
118
|
appendHeader(response, "set-cookie", setCookies);
|
|
115
119
|
}
|
|
116
120
|
}
|
|
121
|
+
function normalizeError(error) {
|
|
122
|
+
if (error.cause && !error.message) {
|
|
123
|
+
error.message = error.cause.message;
|
|
124
|
+
error.stack || (error.stack = error.cause.stack);
|
|
125
|
+
}
|
|
126
|
+
return error;
|
|
127
|
+
}
|
|
117
128
|
function createMiddleware(fetch2, options) {
|
|
118
129
|
const {
|
|
119
130
|
origin = process.env.ORIGIN,
|
|
@@ -141,13 +152,14 @@ function createMiddleware(fetch2, options) {
|
|
|
141
152
|
}
|
|
142
153
|
}
|
|
143
154
|
function onSignalAborted() {
|
|
155
|
+
const error = normalizeError(signal.reason);
|
|
144
156
|
if (next) {
|
|
145
|
-
next(
|
|
157
|
+
next(error);
|
|
146
158
|
} else {
|
|
147
159
|
if (!res.destroyed && res.socket) {
|
|
148
160
|
res.socket.destroySoon();
|
|
149
161
|
}
|
|
150
|
-
console.error(
|
|
162
|
+
console.error(error);
|
|
151
163
|
}
|
|
152
164
|
}
|
|
153
165
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -158,7 +170,7 @@ function createMiddleware(fetch2, options) {
|
|
|
158
170
|
signal.addEventListener("abort", sendError);
|
|
159
171
|
}
|
|
160
172
|
function sendError() {
|
|
161
|
-
const { message, stack = "" } = signal.reason;
|
|
173
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
162
174
|
ws.send(
|
|
163
175
|
JSON.stringify({
|
|
164
176
|
type: "error",
|
|
@@ -192,6 +204,7 @@ function createMiddleware(fetch2, options) {
|
|
|
192
204
|
try {
|
|
193
205
|
response = await fetch2(request, platform);
|
|
194
206
|
} catch (err) {
|
|
207
|
+
normalizeError(err);
|
|
195
208
|
if (next) {
|
|
196
209
|
next(err);
|
|
197
210
|
} else {
|
|
@@ -238,7 +251,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
238
251
|
}
|
|
239
252
|
}
|
|
240
253
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
241
|
-
|
|
254
|
+
pull(controller) {
|
|
242
255
|
controller.error(
|
|
243
256
|
new Error(
|
|
244
257
|
"The request body stream was already consumed by something before Marko Run."
|
|
@@ -247,9 +260,6 @@ var bodyConsumedErrorStream = new ReadableStream({
|
|
|
247
260
|
}
|
|
248
261
|
});
|
|
249
262
|
|
|
250
|
-
// src/adapter/dev-server.ts
|
|
251
|
-
import { inspect } from "util";
|
|
252
|
-
|
|
253
263
|
// src/adapter/logger.ts
|
|
254
264
|
import kleur from "kleur";
|
|
255
265
|
import DraftLog from "draftlog";
|
|
@@ -444,130 +454,35 @@ function createAnimationManager(options = {}) {
|
|
|
444
454
|
};
|
|
445
455
|
}
|
|
446
456
|
|
|
447
|
-
// src/adapter/
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
getDevGlobal().addDevServer(devServer);
|
|
455
|
-
devServer.middlewares.use(logger_default());
|
|
456
|
-
return devServer;
|
|
457
|
-
}
|
|
458
|
-
async function createDevServer(config2) {
|
|
459
|
-
const devServer = await createViteDevServer(config2);
|
|
460
|
-
const routerMiddleware = createMiddleware(
|
|
461
|
-
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
457
|
+
// src/adapter/utils.ts
|
|
458
|
+
import supporsColor from "supports-color";
|
|
459
|
+
import kleur2 from "kleur";
|
|
460
|
+
function stripAnsi(string) {
|
|
461
|
+
return string.replace(
|
|
462
|
+
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
463
|
+
""
|
|
462
464
|
);
|
|
463
|
-
devServer.middlewares.use(async (req, res, next) => {
|
|
464
|
-
function handleNext(err) {
|
|
465
|
-
var _a;
|
|
466
|
-
if (err) {
|
|
467
|
-
if (err instanceof Error) {
|
|
468
|
-
devServer.ssrFixStacktrace(err);
|
|
469
|
-
}
|
|
470
|
-
console.error(err);
|
|
471
|
-
if (res.headersSent) {
|
|
472
|
-
if (!res.destroyed) {
|
|
473
|
-
(_a = res.socket) == null ? void 0 : _a.destroySoon();
|
|
474
|
-
}
|
|
475
|
-
} else {
|
|
476
|
-
res.statusCode = 500;
|
|
477
|
-
res.end(
|
|
478
|
-
inspect(err).replace(
|
|
479
|
-
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
480
|
-
""
|
|
481
|
-
)
|
|
482
|
-
);
|
|
483
|
-
}
|
|
484
|
-
} else {
|
|
485
|
-
next == null ? void 0 : next();
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
try {
|
|
489
|
-
await devServer.ssrLoadModule("@marko/run/router");
|
|
490
|
-
} catch (err) {
|
|
491
|
-
return handleNext(err);
|
|
492
|
-
}
|
|
493
|
-
routerMiddleware(req, res, handleNext);
|
|
494
|
-
});
|
|
495
|
-
return devServer;
|
|
496
465
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
if (req.headers.cookie) {
|
|
500
|
-
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
501
|
-
if (cookie) {
|
|
502
|
-
return cookie.slice(ClientIdCookieName.length + 1);
|
|
503
|
-
}
|
|
504
|
-
}
|
|
466
|
+
function cleanStack(stack) {
|
|
467
|
+
return stack.split(/\n/).filter((l) => /^\s*at/.test(l)).join("\n");
|
|
505
468
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
} else if (entry.expires > now) {
|
|
518
|
-
nextCallbacks.push(entry);
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
callbacks = nextCallbacks;
|
|
522
|
-
}
|
|
523
|
-
};
|
|
524
|
-
var handleConnection = handleConnection2;
|
|
525
|
-
const devServers = /* @__PURE__ */ new Set();
|
|
526
|
-
let callbacks = [];
|
|
527
|
-
globalThis.__marko_run_dev__ = devGlobal = {
|
|
528
|
-
devServers,
|
|
529
|
-
addDevServer(devServer) {
|
|
530
|
-
const originalClose = devServer.close;
|
|
531
|
-
devServer.close = () => {
|
|
532
|
-
devServers.delete(devServer);
|
|
533
|
-
return originalClose.call(devServer);
|
|
534
|
-
};
|
|
535
|
-
devServers.add(devServer);
|
|
536
|
-
devServer.ws.on("connection", handleConnection2);
|
|
537
|
-
},
|
|
538
|
-
clear() {
|
|
539
|
-
callbacks = [];
|
|
540
|
-
for (const devServer of devServers) {
|
|
541
|
-
devServer.ws.off("connection", handleConnection2);
|
|
542
|
-
devServer.close();
|
|
543
|
-
}
|
|
544
|
-
},
|
|
545
|
-
onClient(res, callback) {
|
|
546
|
-
const expires = Date.now() + 1e3;
|
|
547
|
-
const id = Math.floor(Math.random() * expires).toString(36);
|
|
548
|
-
callbacks.push({
|
|
549
|
-
id,
|
|
550
|
-
expires,
|
|
551
|
-
callback
|
|
552
|
-
});
|
|
553
|
-
res.setHeader(
|
|
554
|
-
"set-cookie",
|
|
555
|
-
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
556
|
-
);
|
|
557
|
-
}
|
|
558
|
-
};
|
|
559
|
-
}
|
|
560
|
-
return devGlobal;
|
|
469
|
+
function prepareError(err) {
|
|
470
|
+
var _a;
|
|
471
|
+
return {
|
|
472
|
+
message: stripAnsi(err.message),
|
|
473
|
+
stack: stripAnsi(cleanStack(err.stack || "")),
|
|
474
|
+
id: err.id,
|
|
475
|
+
frame: stripAnsi(err.frame || ""),
|
|
476
|
+
plugin: err.plugin,
|
|
477
|
+
pluginCode: (_a = err.pluginCode) == null ? void 0 : _a.toString(),
|
|
478
|
+
loc: err.loc
|
|
479
|
+
};
|
|
561
480
|
}
|
|
562
|
-
|
|
563
|
-
// src/adapter/utils.ts
|
|
564
|
-
import supporsColor from "supports-color";
|
|
565
|
-
import kleur2 from "kleur";
|
|
566
481
|
function logInfoBox(address, explorer) {
|
|
567
482
|
const color = !!supporsColor.stdout;
|
|
568
483
|
let message = kleur2.bold("Marko Run");
|
|
569
484
|
if (true) {
|
|
570
|
-
message += ` v${"0.4.
|
|
485
|
+
message += ` v${"0.4.6"}`;
|
|
571
486
|
}
|
|
572
487
|
message += "\n\n";
|
|
573
488
|
message += kleur2.dim("Server listening at");
|
|
@@ -706,6 +621,137 @@ B\u2572 \u2572 GG\u203E\u203E\u203E\u203E O\u2571 \u2571 P\u2571 \u2571
|
|
|
706
621
|
return { lines, width };
|
|
707
622
|
}
|
|
708
623
|
|
|
624
|
+
// src/adapter/dev-server.ts
|
|
625
|
+
async function createViteDevServer(config2) {
|
|
626
|
+
const devServer = await createServer({
|
|
627
|
+
...config2,
|
|
628
|
+
appType: "custom",
|
|
629
|
+
server: { ...config2 == null ? void 0 : config2.server, middlewareMode: true }
|
|
630
|
+
});
|
|
631
|
+
getDevGlobal().addDevServer(devServer);
|
|
632
|
+
devServer.middlewares.use(logger_default());
|
|
633
|
+
return devServer;
|
|
634
|
+
}
|
|
635
|
+
async function createDevServer(config2) {
|
|
636
|
+
const devServer = await createViteDevServer(config2);
|
|
637
|
+
const routerMiddleware = createMiddleware(
|
|
638
|
+
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
639
|
+
);
|
|
640
|
+
devServer.middlewares.use(async (req, res, next) => {
|
|
641
|
+
try {
|
|
642
|
+
await devServer.ssrLoadModule("@marko/run/router");
|
|
643
|
+
} catch (err) {
|
|
644
|
+
return next(err);
|
|
645
|
+
}
|
|
646
|
+
routerMiddleware(req, res, next);
|
|
647
|
+
}).use(createErrorMiddleware(devServer));
|
|
648
|
+
return devServer;
|
|
649
|
+
}
|
|
650
|
+
var ClientIdCookieName = "marko-run-client-id";
|
|
651
|
+
function getClientId(req) {
|
|
652
|
+
if (req.headers.cookie) {
|
|
653
|
+
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
654
|
+
if (cookie) {
|
|
655
|
+
return cookie.slice(ClientIdCookieName.length + 1);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
var devGlobal;
|
|
660
|
+
function getDevGlobal() {
|
|
661
|
+
if (!devGlobal) {
|
|
662
|
+
let handleConnection2 = function(ws, req) {
|
|
663
|
+
if (callbacks == null ? void 0 : callbacks.length) {
|
|
664
|
+
const id = getClientId(req);
|
|
665
|
+
const now = Date.now();
|
|
666
|
+
const nextCallbacks = [];
|
|
667
|
+
for (const entry of callbacks) {
|
|
668
|
+
if (entry.id === id) {
|
|
669
|
+
entry.callback(ws);
|
|
670
|
+
} else if (entry.expires > now) {
|
|
671
|
+
nextCallbacks.push(entry);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
callbacks = nextCallbacks;
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
var handleConnection = handleConnection2;
|
|
678
|
+
const devServers = /* @__PURE__ */ new Set();
|
|
679
|
+
let callbacks = [];
|
|
680
|
+
globalThis.__marko_run_dev__ = devGlobal = {
|
|
681
|
+
devServers,
|
|
682
|
+
addDevServer(devServer) {
|
|
683
|
+
const originalClose = devServer.close;
|
|
684
|
+
devServer.close = () => {
|
|
685
|
+
devServers.delete(devServer);
|
|
686
|
+
return originalClose.call(devServer);
|
|
687
|
+
};
|
|
688
|
+
devServers.add(devServer);
|
|
689
|
+
devServer.ws.on("connection", handleConnection2);
|
|
690
|
+
},
|
|
691
|
+
clear() {
|
|
692
|
+
callbacks = [];
|
|
693
|
+
for (const devServer of devServers) {
|
|
694
|
+
devServer.ws.off("connection", handleConnection2);
|
|
695
|
+
devServer.close();
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
onClient(res, callback) {
|
|
699
|
+
const expires = Date.now() + 1e3;
|
|
700
|
+
const id = Math.floor(Math.random() * expires).toString(36);
|
|
701
|
+
callbacks.push({
|
|
702
|
+
id,
|
|
703
|
+
expires,
|
|
704
|
+
callback
|
|
705
|
+
});
|
|
706
|
+
res.setHeader(
|
|
707
|
+
"set-cookie",
|
|
708
|
+
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
709
|
+
);
|
|
710
|
+
}
|
|
711
|
+
};
|
|
712
|
+
}
|
|
713
|
+
return devGlobal;
|
|
714
|
+
}
|
|
715
|
+
function createErrorMiddleware(devServer) {
|
|
716
|
+
return function errorMiddleware(error, _req, res, _next) {
|
|
717
|
+
if (!error.id) {
|
|
718
|
+
devServer.config.logger.error(buildErrorMessage(error, [`\x1B[31;1mRequest failed with error: ${error.message}\x1B[0m`]));
|
|
719
|
+
}
|
|
720
|
+
res.statusCode = 500;
|
|
721
|
+
res.end(`
|
|
722
|
+
<!DOCTYPE html>
|
|
723
|
+
<html lang="en">
|
|
724
|
+
<head>
|
|
725
|
+
<meta charset="UTF-8" />
|
|
726
|
+
<title>Error</title>
|
|
727
|
+
<script type="module">
|
|
728
|
+
const error = ${JSON.stringify(prepareError(error)).replace(
|
|
729
|
+
/</g,
|
|
730
|
+
"\\u003c"
|
|
731
|
+
)}
|
|
732
|
+
try {
|
|
733
|
+
const { ErrorOverlay } = await import(${JSON.stringify(path.posix.join(devServer.config.base, "/@vite/client"))})
|
|
734
|
+
document.body.appendChild(new ErrorOverlay(error))
|
|
735
|
+
} catch {
|
|
736
|
+
const h = (tag, text) => {
|
|
737
|
+
const el = document.createElement(tag)
|
|
738
|
+
el.textContent = text
|
|
739
|
+
return el
|
|
740
|
+
}
|
|
741
|
+
document.body.appendChild(h('h1', 'Internal Server Error'))
|
|
742
|
+
document.body.appendChild(h('h2', error.message))
|
|
743
|
+
document.body.appendChild(h('pre', error.stack))
|
|
744
|
+
document.body.appendChild(h('p', '(Error overlay failed to load)'))
|
|
745
|
+
}
|
|
746
|
+
</script>
|
|
747
|
+
</head>
|
|
748
|
+
<body>
|
|
749
|
+
</body>
|
|
750
|
+
</html>
|
|
751
|
+
`);
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
|
|
709
755
|
// src/vite/utils/server.ts
|
|
710
756
|
import net from "net";
|
|
711
757
|
import cp from "child_process";
|
|
@@ -878,9 +924,9 @@ var markoRunFilePrefix = "__marko-run__";
|
|
|
878
924
|
var virtualFilePrefix = "virtual:marko-run";
|
|
879
925
|
|
|
880
926
|
// src/adapter/index.ts
|
|
881
|
-
var __dirname =
|
|
882
|
-
var defaultEntry =
|
|
883
|
-
var loadDevWorker =
|
|
927
|
+
var __dirname = path2.dirname(fileURLToPath(import.meta.url));
|
|
928
|
+
var defaultEntry = path2.join(__dirname, "default-entry");
|
|
929
|
+
var loadDevWorker = path2.join(__dirname, "load-dev-worker.mjs");
|
|
884
930
|
function adapter() {
|
|
885
931
|
return {
|
|
886
932
|
name: "base-adapter",
|
|
@@ -931,9 +977,9 @@ function adapter() {
|
|
|
931
977
|
}
|
|
932
978
|
const devServer = await createDevServer(config2);
|
|
933
979
|
envFile && await loadEnv(envFile);
|
|
934
|
-
const
|
|
935
|
-
if (
|
|
936
|
-
inspector.open(
|
|
980
|
+
const inspect = getInspectOptions(options.args);
|
|
981
|
+
if (inspect) {
|
|
982
|
+
inspector.open(inspect.port, inspect.host, inspect.wait);
|
|
937
983
|
}
|
|
938
984
|
const listen = new Promise((resolve) => {
|
|
939
985
|
const listener = devServer.middlewares.listen(port, () => {
|
|
@@ -978,8 +1024,8 @@ function adapter() {
|
|
|
978
1024
|
return;
|
|
979
1025
|
}
|
|
980
1026
|
const promises = [];
|
|
981
|
-
const cacheDir =
|
|
982
|
-
const codeDir =
|
|
1027
|
+
const cacheDir = path2.resolve(__dirname, "../../.cache/explorer");
|
|
1028
|
+
const codeDir = path2.join(cacheDir, "code");
|
|
983
1029
|
if (fs2.existsSync(codeDir)) {
|
|
984
1030
|
await fs2.promises.rm(codeDir, { recursive: true });
|
|
985
1031
|
}
|
|
@@ -1001,7 +1047,7 @@ function adapter() {
|
|
|
1001
1047
|
}
|
|
1002
1048
|
if (fileName) {
|
|
1003
1049
|
promises.push(
|
|
1004
|
-
fs2.promises.writeFile(
|
|
1050
|
+
fs2.promises.writeFile(path2.join(codeDir, fileName), code, {})
|
|
1005
1051
|
);
|
|
1006
1052
|
}
|
|
1007
1053
|
}
|
|
@@ -1013,7 +1059,7 @@ function adapter() {
|
|
|
1013
1059
|
}
|
|
1014
1060
|
promises.push(
|
|
1015
1061
|
fs2.promises.writeFile(
|
|
1016
|
-
|
|
1062
|
+
path2.join(cacheDir, "data.json"),
|
|
1017
1063
|
JSON.stringify(data),
|
|
1018
1064
|
{}
|
|
1019
1065
|
)
|
|
@@ -1030,6 +1076,7 @@ async function startExplorer() {
|
|
|
1030
1076
|
}
|
|
1031
1077
|
export {
|
|
1032
1078
|
createDevServer,
|
|
1079
|
+
createErrorMiddleware,
|
|
1033
1080
|
createViteDevServer,
|
|
1034
1081
|
adapter as default,
|
|
1035
1082
|
getDevGlobal
|
|
@@ -147,6 +147,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
147
147
|
appendHeader(response, "set-cookie", setCookies);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
+
function normalizeError(error) {
|
|
151
|
+
if (error.cause && !error.message) {
|
|
152
|
+
error.message = error.cause.message;
|
|
153
|
+
error.stack || (error.stack = error.cause.stack);
|
|
154
|
+
}
|
|
155
|
+
return error;
|
|
156
|
+
}
|
|
150
157
|
function createMiddleware(fetch2, options) {
|
|
151
158
|
const {
|
|
152
159
|
origin = process.env.ORIGIN,
|
|
@@ -174,13 +181,14 @@ function createMiddleware(fetch2, options) {
|
|
|
174
181
|
}
|
|
175
182
|
}
|
|
176
183
|
function onSignalAborted() {
|
|
184
|
+
const error = normalizeError(signal.reason);
|
|
177
185
|
if (next) {
|
|
178
|
-
next(
|
|
186
|
+
next(error);
|
|
179
187
|
} else {
|
|
180
188
|
if (!res.destroyed && res.socket) {
|
|
181
189
|
res.socket.destroySoon();
|
|
182
190
|
}
|
|
183
|
-
console.error(
|
|
191
|
+
console.error(error);
|
|
184
192
|
}
|
|
185
193
|
}
|
|
186
194
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -191,7 +199,7 @@ function createMiddleware(fetch2, options) {
|
|
|
191
199
|
signal.addEventListener("abort", sendError);
|
|
192
200
|
}
|
|
193
201
|
function sendError() {
|
|
194
|
-
const { message, stack = "" } = signal.reason;
|
|
202
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
195
203
|
ws.send(
|
|
196
204
|
JSON.stringify({
|
|
197
205
|
type: "error",
|
|
@@ -225,6 +233,7 @@ function createMiddleware(fetch2, options) {
|
|
|
225
233
|
try {
|
|
226
234
|
response = await fetch2(request, platform);
|
|
227
235
|
} catch (err) {
|
|
236
|
+
normalizeError(err);
|
|
228
237
|
if (next) {
|
|
229
238
|
next(err);
|
|
230
239
|
} else {
|
|
@@ -271,7 +280,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
271
280
|
}
|
|
272
281
|
}
|
|
273
282
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
274
|
-
|
|
283
|
+
pull(controller) {
|
|
275
284
|
controller.error(
|
|
276
285
|
new Error(
|
|
277
286
|
"The request body stream was already consumed by something before Marko Run."
|
|
@@ -105,6 +105,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
105
105
|
appendHeader(response, "set-cookie", setCookies);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
+
function normalizeError(error) {
|
|
109
|
+
if (error.cause && !error.message) {
|
|
110
|
+
error.message = error.cause.message;
|
|
111
|
+
error.stack || (error.stack = error.cause.stack);
|
|
112
|
+
}
|
|
113
|
+
return error;
|
|
114
|
+
}
|
|
108
115
|
function createMiddleware(fetch2, options) {
|
|
109
116
|
const {
|
|
110
117
|
origin = process.env.ORIGIN,
|
|
@@ -132,13 +139,14 @@ function createMiddleware(fetch2, options) {
|
|
|
132
139
|
}
|
|
133
140
|
}
|
|
134
141
|
function onSignalAborted() {
|
|
142
|
+
const error = normalizeError(signal.reason);
|
|
135
143
|
if (next) {
|
|
136
|
-
next(
|
|
144
|
+
next(error);
|
|
137
145
|
} else {
|
|
138
146
|
if (!res.destroyed && res.socket) {
|
|
139
147
|
res.socket.destroySoon();
|
|
140
148
|
}
|
|
141
|
-
console.error(
|
|
149
|
+
console.error(error);
|
|
142
150
|
}
|
|
143
151
|
}
|
|
144
152
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -149,7 +157,7 @@ function createMiddleware(fetch2, options) {
|
|
|
149
157
|
signal.addEventListener("abort", sendError);
|
|
150
158
|
}
|
|
151
159
|
function sendError() {
|
|
152
|
-
const { message, stack = "" } = signal.reason;
|
|
160
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
153
161
|
ws.send(
|
|
154
162
|
JSON.stringify({
|
|
155
163
|
type: "error",
|
|
@@ -183,6 +191,7 @@ function createMiddleware(fetch2, options) {
|
|
|
183
191
|
try {
|
|
184
192
|
response = await fetch2(request, platform);
|
|
185
193
|
} catch (err) {
|
|
194
|
+
normalizeError(err);
|
|
186
195
|
if (next) {
|
|
187
196
|
next(err);
|
|
188
197
|
} else {
|
|
@@ -229,7 +238,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
229
238
|
}
|
|
230
239
|
}
|
|
231
240
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
232
|
-
|
|
241
|
+
pull(controller) {
|
|
233
242
|
controller.error(
|
|
234
243
|
new Error(
|
|
235
244
|
"The request body stream was already consumed by something before Marko Run."
|
package/dist/adapter/utils.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import type { Rollup } from "vite";
|
|
2
|
+
type RollupError = Rollup.RollupError;
|
|
3
|
+
export declare function prepareError(err: Error | RollupError): {
|
|
4
|
+
message: string;
|
|
5
|
+
stack: string;
|
|
6
|
+
id: string | undefined;
|
|
7
|
+
frame: string;
|
|
8
|
+
plugin: string | undefined;
|
|
9
|
+
pluginCode: string | undefined;
|
|
10
|
+
loc: {
|
|
11
|
+
column: number;
|
|
12
|
+
file?: string;
|
|
13
|
+
line: number;
|
|
14
|
+
} | undefined;
|
|
15
|
+
};
|
|
1
16
|
export declare function logInfoBox(address: string, explorer?: string): void;
|
|
2
17
|
export declare function drawMarkoBox(message: string, options?: LogoOptions): string[];
|
|
3
18
|
export interface LogoOptions {
|
|
@@ -8,3 +23,4 @@ export declare function drawMarkoLogo(options?: LogoOptions): {
|
|
|
8
23
|
lines: string[];
|
|
9
24
|
width: number;
|
|
10
25
|
};
|
|
26
|
+
export {};
|