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.
- package/dist/frameworks/next-dev-server.d.ts +5 -0
- package/dist/frameworks/next-dev-server.d.ts.map +1 -1
- package/dist/index.cjs +63 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +59 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/frameworks/next-dev-server.ts +75 -15
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA4DzC,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAilBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAS;IAEzB,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAS;IAEvB,mDAAmD;IACnD,OAAO,CAAC,SAAS,CAAS;IAE1B,+DAA+D;IAC/D,OAAO,CAAC,YAAY,CAAU;IAE9B,yCAAyC;IACzC,OAAO,CAAC,cAAc,CAA6B;IAEnD,2DAA2D;IAC3D,OAAO,CAAC,eAAe,CAAuB;IAE9C,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAuB;gBAE1B,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB;IAiBzD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhC;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"next-dev-server.d.ts","sourceRoot":"","sources":["../../src/frameworks/next-dev-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA4DzC,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAilBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAS;IAEzB,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAS;IAEvB,mDAAmD;IACnD,OAAO,CAAC,SAAS,CAAS;IAE1B,+DAA+D;IAC/D,OAAO,CAAC,YAAY,CAAU;IAE9B,yCAAyC;IACzC,OAAO,CAAC,cAAc,CAA6B;IAEnD,2DAA2D;IAC3D,OAAO,CAAC,eAAe,CAAuB;IAE9C,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAuB;gBAE1B,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB;IAiBzD;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhC;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IA4CxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;OAGG;YACW,kBAAkB;IAkBhC;;OAEG;YACW,cAAc;IAqD5B;;;OAGG;IACG,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EAC7F,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,IAAI,EAC7C,KAAK,EAAE,MAAM,IAAI,GAChB,OAAO,CAAC,IAAI,CAAC;IA6ChB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6GnC;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkG1B;;OAEG;YACW,iBAAiB;IA2E/B;;OAEG;YACW,eAAe;IA6C7B;;OAEG;YACW,mBAAmB;IAkCjC;;OAEG;IACH,OAAO,CAAC,eAAe;IA2CvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuE9B;;OAEG;YACW,qBAAqB;IA0FnC;;OAEG;IACH,OAAO,CAAC,eAAe;IA4BvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsF3B;;OAEG;YACW,gBAAgB;IAmH9B;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;YACW,iBAAiB;IAiC/B;;OAEG;YACW,aAAa;IAuC3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;YACW,mBAAmB;IA8DjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,aAAa,IAAI,IAAI;IAgDrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,IAAI,IAAI,IAAI;CAUb;AAED,eAAe,aAAa,CAAC"}
|
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
|
-
|
|
13467
|
-
function App() {
|
|
13468
|
-
const [currentPath, setCurrentPath] = React.useState(window.location.pathname);
|
|
13479
|
+
const virtualBase = '${virtualPrefix}';
|
|
13469
13480
|
|
|
13470
|
-
|
|
13471
|
-
|
|
13472
|
-
|
|
13473
|
-
|
|
13474
|
-
|
|
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
|
-
|
|
13478
|
-
|
|
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>
|