almostnode 0.2.2 → 0.2.3

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.
@@ -91,6 +91,11 @@ export declare class NextDevServer extends DevServer {
91
91
  * Serve static assets from /_next/static/
92
92
  */
93
93
  private serveStaticAsset;
94
+ /**
95
+ * Serve page components for client-side navigation
96
+ * Maps /_next/pages/index.js → /pages/index.jsx (transformed)
97
+ */
98
+ private servePageComponent;
94
99
  /**
95
100
  * Handle API route requests
96
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"next-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/next-dev-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/next-dev-server.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -12663,6 +12663,9 @@ class NextDevServer extends DevServer {
12663
12663
  if (pathname.startsWith("/_next/shims/")) {
12664
12664
  return this.serveNextShim(pathname);
12665
12665
  }
12666
+ if (pathname.startsWith("/_next/pages/")) {
12667
+ return this.servePageComponent(pathname);
12668
+ }
12666
12669
  if (pathname.startsWith("/_next/static/")) {
12667
12670
  return this.serveStaticAsset(pathname);
12668
12671
  }
@@ -12725,6 +12728,18 @@ class NextDevServer extends DevServer {
12725
12728
  }
12726
12729
  return this.notFound(pathname);
12727
12730
  }
12731
+ /**
12732
+ * Serve page components for client-side navigation
12733
+ * Maps /_next/pages/index.js → /pages/index.jsx (transformed)
12734
+ */
12735
+ async servePageComponent(pathname) {
12736
+ const route = pathname.replace("/_next/pages", "").replace(/\.js$/, "");
12737
+ const pageFile = this.resolvePageFile(route);
12738
+ if (!pageFile) {
12739
+ return this.notFound(pathname);
12740
+ }
12741
+ return this.transformAndServe(pageFile, pageFile);
12742
+ }
12728
12743
  /**
12729
12744
  * Handle API route requests
12730
12745
  */
@@ -13419,7 +13434,6 @@ class NextDevServer extends DevServer {
13419
13434
  */
13420
13435
  async generatePageHtml(pageFile, pathname) {
13421
13436
  const virtualPrefix = `/__virtual__/${this.port}`;
13422
- const pageModulePath = virtualPrefix + pageFile;
13423
13437
  const globalCssLinks = [];
13424
13438
  const cssLocations = ["/styles/globals.css", "/styles/global.css", "/app/globals.css"];
13425
13439
  for (const cssPath of cssLocations) {
@@ -13461,30 +13475,63 @@ class NextDevServer extends DevServer {
13461
13475
  <script type="module">
13462
13476
  import React from 'react';
13463
13477
  import ReactDOM from 'react-dom/client';
13464
- import Page from '${pageModulePath}';
13465
13478
 
13466
- // Handle client-side navigation
13467
- function App() {
13468
- const [currentPath, setCurrentPath] = React.useState(window.location.pathname);
13479
+ const virtualBase = '${virtualPrefix}';
13469
13480
 
13470
- React.useEffect(() => {
13471
- const handlePopState = () => {
13472
- setCurrentPath(window.location.pathname);
13473
- // Defer reload outside React's update cycle
13474
- setTimeout(() => window.location.reload(), 0);
13475
- };
13481
+ // Convert URL path to page module path
13482
+ function getPageModulePath(pathname) {
13483
+ let route = pathname;
13484
+ if (route.startsWith(virtualBase)) {
13485
+ route = route.slice(virtualBase.length);
13486
+ }
13487
+ route = route.replace(/^\\/+/, '/') || '/';
13488
+ const modulePath = route === '/' ? '/index' : route;
13489
+ return virtualBase + '/_next/pages' + modulePath + '.js';
13490
+ }
13476
13491
 
13477
- window.addEventListener('popstate', handlePopState);
13478
- return () => window.removeEventListener('popstate', handlePopState);
13492
+ // Dynamic page loader
13493
+ async function loadPage(pathname) {
13494
+ const modulePath = getPageModulePath(pathname);
13495
+ try {
13496
+ const module = await import(/* @vite-ignore */ modulePath);
13497
+ return module.default;
13498
+ } catch (e) {
13499
+ console.error('[Navigation] Failed to load:', modulePath, e);
13500
+ return null;
13501
+ }
13502
+ }
13503
+
13504
+ // Router component
13505
+ function Router() {
13506
+ const [Page, setPage] = React.useState(null);
13507
+ const [path, setPath] = React.useState(window.location.pathname);
13508
+
13509
+ React.useEffect(() => {
13510
+ loadPage(path).then(C => C && setPage(() => C));
13479
13511
  }, []);
13480
13512
 
13513
+ React.useEffect(() => {
13514
+ const handleNavigation = async () => {
13515
+ const newPath = window.location.pathname;
13516
+ if (newPath !== path) {
13517
+ setPath(newPath);
13518
+ const C = await loadPage(newPath);
13519
+ if (C) setPage(() => C);
13520
+ }
13521
+ };
13522
+ window.addEventListener('popstate', handleNavigation);
13523
+ return () => window.removeEventListener('popstate', handleNavigation);
13524
+ }, [path]);
13525
+
13526
+ if (!Page) return null;
13481
13527
  return React.createElement(Page);
13482
13528
  }
13483
13529
 
13530
+ // Mark that we've initialized (for testing no-reload)
13531
+ window.__NEXT_INITIALIZED__ = Date.now();
13532
+
13484
13533
  ReactDOM.createRoot(document.getElementById('__next')).render(
13485
- React.createElement(React.StrictMode, null,
13486
- React.createElement(App)
13487
- )
13534
+ React.createElement(React.StrictMode, null, React.createElement(Router))
13488
13535
  );
13489
13536
  </script>
13490
13537
  </body>