@marko/run 0.4.5 → 0.4.7
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/runtime/types.d.ts +1 -1
- 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.cjs
CHANGED
|
@@ -31,6 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var adapter_exports = {};
|
|
32
32
|
__export(adapter_exports, {
|
|
33
33
|
createDevServer: () => createDevServer,
|
|
34
|
+
createErrorMiddleware: () => createErrorMiddleware,
|
|
34
35
|
createViteDevServer: () => createViteDevServer,
|
|
35
36
|
default: () => adapter,
|
|
36
37
|
getDevGlobal: () => getDevGlobal
|
|
@@ -42,12 +43,13 @@ var import_url = require("url");
|
|
|
42
43
|
var __importMetaURL = (0, import_url.pathToFileURL)(__filename);
|
|
43
44
|
|
|
44
45
|
// src/adapter/index.ts
|
|
45
|
-
var
|
|
46
|
+
var import_path2 = __toESM(require("path"), 1);
|
|
46
47
|
var import_fs2 = __toESM(require("fs"), 1);
|
|
47
48
|
var import_inspector2 = __toESM(require("inspector"), 1);
|
|
48
49
|
var import_url2 = require("url");
|
|
49
50
|
|
|
50
51
|
// src/adapter/dev-server.ts
|
|
52
|
+
var import_path = __toESM(require("path"), 1);
|
|
51
53
|
var import_vite = require("vite");
|
|
52
54
|
|
|
53
55
|
// src/adapter/polyfill.ts
|
|
@@ -157,6 +159,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
157
159
|
appendHeader(response, "set-cookie", setCookies);
|
|
158
160
|
}
|
|
159
161
|
}
|
|
162
|
+
function normalizeError(error) {
|
|
163
|
+
if (error.cause && !error.message) {
|
|
164
|
+
error.message = error.cause.message;
|
|
165
|
+
error.stack || (error.stack = error.cause.stack);
|
|
166
|
+
}
|
|
167
|
+
return error;
|
|
168
|
+
}
|
|
160
169
|
function createMiddleware(fetch2, options) {
|
|
161
170
|
const {
|
|
162
171
|
origin = process.env.ORIGIN,
|
|
@@ -184,13 +193,14 @@ function createMiddleware(fetch2, options) {
|
|
|
184
193
|
}
|
|
185
194
|
}
|
|
186
195
|
function onSignalAborted() {
|
|
196
|
+
const error = normalizeError(signal.reason);
|
|
187
197
|
if (next) {
|
|
188
|
-
next(
|
|
198
|
+
next(error);
|
|
189
199
|
} else {
|
|
190
200
|
if (!res.destroyed && res.socket) {
|
|
191
201
|
res.socket.destroySoon();
|
|
192
202
|
}
|
|
193
|
-
console.error(
|
|
203
|
+
console.error(error);
|
|
194
204
|
}
|
|
195
205
|
}
|
|
196
206
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -201,7 +211,7 @@ function createMiddleware(fetch2, options) {
|
|
|
201
211
|
signal.addEventListener("abort", sendError);
|
|
202
212
|
}
|
|
203
213
|
function sendError() {
|
|
204
|
-
const { message, stack = "" } = signal.reason;
|
|
214
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
205
215
|
ws.send(
|
|
206
216
|
JSON.stringify({
|
|
207
217
|
type: "error",
|
|
@@ -235,6 +245,7 @@ function createMiddleware(fetch2, options) {
|
|
|
235
245
|
try {
|
|
236
246
|
response = await fetch2(request, platform);
|
|
237
247
|
} catch (err) {
|
|
248
|
+
normalizeError(err);
|
|
238
249
|
if (next) {
|
|
239
250
|
next(err);
|
|
240
251
|
} else {
|
|
@@ -281,7 +292,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
281
292
|
}
|
|
282
293
|
}
|
|
283
294
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
284
|
-
|
|
295
|
+
pull(controller) {
|
|
285
296
|
controller.error(
|
|
286
297
|
new Error(
|
|
287
298
|
"The request body stream was already consumed by something before Marko Run."
|
|
@@ -290,9 +301,6 @@ var bodyConsumedErrorStream = new ReadableStream({
|
|
|
290
301
|
}
|
|
291
302
|
});
|
|
292
303
|
|
|
293
|
-
// src/adapter/dev-server.ts
|
|
294
|
-
var import_util = require("util");
|
|
295
|
-
|
|
296
304
|
// src/adapter/logger.ts
|
|
297
305
|
var import_kleur = __toESM(require("kleur"), 1);
|
|
298
306
|
var import_draftlog = __toESM(require("draftlog"), 1);
|
|
@@ -487,130 +495,35 @@ function createAnimationManager(options = {}) {
|
|
|
487
495
|
};
|
|
488
496
|
}
|
|
489
497
|
|
|
490
|
-
// src/adapter/
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
getDevGlobal().addDevServer(devServer);
|
|
498
|
-
devServer.middlewares.use(logger_default());
|
|
499
|
-
return devServer;
|
|
500
|
-
}
|
|
501
|
-
async function createDevServer(config2) {
|
|
502
|
-
const devServer = await createViteDevServer(config2);
|
|
503
|
-
const routerMiddleware = createMiddleware(
|
|
504
|
-
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
498
|
+
// src/adapter/utils.ts
|
|
499
|
+
var import_supports_color = __toESM(require("supports-color"), 1);
|
|
500
|
+
var import_kleur2 = __toESM(require("kleur"), 1);
|
|
501
|
+
function stripAnsi(string) {
|
|
502
|
+
return string.replace(
|
|
503
|
+
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
504
|
+
""
|
|
505
505
|
);
|
|
506
|
-
devServer.middlewares.use(async (req, res, next) => {
|
|
507
|
-
function handleNext(err) {
|
|
508
|
-
var _a;
|
|
509
|
-
if (err) {
|
|
510
|
-
if (err instanceof Error) {
|
|
511
|
-
devServer.ssrFixStacktrace(err);
|
|
512
|
-
}
|
|
513
|
-
console.error(err);
|
|
514
|
-
if (res.headersSent) {
|
|
515
|
-
if (!res.destroyed) {
|
|
516
|
-
(_a = res.socket) == null ? void 0 : _a.destroySoon();
|
|
517
|
-
}
|
|
518
|
-
} else {
|
|
519
|
-
res.statusCode = 500;
|
|
520
|
-
res.end(
|
|
521
|
-
(0, import_util.inspect)(err).replace(
|
|
522
|
-
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
523
|
-
""
|
|
524
|
-
)
|
|
525
|
-
);
|
|
526
|
-
}
|
|
527
|
-
} else {
|
|
528
|
-
next == null ? void 0 : next();
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
try {
|
|
532
|
-
await devServer.ssrLoadModule("@marko/run/router");
|
|
533
|
-
} catch (err) {
|
|
534
|
-
return handleNext(err);
|
|
535
|
-
}
|
|
536
|
-
routerMiddleware(req, res, handleNext);
|
|
537
|
-
});
|
|
538
|
-
return devServer;
|
|
539
506
|
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
if (req.headers.cookie) {
|
|
543
|
-
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
544
|
-
if (cookie) {
|
|
545
|
-
return cookie.slice(ClientIdCookieName.length + 1);
|
|
546
|
-
}
|
|
547
|
-
}
|
|
507
|
+
function cleanStack(stack) {
|
|
508
|
+
return stack.split(/\n/).filter((l) => /^\s*at/.test(l)).join("\n");
|
|
548
509
|
}
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
} else if (entry.expires > now) {
|
|
561
|
-
nextCallbacks.push(entry);
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
callbacks = nextCallbacks;
|
|
565
|
-
}
|
|
566
|
-
};
|
|
567
|
-
var handleConnection = handleConnection2;
|
|
568
|
-
const devServers = /* @__PURE__ */ new Set();
|
|
569
|
-
let callbacks = [];
|
|
570
|
-
globalThis.__marko_run_dev__ = devGlobal = {
|
|
571
|
-
devServers,
|
|
572
|
-
addDevServer(devServer) {
|
|
573
|
-
const originalClose = devServer.close;
|
|
574
|
-
devServer.close = () => {
|
|
575
|
-
devServers.delete(devServer);
|
|
576
|
-
return originalClose.call(devServer);
|
|
577
|
-
};
|
|
578
|
-
devServers.add(devServer);
|
|
579
|
-
devServer.ws.on("connection", handleConnection2);
|
|
580
|
-
},
|
|
581
|
-
clear() {
|
|
582
|
-
callbacks = [];
|
|
583
|
-
for (const devServer of devServers) {
|
|
584
|
-
devServer.ws.off("connection", handleConnection2);
|
|
585
|
-
devServer.close();
|
|
586
|
-
}
|
|
587
|
-
},
|
|
588
|
-
onClient(res, callback) {
|
|
589
|
-
const expires = Date.now() + 1e3;
|
|
590
|
-
const id = Math.floor(Math.random() * expires).toString(36);
|
|
591
|
-
callbacks.push({
|
|
592
|
-
id,
|
|
593
|
-
expires,
|
|
594
|
-
callback
|
|
595
|
-
});
|
|
596
|
-
res.setHeader(
|
|
597
|
-
"set-cookie",
|
|
598
|
-
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
599
|
-
);
|
|
600
|
-
}
|
|
601
|
-
};
|
|
602
|
-
}
|
|
603
|
-
return devGlobal;
|
|
510
|
+
function prepareError(err) {
|
|
511
|
+
var _a;
|
|
512
|
+
return {
|
|
513
|
+
message: stripAnsi(err.message),
|
|
514
|
+
stack: stripAnsi(cleanStack(err.stack || "")),
|
|
515
|
+
id: err.id,
|
|
516
|
+
frame: stripAnsi(err.frame || ""),
|
|
517
|
+
plugin: err.plugin,
|
|
518
|
+
pluginCode: (_a = err.pluginCode) == null ? void 0 : _a.toString(),
|
|
519
|
+
loc: err.loc
|
|
520
|
+
};
|
|
604
521
|
}
|
|
605
|
-
|
|
606
|
-
// src/adapter/utils.ts
|
|
607
|
-
var import_supports_color = __toESM(require("supports-color"), 1);
|
|
608
|
-
var import_kleur2 = __toESM(require("kleur"), 1);
|
|
609
522
|
function logInfoBox(address, explorer) {
|
|
610
523
|
const color = !!import_supports_color.default.stdout;
|
|
611
524
|
let message = import_kleur2.default.bold("Marko Run");
|
|
612
525
|
if (true) {
|
|
613
|
-
message += ` v${"0.4.
|
|
526
|
+
message += ` v${"0.4.7"}`;
|
|
614
527
|
}
|
|
615
528
|
message += "\n\n";
|
|
616
529
|
message += import_kleur2.default.dim("Server listening at");
|
|
@@ -749,6 +662,137 @@ B\u2572 \u2572 GG\u203E\u203E\u203E\u203E O\u2571 \u2571 P\u2571 \u2571
|
|
|
749
662
|
return { lines, width };
|
|
750
663
|
}
|
|
751
664
|
|
|
665
|
+
// src/adapter/dev-server.ts
|
|
666
|
+
async function createViteDevServer(config2) {
|
|
667
|
+
const devServer = await (0, import_vite.createServer)({
|
|
668
|
+
...config2,
|
|
669
|
+
appType: "custom",
|
|
670
|
+
server: { ...config2 == null ? void 0 : config2.server, middlewareMode: true }
|
|
671
|
+
});
|
|
672
|
+
getDevGlobal().addDevServer(devServer);
|
|
673
|
+
devServer.middlewares.use(logger_default());
|
|
674
|
+
return devServer;
|
|
675
|
+
}
|
|
676
|
+
async function createDevServer(config2) {
|
|
677
|
+
const devServer = await createViteDevServer(config2);
|
|
678
|
+
const routerMiddleware = createMiddleware(
|
|
679
|
+
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
680
|
+
);
|
|
681
|
+
devServer.middlewares.use(async (req, res, next) => {
|
|
682
|
+
try {
|
|
683
|
+
await devServer.ssrLoadModule("@marko/run/router");
|
|
684
|
+
} catch (err) {
|
|
685
|
+
return next(err);
|
|
686
|
+
}
|
|
687
|
+
routerMiddleware(req, res, next);
|
|
688
|
+
}).use(createErrorMiddleware(devServer));
|
|
689
|
+
return devServer;
|
|
690
|
+
}
|
|
691
|
+
var ClientIdCookieName = "marko-run-client-id";
|
|
692
|
+
function getClientId(req) {
|
|
693
|
+
if (req.headers.cookie) {
|
|
694
|
+
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
695
|
+
if (cookie) {
|
|
696
|
+
return cookie.slice(ClientIdCookieName.length + 1);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
var devGlobal;
|
|
701
|
+
function getDevGlobal() {
|
|
702
|
+
if (!devGlobal) {
|
|
703
|
+
let handleConnection2 = function(ws, req) {
|
|
704
|
+
if (callbacks == null ? void 0 : callbacks.length) {
|
|
705
|
+
const id = getClientId(req);
|
|
706
|
+
const now = Date.now();
|
|
707
|
+
const nextCallbacks = [];
|
|
708
|
+
for (const entry of callbacks) {
|
|
709
|
+
if (entry.id === id) {
|
|
710
|
+
entry.callback(ws);
|
|
711
|
+
} else if (entry.expires > now) {
|
|
712
|
+
nextCallbacks.push(entry);
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
callbacks = nextCallbacks;
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
var handleConnection = handleConnection2;
|
|
719
|
+
const devServers = /* @__PURE__ */ new Set();
|
|
720
|
+
let callbacks = [];
|
|
721
|
+
globalThis.__marko_run_dev__ = devGlobal = {
|
|
722
|
+
devServers,
|
|
723
|
+
addDevServer(devServer) {
|
|
724
|
+
const originalClose = devServer.close;
|
|
725
|
+
devServer.close = () => {
|
|
726
|
+
devServers.delete(devServer);
|
|
727
|
+
return originalClose.call(devServer);
|
|
728
|
+
};
|
|
729
|
+
devServers.add(devServer);
|
|
730
|
+
devServer.ws.on("connection", handleConnection2);
|
|
731
|
+
},
|
|
732
|
+
clear() {
|
|
733
|
+
callbacks = [];
|
|
734
|
+
for (const devServer of devServers) {
|
|
735
|
+
devServer.ws.off("connection", handleConnection2);
|
|
736
|
+
devServer.close();
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
onClient(res, callback) {
|
|
740
|
+
const expires = Date.now() + 1e3;
|
|
741
|
+
const id = Math.floor(Math.random() * expires).toString(36);
|
|
742
|
+
callbacks.push({
|
|
743
|
+
id,
|
|
744
|
+
expires,
|
|
745
|
+
callback
|
|
746
|
+
});
|
|
747
|
+
res.setHeader(
|
|
748
|
+
"set-cookie",
|
|
749
|
+
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
750
|
+
);
|
|
751
|
+
}
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
return devGlobal;
|
|
755
|
+
}
|
|
756
|
+
function createErrorMiddleware(devServer) {
|
|
757
|
+
return function errorMiddleware(error, _req, res, _next) {
|
|
758
|
+
if (!error.id) {
|
|
759
|
+
devServer.config.logger.error((0, import_vite.buildErrorMessage)(error, [`\x1B[31;1mRequest failed with error: ${error.message}\x1B[0m`]));
|
|
760
|
+
}
|
|
761
|
+
res.statusCode = 500;
|
|
762
|
+
res.end(`
|
|
763
|
+
<!DOCTYPE html>
|
|
764
|
+
<html lang="en">
|
|
765
|
+
<head>
|
|
766
|
+
<meta charset="UTF-8" />
|
|
767
|
+
<title>Error</title>
|
|
768
|
+
<script type="module">
|
|
769
|
+
const error = ${JSON.stringify(prepareError(error)).replace(
|
|
770
|
+
/</g,
|
|
771
|
+
"\\u003c"
|
|
772
|
+
)}
|
|
773
|
+
try {
|
|
774
|
+
const { ErrorOverlay } = await import(${JSON.stringify(import_path.default.posix.join(devServer.config.base, "/@vite/client"))})
|
|
775
|
+
document.body.appendChild(new ErrorOverlay(error))
|
|
776
|
+
} catch {
|
|
777
|
+
const h = (tag, text) => {
|
|
778
|
+
const el = document.createElement(tag)
|
|
779
|
+
el.textContent = text
|
|
780
|
+
return el
|
|
781
|
+
}
|
|
782
|
+
document.body.appendChild(h('h1', 'Internal Server Error'))
|
|
783
|
+
document.body.appendChild(h('h2', error.message))
|
|
784
|
+
document.body.appendChild(h('pre', error.stack))
|
|
785
|
+
document.body.appendChild(h('p', '(Error overlay failed to load)'))
|
|
786
|
+
}
|
|
787
|
+
</script>
|
|
788
|
+
</head>
|
|
789
|
+
<body>
|
|
790
|
+
</body>
|
|
791
|
+
</html>
|
|
792
|
+
`);
|
|
793
|
+
};
|
|
794
|
+
}
|
|
795
|
+
|
|
752
796
|
// src/vite/utils/server.ts
|
|
753
797
|
var import_net = __toESM(require("net"), 1);
|
|
754
798
|
var import_child_process = __toESM(require("child_process"), 1);
|
|
@@ -921,9 +965,9 @@ var markoRunFilePrefix = "__marko-run__";
|
|
|
921
965
|
var virtualFilePrefix = "virtual:marko-run";
|
|
922
966
|
|
|
923
967
|
// src/adapter/index.ts
|
|
924
|
-
var __dirname =
|
|
925
|
-
var defaultEntry =
|
|
926
|
-
var loadDevWorker =
|
|
968
|
+
var __dirname = import_path2.default.dirname((0, import_url2.fileURLToPath)(__importMetaURL));
|
|
969
|
+
var defaultEntry = import_path2.default.join(__dirname, "default-entry");
|
|
970
|
+
var loadDevWorker = import_path2.default.join(__dirname, "load-dev-worker.mjs");
|
|
927
971
|
function adapter() {
|
|
928
972
|
return {
|
|
929
973
|
name: "base-adapter",
|
|
@@ -974,9 +1018,9 @@ function adapter() {
|
|
|
974
1018
|
}
|
|
975
1019
|
const devServer = await createDevServer(config2);
|
|
976
1020
|
envFile && await loadEnv(envFile);
|
|
977
|
-
const
|
|
978
|
-
if (
|
|
979
|
-
import_inspector2.default.open(
|
|
1021
|
+
const inspect = getInspectOptions(options.args);
|
|
1022
|
+
if (inspect) {
|
|
1023
|
+
import_inspector2.default.open(inspect.port, inspect.host, inspect.wait);
|
|
980
1024
|
}
|
|
981
1025
|
const listen = new Promise((resolve) => {
|
|
982
1026
|
const listener = devServer.middlewares.listen(port, () => {
|
|
@@ -1021,8 +1065,8 @@ function adapter() {
|
|
|
1021
1065
|
return;
|
|
1022
1066
|
}
|
|
1023
1067
|
const promises = [];
|
|
1024
|
-
const cacheDir =
|
|
1025
|
-
const codeDir =
|
|
1068
|
+
const cacheDir = import_path2.default.resolve(__dirname, "../../.cache/explorer");
|
|
1069
|
+
const codeDir = import_path2.default.join(cacheDir, "code");
|
|
1026
1070
|
if (import_fs2.default.existsSync(codeDir)) {
|
|
1027
1071
|
await import_fs2.default.promises.rm(codeDir, { recursive: true });
|
|
1028
1072
|
}
|
|
@@ -1044,7 +1088,7 @@ function adapter() {
|
|
|
1044
1088
|
}
|
|
1045
1089
|
if (fileName) {
|
|
1046
1090
|
promises.push(
|
|
1047
|
-
import_fs2.default.promises.writeFile(
|
|
1091
|
+
import_fs2.default.promises.writeFile(import_path2.default.join(codeDir, fileName), code, {})
|
|
1048
1092
|
);
|
|
1049
1093
|
}
|
|
1050
1094
|
}
|
|
@@ -1056,7 +1100,7 @@ function adapter() {
|
|
|
1056
1100
|
}
|
|
1057
1101
|
promises.push(
|
|
1058
1102
|
import_fs2.default.promises.writeFile(
|
|
1059
|
-
|
|
1103
|
+
import_path2.default.join(cacheDir, "data.json"),
|
|
1060
1104
|
JSON.stringify(data),
|
|
1061
1105
|
{}
|
|
1062
1106
|
)
|
|
@@ -1074,6 +1118,7 @@ async function startExplorer() {
|
|
|
1074
1118
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1075
1119
|
0 && (module.exports = {
|
|
1076
1120
|
createDevServer,
|
|
1121
|
+
createErrorMiddleware,
|
|
1077
1122
|
createViteDevServer,
|
|
1078
1123
|
getDevGlobal
|
|
1079
1124
|
});
|
package/dist/adapter/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Adapter } from "../vite";
|
|
2
2
|
import { type MarkoRunDev } from "./dev-server";
|
|
3
3
|
import { type SpawnedServer } from "../vite/utils/server";
|
|
4
|
-
export { getDevGlobal, createDevServer, createViteDevServer, type MarkoRunDev, } from "./dev-server";
|
|
4
|
+
export { getDevGlobal, createDevServer, createViteDevServer, createErrorMiddleware, type MarkoRunDev, } from "./dev-server";
|
|
5
5
|
export type { Adapter, SpawnedServer };
|
|
6
6
|
export type { NodePlatformInfo } from "./middleware";
|
|
7
7
|
export type MarkoRunDevAccessor = () => MarkoRunDev;
|