@reckona/mreact-router 0.0.182 → 0.0.183

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/src/vite.ts CHANGED
@@ -265,7 +265,11 @@ export function createAppRouterVitePlugin(options: AppRouterVitePluginOptions):
265
265
 
266
266
  devServerModuleCacheVersion += 1;
267
267
  const timestamp = Date.now();
268
- const updates = Array.from(context.server.moduleGraph.idToModuleMap.values())
268
+ const hotModules =
269
+ context.modules.length > 0
270
+ ? context.modules
271
+ : Array.from(context.server.moduleGraph.idToModuleMap.values());
272
+ const updates = hotModules
269
273
  .filter((moduleNode) => isMreactClientDevModuleId(moduleNode.id))
270
274
  .map((moduleNode) => {
271
275
  context.server.moduleGraph.invalidateModule(moduleNode);
@@ -584,6 +588,9 @@ async function handleAppRouterViteRequest(
584
588
  clientStylesByFile,
585
589
  clientRouteInferenceCache: options.clientRouteInferenceCache,
586
590
  navigationScripts,
591
+ onRenderError(error) {
592
+ sendViteErrorOverlay(options.viteDevServer, error);
593
+ },
587
594
  request,
588
595
  logger: options.logger,
589
596
  routeCache: options.routeCache,
@@ -595,10 +602,37 @@ async function handleAppRouterViteRequest(
595
602
  }),
596
603
  );
597
604
  } catch (error) {
605
+ sendViteErrorOverlay(options.viteDevServer, error);
598
606
  next(error);
599
607
  }
600
608
  }
601
609
 
610
+ function sendViteErrorOverlay(server: ViteDevServer | undefined, error: unknown): void {
611
+ if (server === undefined) {
612
+ return;
613
+ }
614
+
615
+ if (error instanceof Error) {
616
+ server.ssrFixStacktrace(error);
617
+ }
618
+ server.ws.send({
619
+ type: "error",
620
+ err: viteErrorPayload(error),
621
+ });
622
+ }
623
+
624
+ function viteErrorPayload(error: unknown): { message: string; stack: string } {
625
+ if (error instanceof Error) {
626
+ return {
627
+ message: error.message,
628
+ stack: error.stack ?? error.message,
629
+ };
630
+ }
631
+
632
+ const message = String(error);
633
+ return { message, stack: message };
634
+ }
635
+
602
636
  /**
603
637
  * Renders a development client asset generated by the app-router Vite integration.
604
638
  */