eddev 2.0.0-beta.102 → 2.0.0-beta.104

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.
@@ -199,7 +199,7 @@ export function BrowserRouter(props) {
199
199
  if (cancelled)
200
200
  return;
201
201
  const data = await loader.loadRouteData(parseHrefPath(args.url)).catch((err) => {
202
- emitEvent({ type: "error", error: err, critical: true });
202
+ emitEvent({ type: "error", url: args.url, error: err, critical: true });
203
203
  return {
204
204
  view: "_error",
205
205
  viewType: "react",
@@ -84,6 +84,7 @@ export type RouterEvent = {
84
84
  } | {
85
85
  type: "error";
86
86
  critical: boolean;
87
+ url?: string;
87
88
  error: Error;
88
89
  };
89
90
  export type RouterSubscriber = (event: RouterEvent) => void;
@@ -7,6 +7,7 @@ import { SSRRoot } from "../entry/ssr-root.js";
7
7
  import { RouteLoader } from "../lib/routing/loader.js";
8
8
  import { AssetCaptureContext } from "../utils/asset-capture.js";
9
9
  import { ServerContext } from "./server-context.js";
10
+ import { Fragment } from "react/jsx-runtime";
10
11
  export async function getSsrStream(args) {
11
12
  const clientManifest = ServerContext.main.runtime.getManifest("client");
12
13
  const preloadAssets = new Set([clientManifest.handler]);
@@ -61,18 +62,20 @@ export async function getSsrStream(args) {
61
62
  });
62
63
  for (const input of preloadAssets) {
63
64
  const assets = await clientManifest.inputs[input].assets();
64
- // console.log(assets)
65
- // console.log("A", assets.output, (await assets.assets())?.[0])
66
- // const assets = await clientManifest.inputs[assets.output.path!]?.assets()
67
- // console.log("F?", inputs)
68
65
  controller.enqueue(new TextEncoder().encode(`\n<!-- for ${input} -->`));
69
66
  controller.enqueue(new TextEncoder().encode(`\n<!-- ${JSON.stringify(assets)} -->\n`));
70
67
  for (const _asset of assets) {
71
68
  const asset = _asset;
72
- if (preloadAssets.has(asset.key))
69
+ // Ensure that each asset is only included once
70
+ const key = asset?.attrs?.key;
71
+ if (!key) {
72
+ throw new Error("Asset must have a key: " + JSON.stringify(asset));
73
+ }
74
+ if (preloadAssets.has(key))
73
75
  continue;
74
- controller.enqueue(new TextEncoder().encode(renderToString(renderAsset(asset)) + "\n"));
75
- preloadAssets.add(asset.key);
76
+ preloadAssets.add(key);
77
+ // Render the asset
78
+ controller.enqueue(new TextEncoder().encode(renderToString(_jsx(Fragment, { children: renderAsset(asset) }))));
76
79
  }
77
80
  }
78
81
  // console.log("ASSETS", await clientManifest)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "2.0.0-beta.102",
3
+ "version": "2.0.0-beta.104",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",