one 1.21.0 → 1.21.2
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/cjs/cli/build.cjs +1 -4
- package/dist/cjs/cli/build.native.js +1 -4
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +1 -1
- package/dist/cjs/cli/buildPage.native.js +1 -1
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/daemon/ipc.cjs +21 -3
- package/dist/cjs/daemon/ipc.native.js +21 -3
- package/dist/cjs/daemon/ipc.native.js.map +1 -1
- package/dist/cjs/package-exports.test.cjs +24 -0
- package/dist/cjs/package-exports.test.native.js +34 -0
- package/dist/cjs/package-exports.test.native.js.map +1 -0
- package/dist/cjs/router/hmrImport.native.js +13 -2
- package/dist/cjs/router/hmrImport.native.js.map +1 -1
- package/dist/cjs/router/hmrImport.native.test.cjs +52 -0
- package/dist/cjs/router/hmrImport.native.test.native.js +61 -0
- package/dist/cjs/router/hmrImport.native.test.native.js.map +1 -0
- package/dist/cjs/router/routeHmr.cjs +32 -0
- package/dist/cjs/router/routeHmr.native.js +57 -0
- package/dist/cjs/router/routeHmr.native.js.map +1 -0
- package/dist/cjs/router/routeHmr.native.test.cjs +83 -0
- package/dist/cjs/router/routeHmr.native.test.native.js +95 -0
- package/dist/cjs/router/routeHmr.native.test.native.js.map +1 -0
- package/dist/cjs/router/useScreens.cjs +2 -0
- package/dist/cjs/router/useScreens.native.js +2 -0
- package/dist/cjs/router/useScreens.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.cjs +7 -17
- package/dist/cjs/router/useViteRoutes.native.js +8 -18
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/router/useViteRoutes.test.cjs +42 -0
- package/dist/cjs/router/useViteRoutes.test.native.js +55 -0
- package/dist/cjs/router/useViteRoutes.test.native.js.map +1 -0
- package/dist/cjs/utils/cleanUrl.cjs +12 -2
- package/dist/cjs/utils/cleanUrl.native.js +15 -3
- package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
- package/dist/cjs/utils/cleanUrl.test.cjs +37 -0
- package/dist/cjs/utils/cleanUrl.test.native.js +37 -0
- package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +1 -4
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +1 -4
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +2 -2
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +2 -2
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/daemon/ipc.mjs +21 -3
- package/dist/esm/daemon/ipc.mjs.map +1 -1
- package/dist/esm/daemon/ipc.native.js +21 -3
- package/dist/esm/daemon/ipc.native.js.map +1 -1
- package/dist/esm/package-exports.test.mjs +24 -0
- package/dist/esm/package-exports.test.mjs.map +1 -0
- package/dist/esm/package-exports.test.native.js +31 -0
- package/dist/esm/package-exports.test.native.js.map +1 -0
- package/dist/esm/router/hmrImport.native.js +13 -2
- package/dist/esm/router/hmrImport.native.js.map +1 -1
- package/dist/esm/router/hmrImport.native.test.js +51 -0
- package/dist/esm/router/hmrImport.native.test.js.map +6 -0
- package/dist/esm/router/hmrImport.native.test.mjs +53 -0
- package/dist/esm/router/hmrImport.native.test.mjs.map +1 -0
- package/dist/esm/router/hmrImport.native.test.native.js +59 -0
- package/dist/esm/router/hmrImport.native.test.native.js.map +1 -0
- package/dist/esm/router/routeHmr.mjs +6 -0
- package/dist/esm/router/routeHmr.mjs.map +1 -0
- package/dist/esm/router/routeHmr.native.js +28 -0
- package/dist/esm/router/routeHmr.native.js.map +1 -0
- package/dist/esm/router/routeHmr.native.test.js +58 -0
- package/dist/esm/router/routeHmr.native.test.js.map +6 -0
- package/dist/esm/router/routeHmr.native.test.mjs +60 -0
- package/dist/esm/router/routeHmr.native.test.mjs.map +1 -0
- package/dist/esm/router/routeHmr.native.test.native.js +69 -0
- package/dist/esm/router/routeHmr.native.test.native.js.map +1 -0
- package/dist/esm/router/useScreens.mjs +1 -0
- package/dist/esm/router/useScreens.mjs.map +1 -1
- package/dist/esm/router/useScreens.native.js +2 -0
- package/dist/esm/router/useScreens.native.js.map +1 -1
- package/dist/esm/router/useViteRoutes.mjs +7 -17
- package/dist/esm/router/useViteRoutes.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.native.js +8 -18
- package/dist/esm/router/useViteRoutes.native.js.map +1 -1
- package/dist/esm/router/useViteRoutes.test.mjs +43 -0
- package/dist/esm/router/useViteRoutes.test.mjs.map +1 -0
- package/dist/esm/router/useViteRoutes.test.native.js +53 -0
- package/dist/esm/router/useViteRoutes.test.native.js.map +1 -0
- package/dist/esm/utils/cleanUrl.mjs +11 -3
- package/dist/esm/utils/cleanUrl.mjs.map +1 -1
- package/dist/esm/utils/cleanUrl.native.js +14 -4
- package/dist/esm/utils/cleanUrl.native.js.map +1 -1
- package/dist/esm/utils/cleanUrl.test.mjs +38 -1
- package/dist/esm/utils/cleanUrl.test.mjs.map +1 -1
- package/dist/esm/utils/cleanUrl.test.native.js +38 -1
- package/dist/esm/utils/cleanUrl.test.native.js.map +1 -1
- package/package.json +20 -25
- package/src/cli/build.ts +1 -1
- package/src/cli/buildPage.ts +12 -2
- package/src/daemon/ipc.ts +46 -4
- package/src/package-exports.test.ts +35 -0
- package/src/router/hmrImport.native.test.ts +55 -0
- package/src/router/hmrImport.native.ts +25 -5
- package/src/router/routeHmr.native.test.ts +71 -0
- package/src/router/routeHmr.native.ts +37 -0
- package/src/router/routeHmr.ts +8 -0
- package/src/router/useScreens.tsx +12 -0
- package/src/router/useViteRoutes.test.ts +49 -0
- package/src/router/useViteRoutes.tsx +12 -21
- package/src/utils/cleanUrl.test.ts +63 -1
- package/src/utils/cleanUrl.ts +25 -3
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/daemon/ipc.d.ts.map +1 -1
- package/types/package-exports.test.d.ts +2 -0
- package/types/package-exports.test.d.ts.map +1 -0
- package/types/router/hmrImport.native.d.ts +8 -3
- package/types/router/hmrImport.native.d.ts.map +1 -1
- package/types/router/hmrImport.native.test.d.ts +2 -0
- package/types/router/hmrImport.native.test.d.ts.map +1 -0
- package/types/router/routeHmr.d.ts +3 -0
- package/types/router/routeHmr.d.ts.map +1 -0
- package/types/router/routeHmr.native.d.ts +6 -0
- package/types/router/routeHmr.native.d.ts.map +1 -0
- package/types/router/routeHmr.native.test.d.ts +2 -0
- package/types/router/routeHmr.native.test.d.ts.map +1 -0
- package/types/router/useScreens.d.ts.map +1 -1
- package/types/router/useViteRoutes.d.ts.map +1 -1
- package/types/router/useViteRoutes.test.d.ts +2 -0
- package/types/router/useViteRoutes.test.d.ts.map +1 -0
- package/types/utils/cleanUrl.d.ts +2 -0
- package/types/utils/cleanUrl.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["net","fs","path","os","registerServer","unregisterServer","getAllServers","getAllRoutes","setRoute","clearRoute","findServerById","touchServer","getLastActiveServer","_instanceof","left","right","Symbol","hasInstance","SOCKET_DIR","join","homedir","
|
|
1
|
+
{"version":3,"names":["net","fs","path","os","createHash","registerServer","unregisterServer","getAllServers","getAllRoutes","setRoute","clearRoute","findServerById","touchServer","getLastActiveServer","_instanceof","left","right","Symbol","hasInstance","SOCKET_DIR","join","homedir","SERVERS_FILE","resolveSocketPath","process","platform","scope","update","digest","slice","win32","String","raw","SOCKET_PATH","getSocketPath","getServersFilePath","ensureSocketDir","existsSync","mkdirSync","recursive","writeServerFile","server","servers","readServerFiles","filtered","filter","s","root","push","writeFileSync","JSON","stringify","removeServerFile","parse","readFileSync","unused","cleanupSocket","unlinkSync","createIPCServer","state","onServerRegistered","onServerUnregistered","createServer","socket","buffer","on","data","toString","lines","split","pop","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","line","value","trim","message","response","handleMessage","write","err","errResponse","type","Error","return","console","error","code","exit","listen","chmodSync","registration","port","bundleId","id","serverId","routes","touched","server1","isDaemonRunning","Promise","resolve","client","connect","timeout","setTimeout","destroy","clearTimeout","sendIPCMessage","reject"],"sources":["../../../src/daemon/ipc.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { fileURLToPath, URL } from "node:url";
|
|
3
|
+
import { describe, expect, test } from "vitest";
|
|
4
|
+
const packageDirectory = fileURLToPath(new URL("../", import.meta.url));
|
|
5
|
+
function collectExportTargets(value) {
|
|
6
|
+
if (typeof value === "string") {
|
|
7
|
+
return value.includes("*") ? [] : [value];
|
|
8
|
+
}
|
|
9
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return Object.values(value).flatMap(collectExportTargets);
|
|
13
|
+
}
|
|
14
|
+
describe("package exports", () => {
|
|
15
|
+
test("all concrete targets exist in the built package", () => {
|
|
16
|
+
const packageJson = JSON.parse(readFileSync(`${packageDirectory}/package.json`, "utf8"));
|
|
17
|
+
if (!packageJson || typeof packageJson !== "object" || !("exports" in packageJson)) {
|
|
18
|
+
throw new Error("one package.json must define exports");
|
|
19
|
+
}
|
|
20
|
+
const missing = collectExportTargets(packageJson.exports).filter(target => !existsSync(`${packageDirectory}/${target}`));
|
|
21
|
+
expect(missing).toEqual([]);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=package-exports.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["existsSync","readFileSync","fileURLToPath","URL","describe","expect","test","packageDirectory","import","meta","url","collectExportTargets","value","includes","Array","isArray","Object","values","flatMap","packageJson","JSON","parse","Error","missing","exports","filter","target","toEqual"],"sources":["../../src/package-exports.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,YAAA,QAAoB;AACzC,SAASC,aAAA,EAAeC,GAAA,QAAW;AACnC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,MAAMC,gBAAA,GAAmBL,aAAA,CAAc,IAAIC,GAAA,CAAI,OAAOK,MAAA,CAAAC,IAAA,CAAYC,GAAG,CAAC;AAEtE,SAASC,qBAAqBC,KAAA,EAA0B;EACtD,IAAI,OAAOA,KAAA,KAAU,UAAU;IAC7B,OAAOA,KAAA,CAAMC,QAAA,CAAS,GAAG,IAAI,EAAC,GAAI,CAACD,KAAK;EAC1C;EAEA,IAAI,CAACA,KAAA,IAAS,OAAOA,KAAA,KAAU,YAAYE,KAAA,CAAMC,OAAA,CAAQH,KAAK,GAAG;IAC/D,OAAO,EAAC;EACV;EAEA,OAAOI,MAAA,CAAOC,MAAA,CAAOL,KAAK,EAAEM,OAAA,CAAQP,oBAAoB;AAC1D;AAEAP,QAAA,CAAS,mBAAmB,MAAM;EAChCE,IAAA,CAAK,mDAAmD,MAAM;IAC5D,MAAMa,WAAA,GAAuBC,IAAA,CAAKC,KAAA,CAChCpB,YAAA,CAAa,GAAGM,gBAAgB,iBAAiB,MAAM,CACzD;IAEA,IAAI,CAACY,WAAA,IAAe,OAAOA,WAAA,KAAgB,YAAY,EAAE,aAAaA,WAAA,GAAc;MAClF,MAAM,IAAIG,KAAA,CAAM,sCAAsC;IACxD;IAEA,MAAMC,OAAA,GAAUZ,oBAAA,CAAqBQ,WAAA,CAAYK,OAAO,EAAEC,MAAA,CACvDC,MAAA,IAAW,CAAC1B,UAAA,CAAW,GAAGO,gBAAgB,IAAImB,MAAM,EAAE,CACzD;IAEArB,MAAA,CAAOkB,OAAO,EAAEI,OAAA,CAAQ,EAAE;EAC5B,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "fs";
|
|
2
|
+
import { fileURLToPath, URL } from "url";
|
|
3
|
+
import { describe, expect, test } from "vitest";
|
|
4
|
+
function _type_of(obj) {
|
|
5
|
+
"@swc/helpers - typeof";
|
|
6
|
+
|
|
7
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
8
|
+
}
|
|
9
|
+
var packageDirectory = fileURLToPath(new URL("../", import.meta.url));
|
|
10
|
+
function collectExportTargets(value) {
|
|
11
|
+
if (typeof value === "string") {
|
|
12
|
+
return value.includes("*") ? [] : [value];
|
|
13
|
+
}
|
|
14
|
+
if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object" || Array.isArray(value)) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
return Object.values(value).flatMap(collectExportTargets);
|
|
18
|
+
}
|
|
19
|
+
describe("package exports", function () {
|
|
20
|
+
test("all concrete targets exist in the built package", function () {
|
|
21
|
+
var packageJson = JSON.parse(readFileSync(`${packageDirectory}/package.json`, "utf8"));
|
|
22
|
+
if (!packageJson || (typeof packageJson === "undefined" ? "undefined" : _type_of(packageJson)) !== "object" || !("exports" in packageJson)) {
|
|
23
|
+
throw new Error("one package.json must define exports");
|
|
24
|
+
}
|
|
25
|
+
var missing = collectExportTargets(packageJson.exports).filter(function (target) {
|
|
26
|
+
return !existsSync(`${packageDirectory}/${target}`);
|
|
27
|
+
});
|
|
28
|
+
expect(missing).toEqual([]);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=package-exports.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["existsSync","readFileSync","fileURLToPath","URL","describe","expect","test","_type_of","obj","Symbol","constructor","packageDirectory","import","meta","url","collectExportTargets","value","includes","Array","isArray","Object","values","flatMap","packageJson","JSON","parse","Error","missing","exports","filter","target"],"sources":["../../src/package-exports.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,YAAA,QAAoB;AACzC,SAASC,aAAA,EAAeC,GAAA,QAAW;AACnC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAAMC,SAAAC,GAAA;EAEN,uBAAS;;EACP,OAAIA,GAAA,IAAO,OAAUC,MAAA,KAAU,eAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAC7B;AAAwC,IAC1CG,gBAAA,GAAAT,aAAA,KAAAC,GAAA,QAAAS,MAAA,CAAAC,IAAA,CAAAC,GAAA;AAEA,SAAKC,oBAAgBA,CAAAC,KAAU;EAC7B,WAAQA,KAAA;IACV,OAAAA,KAAA,CAAAC,QAAA,cAEAD,KAAO,CACT;EAEA;EACE,KAAKA,KAAA,YAAAA,KAAA,8BAAmD,GAAAT,QAAM,CAAAS,KAAA,mBAAAE,KAAA,CAAAC,OAAA,CAAAH,KAAA;IAC5D,OAAM;EAA4B;EACuB,OACzDI,MAAA,CAAAC,MAAA,CAAAL,KAAA,EAAAM,OAAA,CAAAP,oBAAA;AAEA;AACEX,QAAA,kBAAgB;EAAsCE,IACxD;IAEA,IAAAiB,WAAM,GAAUC,IAAA,CAAAC,KAAA,CAAAxB,YAAqB,IAAAU,gBAAqB;IAAA,IACvD,CAAAY,WAAY,YAAWA,WAAG,gBAA0B,GAAE,cAAAhB,QAAA,CAAAgB,WAAA,kCAAAA,WAAA;MACzD,UAAAG,KAAA;IAEA;IACD,IAAAC,OAAA,GAAAZ,oBAAA,CAAAQ,WAAA,CAAAK,OAAA,EAAAC,MAAA,WAAAC,MAAA;MACF,QAAA9B,UAAA,IAAAW,gBAAA,IAAAmB,MAAA","ignoreList":[]}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
function hmrImport(
|
|
2
|
-
|
|
1
|
+
function hmrImport(path) {
|
|
2
|
+
var runtime = globalThis.__rolldown_runtime__;
|
|
3
|
+
if (!runtime || typeof runtime.loadExports !== "function") {
|
|
4
|
+
return Promise.reject(new Error("HMR import not supported on native"));
|
|
5
|
+
}
|
|
6
|
+
var id = path.replace(/^\.\//, "").replace(/^\//, "");
|
|
7
|
+
return Promise.resolve().then(function () {
|
|
8
|
+
var mod = runtime.loadExports(id);
|
|
9
|
+
if (mod == null) {
|
|
10
|
+
throw new Error(`no exports for ${id}`);
|
|
11
|
+
}
|
|
12
|
+
return mod;
|
|
13
|
+
});
|
|
3
14
|
}
|
|
4
15
|
export { hmrImport };
|
|
5
16
|
//# sourceMappingURL=hmrImport.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hmrImport","
|
|
1
|
+
{"version":3,"names":["hmrImport","path","runtime","globalThis","__rolldown_runtime__","loadExports","Promise","reject","Error","id","replace","resolve","then","mod"],"sources":["../../../src/router/hmrImport.native.ts"],"sourcesContent":[null],"mappings":"AAQW,SAASA,UAAUC,IAAA,EAAM;EAChC,IAAIC,OAAA,GAAUC,UAAA,CAAWC,oBAAA;EACzB,IAAI,CAACF,OAAA,IAAW,OAAOA,OAAA,CAAQG,WAAA,KAAgB,YAAY;IACvD,OAAOC,OAAA,CAAQC,MAAA,CAAO,IAAIC,KAAA,CAAM,oCAAoC,CAAC;EACzE;EAEA,IAAIC,EAAA,GAAKR,IAAA,CAAKS,OAAA,CAAQ,SAAS,EAAE,EAAEA,OAAA,CAAQ,OAAO,EAAE;EACpD,OAAOJ,OAAA,CAAQK,OAAA,CAAQ,EAAEC,IAAA,CAAK,YAAW;IACrC,IAAIC,GAAA,GAAMX,OAAA,CAAQG,WAAA,CAAYI,EAAE;IAChC,IAAII,GAAA,IAAO,MAAM;MACb,MAAM,IAAIL,KAAA,CAAM,kBAAkBC,EAAE,EAAE;IAC1C;IACA,OAAOI,GAAA;EACX,CAAC;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { hmrImport } from "./hmrImport.native";
|
|
3
|
+
const realRuntime = globalThis.__rolldown_runtime__;
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
;
|
|
6
|
+
globalThis.__rolldown_runtime__ = realRuntime;
|
|
7
|
+
vi.restoreAllMocks();
|
|
8
|
+
});
|
|
9
|
+
const setRuntime = (runtime) => {
|
|
10
|
+
;
|
|
11
|
+
globalThis.__rolldown_runtime__ = runtime;
|
|
12
|
+
};
|
|
13
|
+
describe("hmrImport (native)", () => {
|
|
14
|
+
it("rejects when no runtime is present", async () => {
|
|
15
|
+
setRuntime(void 0);
|
|
16
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow(
|
|
17
|
+
"HMR import not supported on native"
|
|
18
|
+
);
|
|
19
|
+
});
|
|
20
|
+
it("rejects when loadExports is missing", async () => {
|
|
21
|
+
setRuntime({});
|
|
22
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow(
|
|
23
|
+
"HMR import not supported on native"
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
it("resolves with the runtime exports and strips ./ and / prefixes", async () => {
|
|
27
|
+
const exports = { default: () => null };
|
|
28
|
+
const loadExports = vi.fn(() => exports);
|
|
29
|
+
setRuntime({ loadExports });
|
|
30
|
+
await expect(hmrImport("./foo.tsx")).resolves.toBe(exports);
|
|
31
|
+
await expect(hmrImport("/foo.tsx")).resolves.toBe(exports);
|
|
32
|
+
await expect(hmrImport("foo.tsx")).resolves.toBe(exports);
|
|
33
|
+
expect(loadExports).toHaveBeenNthCalledWith(1, "foo.tsx");
|
|
34
|
+
expect(loadExports).toHaveBeenNthCalledWith(2, "foo.tsx");
|
|
35
|
+
expect(loadExports).toHaveBeenNthCalledWith(3, "foo.tsx");
|
|
36
|
+
});
|
|
37
|
+
it("rejects when loadExports returns null", async () => {
|
|
38
|
+
setRuntime({ loadExports: () => null });
|
|
39
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("no exports for foo.tsx");
|
|
40
|
+
});
|
|
41
|
+
it("rejects when loadExports throws", async () => {
|
|
42
|
+
const boom = new Error("boom");
|
|
43
|
+
setRuntime({
|
|
44
|
+
loadExports: () => {
|
|
45
|
+
throw boom;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
await expect(hmrImport("foo.tsx")).rejects.toBe(boom);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=hmrImport.native.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/router/hmrImport.native.test.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,UAAU,QAAQ,IAAI,UAAU;AACpD,SAAS,iBAAiB;AAE1B,MAAM,cAAe,WAAmB;AACxC,UAAU,MAAM;AACd;AAAC,EAAC,WAAmB,uBAAuB;AAC5C,KAAG,gBAAgB;AACrB,CAAC;AACD,MAAM,aAAa,CAAC,YAAqB;AACvC;AAAC,EAAC,WAAmB,uBAAuB;AAC9C;AAEA,SAAS,sBAAsB,MAAM;AACnC,KAAG,sCAAsC,YAAY;AACnD,eAAW,MAAS;AACpB,UAAM,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ;AAAA,MACzC;AAAA,IACF;AAAA,EACF,CAAC;AAED,KAAG,uCAAuC,YAAY;AACpD,eAAW,CAAC,CAAC;AACb,UAAM,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ;AAAA,MACzC;AAAA,IACF;AAAA,EACF,CAAC;AAED,KAAG,kEAAkE,YAAY;AAC/E,UAAM,UAAU,EAAE,SAAS,MAAM,KAAK;AACtC,UAAM,cAAc,GAAG,GAAG,MAAM,OAAO;AACvC,eAAW,EAAE,YAAY,CAAC;AAE1B,UAAM,OAAO,UAAU,WAAW,CAAC,EAAE,SAAS,KAAK,OAAO;AAC1D,UAAM,OAAO,UAAU,UAAU,CAAC,EAAE,SAAS,KAAK,OAAO;AACzD,UAAM,OAAO,UAAU,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO;AACxD,WAAO,WAAW,EAAE,wBAAwB,GAAG,SAAS;AACxD,WAAO,WAAW,EAAE,wBAAwB,GAAG,SAAS;AACxD,WAAO,WAAW,EAAE,wBAAwB,GAAG,SAAS;AAAA,EAC1D,CAAC;AAED,KAAG,yCAAyC,YAAY;AACtD,eAAW,EAAE,aAAa,MAAM,KAAK,CAAC;AACtC,UAAM,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,QAAQ,wBAAwB;AAAA,EAC7E,CAAC;AAED,KAAG,mCAAmC,YAAY;AAChD,UAAM,OAAO,IAAI,MAAM,MAAM;AAC7B,eAAW;AAAA,MACT,aAAa,MAAM;AACjB,cAAM;AAAA,MACR;AAAA,IACF,CAAC;AACD,UAAM,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,KAAK,IAAI;AAAA,EACtD,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { hmrImport } from "./hmrImport.native.mjs";
|
|
3
|
+
const realRuntime = globalThis.__rolldown_runtime__;
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
;
|
|
6
|
+
globalThis.__rolldown_runtime__ = realRuntime;
|
|
7
|
+
vi.restoreAllMocks();
|
|
8
|
+
});
|
|
9
|
+
const setRuntime = runtime => {
|
|
10
|
+
;
|
|
11
|
+
globalThis.__rolldown_runtime__ = runtime;
|
|
12
|
+
};
|
|
13
|
+
describe("hmrImport (native)", () => {
|
|
14
|
+
it("rejects when no runtime is present", async () => {
|
|
15
|
+
setRuntime(void 0);
|
|
16
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("HMR import not supported on native");
|
|
17
|
+
});
|
|
18
|
+
it("rejects when loadExports is missing", async () => {
|
|
19
|
+
setRuntime({});
|
|
20
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("HMR import not supported on native");
|
|
21
|
+
});
|
|
22
|
+
it("resolves with the runtime exports and strips ./ and / prefixes", async () => {
|
|
23
|
+
const exports = {
|
|
24
|
+
default: () => null
|
|
25
|
+
};
|
|
26
|
+
const loadExports = vi.fn(() => exports);
|
|
27
|
+
setRuntime({
|
|
28
|
+
loadExports
|
|
29
|
+
});
|
|
30
|
+
await expect(hmrImport("./foo.tsx")).resolves.toBe(exports);
|
|
31
|
+
await expect(hmrImport("/foo.tsx")).resolves.toBe(exports);
|
|
32
|
+
await expect(hmrImport("foo.tsx")).resolves.toBe(exports);
|
|
33
|
+
expect(loadExports).toHaveBeenNthCalledWith(1, "foo.tsx");
|
|
34
|
+
expect(loadExports).toHaveBeenNthCalledWith(2, "foo.tsx");
|
|
35
|
+
expect(loadExports).toHaveBeenNthCalledWith(3, "foo.tsx");
|
|
36
|
+
});
|
|
37
|
+
it("rejects when loadExports returns null", async () => {
|
|
38
|
+
setRuntime({
|
|
39
|
+
loadExports: () => null
|
|
40
|
+
});
|
|
41
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("no exports for foo.tsx");
|
|
42
|
+
});
|
|
43
|
+
it("rejects when loadExports throws", async () => {
|
|
44
|
+
const boom = new Error("boom");
|
|
45
|
+
setRuntime({
|
|
46
|
+
loadExports: () => {
|
|
47
|
+
throw boom;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
await expect(hmrImport("foo.tsx")).rejects.toBe(boom);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=hmrImport.native.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","it","vi","hmrImport","realRuntime","globalThis","__rolldown_runtime__","restoreAllMocks","setRuntime","runtime","rejects","toThrow","exports","default","loadExports","fn","resolves","toBe","toHaveBeenNthCalledWith","boom","Error"],"sources":["../../../src/router/hmrImport.native.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AACpD,SAASC,SAAA,QAAiB;AAE1B,MAAMC,WAAA,GAAeC,UAAA,CAAmBC,oBAAA;AACxCR,SAAA,CAAU,MAAM;EACd;EAAEO,UAAA,CAAmBC,oBAAA,GAAuBF,WAAA;EAC5CF,EAAA,CAAGK,eAAA,CAAgB;AACrB,CAAC;AACD,MAAMC,UAAA,GAAcC,OAAA,IAAqB;EACvC;EAAEJ,UAAA,CAAmBC,oBAAA,GAAuBG,OAAA;AAC9C;AAEAV,QAAA,CAAS,sBAAsB,MAAM;EACnCE,EAAA,CAAG,sCAAsC,YAAY;IACnDO,UAAA,CAAW,MAAS;IACpB,MAAMR,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEO,OAAA,CAAQC,OAAA,CACzC,oCACF;EACF,CAAC;EAEDV,EAAA,CAAG,uCAAuC,YAAY;IACpDO,UAAA,CAAW,CAAC,CAAC;IACb,MAAMR,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEO,OAAA,CAAQC,OAAA,CACzC,oCACF;EACF,CAAC;EAEDV,EAAA,CAAG,kEAAkE,YAAY;IAC/E,MAAMW,OAAA,GAAU;MAAEC,OAAA,EAASA,CAAA,KAAM;IAAK;IACtC,MAAMC,WAAA,GAAcZ,EAAA,CAAGa,EAAA,CAAG,MAAMH,OAAO;IACvCJ,UAAA,CAAW;MAAEM;IAAY,CAAC;IAE1B,MAAMd,MAAA,CAAOG,SAAA,CAAU,WAAW,CAAC,EAAEa,QAAA,CAASC,IAAA,CAAKL,OAAO;IAC1D,MAAMZ,MAAA,CAAOG,SAAA,CAAU,UAAU,CAAC,EAAEa,QAAA,CAASC,IAAA,CAAKL,OAAO;IACzD,MAAMZ,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEa,QAAA,CAASC,IAAA,CAAKL,OAAO;IACxDZ,MAAA,CAAOc,WAAW,EAAEI,uBAAA,CAAwB,GAAG,SAAS;IACxDlB,MAAA,CAAOc,WAAW,EAAEI,uBAAA,CAAwB,GAAG,SAAS;IACxDlB,MAAA,CAAOc,WAAW,EAAEI,uBAAA,CAAwB,GAAG,SAAS;EAC1D,CAAC;EAEDjB,EAAA,CAAG,yCAAyC,YAAY;IACtDO,UAAA,CAAW;MAAEM,WAAA,EAAaA,CAAA,KAAM;IAAK,CAAC;IACtC,MAAMd,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEO,OAAA,CAAQC,OAAA,CAAQ,wBAAwB;EAC7E,CAAC;EAEDV,EAAA,CAAG,mCAAmC,YAAY;IAChD,MAAMkB,IAAA,GAAO,IAAIC,KAAA,CAAM,MAAM;IAC7BZ,UAAA,CAAW;MACTM,WAAA,EAAaA,CAAA,KAAM;QACjB,MAAMK,IAAA;MACR;IACF,CAAC;IACD,MAAMnB,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEO,OAAA,CAAQO,IAAA,CAAKE,IAAI;EACtD,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { hmrImport } from "./hmrImport.native.native.js";
|
|
3
|
+
var realRuntime = globalThis.__rolldown_runtime__;
|
|
4
|
+
afterEach(function () {
|
|
5
|
+
;
|
|
6
|
+
globalThis.__rolldown_runtime__ = realRuntime;
|
|
7
|
+
vi.restoreAllMocks();
|
|
8
|
+
});
|
|
9
|
+
var setRuntime = function (runtime) {
|
|
10
|
+
;
|
|
11
|
+
globalThis.__rolldown_runtime__ = runtime;
|
|
12
|
+
};
|
|
13
|
+
describe("hmrImport (native)", function () {
|
|
14
|
+
it("rejects when no runtime is present", async function () {
|
|
15
|
+
setRuntime(void 0);
|
|
16
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("HMR import not supported on native");
|
|
17
|
+
});
|
|
18
|
+
it("rejects when loadExports is missing", async function () {
|
|
19
|
+
setRuntime({});
|
|
20
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("HMR import not supported on native");
|
|
21
|
+
});
|
|
22
|
+
it("resolves with the runtime exports and strips ./ and / prefixes", async function () {
|
|
23
|
+
var exports = {
|
|
24
|
+
default: function () {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var loadExports = vi.fn(function () {
|
|
29
|
+
return exports;
|
|
30
|
+
});
|
|
31
|
+
setRuntime({
|
|
32
|
+
loadExports
|
|
33
|
+
});
|
|
34
|
+
await expect(hmrImport("./foo.tsx")).resolves.toBe(exports);
|
|
35
|
+
await expect(hmrImport("/foo.tsx")).resolves.toBe(exports);
|
|
36
|
+
await expect(hmrImport("foo.tsx")).resolves.toBe(exports);
|
|
37
|
+
expect(loadExports).toHaveBeenNthCalledWith(1, "foo.tsx");
|
|
38
|
+
expect(loadExports).toHaveBeenNthCalledWith(2, "foo.tsx");
|
|
39
|
+
expect(loadExports).toHaveBeenNthCalledWith(3, "foo.tsx");
|
|
40
|
+
});
|
|
41
|
+
it("rejects when loadExports returns null", async function () {
|
|
42
|
+
setRuntime({
|
|
43
|
+
loadExports: function () {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
await expect(hmrImport("foo.tsx")).rejects.toThrow("no exports for foo.tsx");
|
|
48
|
+
});
|
|
49
|
+
it("rejects when loadExports throws", async function () {
|
|
50
|
+
var boom = new Error("boom");
|
|
51
|
+
setRuntime({
|
|
52
|
+
loadExports: function () {
|
|
53
|
+
throw boom;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
await expect(hmrImport("foo.tsx")).rejects.toBe(boom);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=hmrImport.native.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","it","vi","hmrImport","realRuntime","globalThis","__rolldown_runtime__","restoreAllMocks","setRuntime","runtime","rejects","toThrow","exports","default","loadExports","fn","resolves","toBe","toHaveBeenNthCalledWith","boom","Error"],"sources":["../../../src/router/hmrImport.native.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AACpD,SAASC,SAAA,QAAiB;AAE1B,IAAAC,WAAM,GAAAC,UAAe,CAAAC,oBAAmB;AACxCR,SAAA,CAAU,YAAM;EACd;EAAEO,UAAA,CAAmBC,oBAAA,GAAuBF,WAAA;EAC5CF,EAAA,CAAGK,eAAA,CAAgB;AACrB,CAAC;AACD,IAAAC,UAAM,YAAAA,CAAcC,OAAqB;EACvC;EAAEJ,UAAA,CAAmBC,oBAAA,GAAuBG,OAAA;AAC9C;AAEAV,QAAA,CAAS,sBAAsB,YAAM;EACnCE,EAAA,CAAG,sCAAsC,kBAAY;IACnDO,UAAA,CAAW,MAAS;IACpB,MAAMR,MAAA,CAAOG,SAAA,CAAU,SAAS,CAAC,EAAEO,OAAA,CAAQC,OAAA;EAAA;EACzCV,EACF;IACDO,UAAA;IAED,MAAGR,MAAA,CAAAG,SAAA,aAAAO,OAAuC,CAAAC,OAAA,qCAAY;EACpD;EACAV,EAAA,iEAA2C;IAAA,IACzCW,OAAA;MACFC,OAAA,WAAAA,CAAA;QACD;MAEE;IACD;IACA,IAAAC,WAAM,GAAAZ,EAAc,CAAAa,EAAG,aAAS;MAChC,OAAAH,OAAa;IAEb;IACAJ,UAAM;MACNM;IACA;IACA,MAAAd,MAAO,CAAAG,SAAa,eAAAa,QAAwB,CAAAC,IAAG,CAAAL,OAAS;IACxD,MAAAZ,MAAO,CAAAG,SAAa,cAAAa,QAAwB,CAAAC,IAAG,CAAAL,OAAS;IACzD,MAAAZ,MAAA,CAAAG,SAAA,aAAAa,QAAA,CAAAC,IAAA,CAAAL,OAAA;IAEDZ,MAAG,CAAAc,WAAA,EAAAI,uBAAyC,aAAY;IACtDlB,MAAA,CAAAc,WAAa,EAAAI,uBAAyB;IACtClB,MAAM,CAAAc,WAAO,EAAAI,uBAA8B,aAAQ;EACrD,CAAC;EAEDjB,EAAA,CAAG,uCAAmC,oBAAY;IAChDO,UAAM;MACNM,WAAW,WAAAA,CAAA;QACT,WAAa;MACX;IAAM,EACR;IACF,MAACd,MAAA,CAAAG,SAAA,aAAAO,OAAA,CAAAC,OAAA;EACD;EACFV,EAAC;IACF,IAAAkB,IAAA,OAAAC,KAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["subscribeRouteHmr","_onStoreChange","getRouteHmrEpoch"],"sources":["../../../src/router/routeHmr.ts"],"sourcesContent":[null],"mappings":"AAGO,MAAMA,iBAAA,GAAqBC,cAAA,IAA6C;EAC7E,OAAO,MAAM,CAAC;AAChB;AAEO,MAAMC,gBAAA,GAAmBA,CAAA,KAAM","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var routeHmrEpoch = 0;
|
|
2
|
+
var routeHmrListeners = /* @__PURE__ */new Set();
|
|
3
|
+
var subscribeRouteHmr = function (onStoreChange) {
|
|
4
|
+
routeHmrListeners.add(onStoreChange);
|
|
5
|
+
return function () {
|
|
6
|
+
routeHmrListeners.delete(onStoreChange);
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
var getRouteHmrEpoch = function () {
|
|
10
|
+
return routeHmrEpoch;
|
|
11
|
+
};
|
|
12
|
+
if (process.env.NODE_ENV === "development") {
|
|
13
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__ = function (id) {
|
|
14
|
+
try {
|
|
15
|
+
var routeCache = typeof window === "undefined" ? void 0 : window.__oneRouteCache;
|
|
16
|
+
if (typeof (routeCache === null || routeCache === void 0 ? void 0 : routeCache.clearFile) === "function") {
|
|
17
|
+
routeCache.clearFile(id);
|
|
18
|
+
}
|
|
19
|
+
} finally {
|
|
20
|
+
routeHmrEpoch++;
|
|
21
|
+
routeHmrListeners.forEach(function (listener) {
|
|
22
|
+
return listener();
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export { getRouteHmrEpoch, subscribeRouteHmr };
|
|
28
|
+
//# sourceMappingURL=routeHmr.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["routeHmrEpoch","routeHmrListeners","Set","subscribeRouteHmr","onStoreChange","add","delete","getRouteHmrEpoch","process","env","NODE_ENV","globalThis","__VXRN_ON_MODULE_UPDATED__","id","routeCache","window","__oneRouteCache","clearFile","forEach","listener"],"sources":["../../../src/router/routeHmr.native.ts"],"sourcesContent":[null],"mappings":"AAMA,IAAIA,aAAA,GAAgB;AACpB,IAAIC,iBAAA,GAAoB,mBAAIC,GAAA,CAAI;AACzB,IAAIC,iBAAA,GAAoB,SAAAA,CAASC,aAAA,EAAe;EACnDH,iBAAA,CAAkBI,GAAA,CAAID,aAAa;EACnC,OAAO,YAAW;IACdH,iBAAA,CAAkBK,MAAA,CAAOF,aAAa;EAC1C;AACJ;AACO,IAAIG,gBAAA,GAAmB,SAAAA,CAAA,EAAW;EACrC,OAAOP,aAAA;AACX;AACA,IAAIQ,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;EACxCC,UAAA,CAAWC,0BAAA,GAA6B,UAASC,EAAA,EAAI;IACjD,IAAI;MACA,IAAIC,UAAA,GAAa,OAAOC,MAAA,KAAW,cAAc,SAAYA,MAAA,CAAOC,eAAA;MACpE,IAAI,QAAQF,UAAA,KAAe,QAAQA,UAAA,KAAe,SAAS,SAASA,UAAA,CAAWG,SAAA,MAAe,YAAY;QACtGH,UAAA,CAAWG,SAAA,CAAUJ,EAAE;MAC3B;IACJ,UAAE;MACEb,aAAA;MACAC,iBAAA,CAAkBiB,OAAA,CAAQ,UAASC,QAAA,EAAU;QACzC,OAAOA,QAAA,CAAS;MACpB,CAAC;IACL;EACJ;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
describe("routeHmr.native", () => {
|
|
3
|
+
let routeHmr;
|
|
4
|
+
const realWindow = globalThis.window;
|
|
5
|
+
const realModuleUpdatedHook = globalThis.__VXRN_ON_MODULE_UPDATED__;
|
|
6
|
+
beforeEach(async () => {
|
|
7
|
+
vi.stubEnv("NODE_ENV", "development");
|
|
8
|
+
vi.resetModules();
|
|
9
|
+
routeHmr = await import("./routeHmr.native");
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
vi.unstubAllEnvs();
|
|
13
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__ = realModuleUpdatedHook;
|
|
14
|
+
globalThis.window = realWindow;
|
|
15
|
+
});
|
|
16
|
+
it("registers globalThis.__VXRN_ON_MODULE_UPDATED__ in development", () => {
|
|
17
|
+
expect(typeof globalThis.__VXRN_ON_MODULE_UPDATED__).toBe("function");
|
|
18
|
+
});
|
|
19
|
+
it("bumps the epoch and notifies subscribers, and stops after unsubscribe", () => {
|
|
20
|
+
const before = routeHmr.getRouteHmrEpoch();
|
|
21
|
+
const listener = vi.fn();
|
|
22
|
+
const unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
23
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
24
|
+
expect(routeHmr.getRouteHmrEpoch()).toBe(before + 1);
|
|
25
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
26
|
+
unsubscribe();
|
|
27
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
28
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
29
|
+
});
|
|
30
|
+
it("evicts the route cache for the updated file when window.__oneRouteCache is present", () => {
|
|
31
|
+
const clearFile = vi.fn();
|
|
32
|
+
globalThis.window = { __oneRouteCache: { clearFile } };
|
|
33
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/_layout.tsx");
|
|
34
|
+
expect(clearFile).toHaveBeenCalledWith("app/_layout.tsx");
|
|
35
|
+
});
|
|
36
|
+
it("does not throw when window / route cache is absent", () => {
|
|
37
|
+
;
|
|
38
|
+
globalThis.window = void 0;
|
|
39
|
+
expect(() => globalThis.__VXRN_ON_MODULE_UPDATED__("x.tsx")).not.toThrow();
|
|
40
|
+
});
|
|
41
|
+
it("still notifies subscribers when route-cache eviction throws", () => {
|
|
42
|
+
const listener = vi.fn();
|
|
43
|
+
const unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
44
|
+
globalThis.window = {
|
|
45
|
+
__oneRouteCache: {
|
|
46
|
+
clearFile() {
|
|
47
|
+
throw new Error("cache eviction failed");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
expect(() => globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx")).toThrow(
|
|
52
|
+
"cache eviction failed"
|
|
53
|
+
);
|
|
54
|
+
expect(listener).toHaveBeenCalledOnce();
|
|
55
|
+
unsubscribe();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=routeHmr.native.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/router/routeHmr.native.test.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,WAAW,YAAY,UAAU,QAAQ,IAAI,UAAU;AAIhE,SAAS,mBAAmB,MAAM;AAChC,MAAI;AACJ,QAAM,aAAc,WAAmB;AACvC,QAAM,wBAAwB,WAAW;AAEzC,aAAW,YAAY;AAGrB,OAAG,QAAQ,YAAY,aAAa;AACpC,OAAG,aAAa;AAChB,eAAW,MAAM,OAAO,mBAAmB;AAAA,EAC7C,CAAC;AAED,YAAU,MAAM;AACd,OAAG,cAAc;AACjB,eAAW,6BAA6B;AACvC,IAAC,WAAmB,SAAS;AAAA,EAChC,CAAC;AAED,KAAG,kEAAkE,MAAM;AACzE,WAAO,OAAO,WAAW,0BAA0B,EAAE,KAAK,UAAU;AAAA,EACtE,CAAC;AAED,KAAG,yEAAyE,MAAM;AAChF,UAAM,SAAS,SAAS,iBAAiB;AACzC,UAAM,WAAW,GAAG,GAAG;AACvB,UAAM,cAAc,SAAS,kBAAkB,QAAQ;AAEvD,eAAW,2BAA4B,eAAe;AACtD,WAAO,SAAS,iBAAiB,CAAC,EAAE,KAAK,SAAS,CAAC;AACnD,WAAO,QAAQ,EAAE,sBAAsB,CAAC;AAExC,gBAAY;AACZ,eAAW,2BAA4B,eAAe;AACtD,WAAO,QAAQ,EAAE,sBAAsB,CAAC;AAAA,EAC1C,CAAC;AAED,KAAG,sFAAsF,MAAM;AAC7F,UAAM,YAAY,GAAG,GAAG;AACvB,IAAC,WAAmB,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE;AAC/D,eAAW,2BAA4B,iBAAiB;AACxD,WAAO,SAAS,EAAE,qBAAqB,iBAAiB;AAAA,EAC1D,CAAC;AAED,KAAG,sDAAsD,MAAM;AAC7D;AAAC,IAAC,WAAmB,SAAS;AAC9B,WAAO,MAAM,WAAW,2BAA4B,OAAO,CAAC,EAAE,IAAI,QAAQ;AAAA,EAC5E,CAAC;AAED,KAAG,+DAA+D,MAAM;AACtE,UAAM,WAAW,GAAG,GAAG;AACvB,UAAM,cAAc,SAAS,kBAAkB,QAAQ;AACtD,IAAC,WAAmB,SAAS;AAAA,MAC5B,iBAAiB;AAAA,QACf,YAAY;AACV,gBAAM,IAAI,MAAM,uBAAuB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM,WAAW,2BAA4B,eAAe,CAAC,EAAE;AAAA,MACpE;AAAA,IACF;AACA,WAAO,QAAQ,EAAE,qBAAqB;AACtC,gBAAY;AAAA,EACd,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
describe("routeHmr.native", () => {
|
|
3
|
+
let routeHmr;
|
|
4
|
+
const realWindow = globalThis.window;
|
|
5
|
+
const realModuleUpdatedHook = globalThis.__VXRN_ON_MODULE_UPDATED__;
|
|
6
|
+
beforeEach(async () => {
|
|
7
|
+
vi.stubEnv("NODE_ENV", "development");
|
|
8
|
+
vi.resetModules();
|
|
9
|
+
routeHmr = await import("./routeHmr.native.mjs");
|
|
10
|
+
});
|
|
11
|
+
afterEach(() => {
|
|
12
|
+
vi.unstubAllEnvs();
|
|
13
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__ = realModuleUpdatedHook;
|
|
14
|
+
globalThis.window = realWindow;
|
|
15
|
+
});
|
|
16
|
+
it("registers globalThis.__VXRN_ON_MODULE_UPDATED__ in development", () => {
|
|
17
|
+
expect(typeof globalThis.__VXRN_ON_MODULE_UPDATED__).toBe("function");
|
|
18
|
+
});
|
|
19
|
+
it("bumps the epoch and notifies subscribers, and stops after unsubscribe", () => {
|
|
20
|
+
const before = routeHmr.getRouteHmrEpoch();
|
|
21
|
+
const listener = vi.fn();
|
|
22
|
+
const unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
23
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
24
|
+
expect(routeHmr.getRouteHmrEpoch()).toBe(before + 1);
|
|
25
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
26
|
+
unsubscribe();
|
|
27
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
28
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
29
|
+
});
|
|
30
|
+
it("evicts the route cache for the updated file when window.__oneRouteCache is present", () => {
|
|
31
|
+
const clearFile = vi.fn();
|
|
32
|
+
globalThis.window = {
|
|
33
|
+
__oneRouteCache: {
|
|
34
|
+
clearFile
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/_layout.tsx");
|
|
38
|
+
expect(clearFile).toHaveBeenCalledWith("app/_layout.tsx");
|
|
39
|
+
});
|
|
40
|
+
it("does not throw when window / route cache is absent", () => {
|
|
41
|
+
;
|
|
42
|
+
globalThis.window = void 0;
|
|
43
|
+
expect(() => globalThis.__VXRN_ON_MODULE_UPDATED__("x.tsx")).not.toThrow();
|
|
44
|
+
});
|
|
45
|
+
it("still notifies subscribers when route-cache eviction throws", () => {
|
|
46
|
+
const listener = vi.fn();
|
|
47
|
+
const unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
48
|
+
globalThis.window = {
|
|
49
|
+
__oneRouteCache: {
|
|
50
|
+
clearFile() {
|
|
51
|
+
throw new Error("cache eviction failed");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
expect(() => globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx")).toThrow("cache eviction failed");
|
|
56
|
+
expect(listener).toHaveBeenCalledOnce();
|
|
57
|
+
unsubscribe();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=routeHmr.native.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","beforeEach","describe","expect","it","vi","routeHmr","realWindow","globalThis","window","realModuleUpdatedHook","__VXRN_ON_MODULE_UPDATED__","stubEnv","resetModules","unstubAllEnvs","toBe","before","getRouteHmrEpoch","listener","fn","unsubscribe","subscribeRouteHmr","toHaveBeenCalledTimes","clearFile","__oneRouteCache","toHaveBeenCalledWith","not","toThrow","Error","toHaveBeenCalledOnce"],"sources":["../../../src/router/routeHmr.native.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAIhEH,QAAA,CAAS,mBAAmB,MAAM;EAChC,IAAII,QAAA;EACJ,MAAMC,UAAA,GAAcC,UAAA,CAAmBC,MAAA;EACvC,MAAMC,qBAAA,GAAwBF,UAAA,CAAWG,0BAAA;EAEzCV,UAAA,CAAW,YAAY;IAGrBI,EAAA,CAAGO,OAAA,CAAQ,YAAY,aAAa;IACpCP,EAAA,CAAGQ,YAAA,CAAa;IAChBP,QAAA,GAAW,MAAM,OAAO,uBAAmB;EAC7C,CAAC;EAEDN,SAAA,CAAU,MAAM;IACdK,EAAA,CAAGS,aAAA,CAAc;IACjBN,UAAA,CAAWG,0BAAA,GAA6BD,qBAAA;IACtCF,UAAA,CAAmBC,MAAA,GAASF,UAAA;EAChC,CAAC;EAEDH,EAAA,CAAG,kEAAkE,MAAM;IACzED,MAAA,CAAO,OAAOK,UAAA,CAAWG,0BAA0B,EAAEI,IAAA,CAAK,UAAU;EACtE,CAAC;EAEDX,EAAA,CAAG,yEAAyE,MAAM;IAChF,MAAMY,MAAA,GAASV,QAAA,CAASW,gBAAA,CAAiB;IACzC,MAAMC,QAAA,GAAWb,EAAA,CAAGc,EAAA,CAAG;IACvB,MAAMC,WAAA,GAAcd,QAAA,CAASe,iBAAA,CAAkBH,QAAQ;IAEvDV,UAAA,CAAWG,0BAAA,CAA4B,eAAe;IACtDR,MAAA,CAAOG,QAAA,CAASW,gBAAA,CAAiB,CAAC,EAAEF,IAAA,CAAKC,MAAA,GAAS,CAAC;IACnDb,MAAA,CAAOe,QAAQ,EAAEI,qBAAA,CAAsB,CAAC;IAExCF,WAAA,CAAY;IACZZ,UAAA,CAAWG,0BAAA,CAA4B,eAAe;IACtDR,MAAA,CAAOe,QAAQ,EAAEI,qBAAA,CAAsB,CAAC;EAC1C,CAAC;EAEDlB,EAAA,CAAG,sFAAsF,MAAM;IAC7F,MAAMmB,SAAA,GAAYlB,EAAA,CAAGc,EAAA,CAAG;IACtBX,UAAA,CAAmBC,MAAA,GAAS;MAAEe,eAAA,EAAiB;QAAED;MAAU;IAAE;IAC/Df,UAAA,CAAWG,0BAAA,CAA4B,iBAAiB;IACxDR,MAAA,CAAOoB,SAAS,EAAEE,oBAAA,CAAqB,iBAAiB;EAC1D,CAAC;EAEDrB,EAAA,CAAG,sDAAsD,MAAM;IAC7D;IAAEI,UAAA,CAAmBC,MAAA,GAAS;IAC9BN,MAAA,CAAO,MAAMK,UAAA,CAAWG,0BAAA,CAA4B,OAAO,CAAC,EAAEe,GAAA,CAAIC,OAAA,CAAQ;EAC5E,CAAC;EAEDvB,EAAA,CAAG,+DAA+D,MAAM;IACtE,MAAMc,QAAA,GAAWb,EAAA,CAAGc,EAAA,CAAG;IACvB,MAAMC,WAAA,GAAcd,QAAA,CAASe,iBAAA,CAAkBH,QAAQ;IACrDV,UAAA,CAAmBC,MAAA,GAAS;MAC5Be,eAAA,EAAiB;QACfD,UAAA,EAAY;UACV,MAAM,IAAIK,KAAA,CAAM,uBAAuB;QACzC;MACF;IACF;IAEAzB,MAAA,CAAO,MAAMK,UAAA,CAAWG,0BAAA,CAA4B,eAAe,CAAC,EAAEgB,OAAA,CACpE,uBACF;IACAxB,MAAA,CAAOe,QAAQ,EAAEW,oBAAA,CAAqB;IACtCT,WAAA,CAAY;EACd,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
function _type_of(obj) {
|
|
3
|
+
"@swc/helpers - typeof";
|
|
4
|
+
|
|
5
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
6
|
+
}
|
|
7
|
+
describe("routeHmr.native", function () {
|
|
8
|
+
var routeHmr;
|
|
9
|
+
var realWindow = globalThis.window;
|
|
10
|
+
var realModuleUpdatedHook = globalThis.__VXRN_ON_MODULE_UPDATED__;
|
|
11
|
+
beforeEach(async function () {
|
|
12
|
+
vi.stubEnv("NODE_ENV", "development");
|
|
13
|
+
vi.resetModules();
|
|
14
|
+
routeHmr = await import("./routeHmr.native.native.js");
|
|
15
|
+
});
|
|
16
|
+
afterEach(function () {
|
|
17
|
+
vi.unstubAllEnvs();
|
|
18
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__ = realModuleUpdatedHook;
|
|
19
|
+
globalThis.window = realWindow;
|
|
20
|
+
});
|
|
21
|
+
it("registers globalThis.__VXRN_ON_MODULE_UPDATED__ in development", function () {
|
|
22
|
+
expect(_type_of(globalThis.__VXRN_ON_MODULE_UPDATED__)).toBe("function");
|
|
23
|
+
});
|
|
24
|
+
it("bumps the epoch and notifies subscribers, and stops after unsubscribe", function () {
|
|
25
|
+
var before = routeHmr.getRouteHmrEpoch();
|
|
26
|
+
var listener = vi.fn();
|
|
27
|
+
var unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
28
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
29
|
+
expect(routeHmr.getRouteHmrEpoch()).toBe(before + 1);
|
|
30
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
31
|
+
unsubscribe();
|
|
32
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
33
|
+
expect(listener).toHaveBeenCalledTimes(1);
|
|
34
|
+
});
|
|
35
|
+
it("evicts the route cache for the updated file when window.__oneRouteCache is present", function () {
|
|
36
|
+
var clearFile = vi.fn();
|
|
37
|
+
globalThis.window = {
|
|
38
|
+
__oneRouteCache: {
|
|
39
|
+
clearFile
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
globalThis.__VXRN_ON_MODULE_UPDATED__("app/_layout.tsx");
|
|
43
|
+
expect(clearFile).toHaveBeenCalledWith("app/_layout.tsx");
|
|
44
|
+
});
|
|
45
|
+
it("does not throw when window / route cache is absent", function () {
|
|
46
|
+
;
|
|
47
|
+
globalThis.window = void 0;
|
|
48
|
+
expect(function () {
|
|
49
|
+
return globalThis.__VXRN_ON_MODULE_UPDATED__("x.tsx");
|
|
50
|
+
}).not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
it("still notifies subscribers when route-cache eviction throws", function () {
|
|
53
|
+
var listener = vi.fn();
|
|
54
|
+
var unsubscribe = routeHmr.subscribeRouteHmr(listener);
|
|
55
|
+
globalThis.window = {
|
|
56
|
+
__oneRouteCache: {
|
|
57
|
+
clearFile() {
|
|
58
|
+
throw new Error("cache eviction failed");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
expect(function () {
|
|
63
|
+
return globalThis.__VXRN_ON_MODULE_UPDATED__("app/index.tsx");
|
|
64
|
+
}).toThrow("cache eviction failed");
|
|
65
|
+
expect(listener).toHaveBeenCalledOnce();
|
|
66
|
+
unsubscribe();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=routeHmr.native.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","beforeEach","describe","expect","it","vi","_type_of","obj","Symbol","constructor","routeHmr","realWindow","globalThis","window","realModuleUpdatedHook","__VXRN_ON_MODULE_UPDATED__","stubEnv","resetModules","unstubAllEnvs","toBe","before","getRouteHmrEpoch","listener","fn","unsubscribe","subscribeRouteHmr","toHaveBeenCalledTimes","clearFile","__oneRouteCache","toHaveBeenCalledWith","not","toThrow","Error"],"sources":["../../../src/router/routeHmr.native.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAIhE,SAASC,SAAAC,GAAA;EACP,uBAAI;;EACJ,OAAMA,GAAA,WAAcC,MAAA,KAAmB,eAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACvC;AAEAL,QAAA,kBAAuB;EAGrB,IAAAQ,QAAG;EACH,IAAAC,UAAG,GAAAC,UAAa,CAAAC,MAAA;EAChB,IAAAC,qBAAiB,GAAOF,UAAA,CAAAG,0BAAmB;EAC7Cd,UAAC;IAEDI,EAAA,CAAAW,OAAU,WAAM;IACdX,EAAA,CAAGY,YAAA,EAAc;IACjBP,QAAA,GAAW,0CAA6B;EACvC,EAAC;EACJV,SAAC;IAEDK,EAAG,CAAAa,aAAA;IACDN,UAAO,CAAAG,0BAAkB,GAAAD,qBAAiC;IAC3DF,UAAA,CAAAC,MAAA,GAAAF,UAAA;EAED;EACEP,EAAA,iEAAyC;IACzCD,MAAM,CAAAG,QAAA,CAAAM,UAAiB,CAAAG,0BAAA,GAAAI,IAAA;EACvB;EAEAf,EAAA,wEAAsD;IACtD,IAAAgB,MAAO,GAAAV,QAAS,CAAAW,gBAAoB;IACpC,IAAAC,QAAO,GAAQjB,EAAE,CAAAkB,EAAA;IAEjB,IAAAC,WAAY,GAAAd,QAAA,CAAAe,iBAAA,CAAAH,QAAA;IACZV,UAAA,CAAWG,0BAAA,CAA4B,eAAe;IACtDZ,MAAA,CAAOO,QAAQ,CAAAW,gBAAE,IAAAF,IAAuB,CAAAC,MAAA;IACzCjB,MAAA,CAAAmB,QAAA,EAAAI,qBAAA;IAEDF,WAAG;IACDZ,UAAM,CAAAG,0BAAkB;IACtBZ,MAAA,CAAAmB,QAAmB,EAAAI,qBAAW,CAAiB,EAAE;EACnD;EACAtB,EAAA,qFAAwD;IACzD,IAAAuB,SAAA,GAAAtB,EAAA,CAAAkB,EAAA;IAEDX,UAAG,CAAAC,MAAA;MACDe,eAAA;QAAED;MACF;IACD;IAEDf,UAAG,CAAAG,0BAAA;IACDZ,MAAM,CAAAwB,SAAA,CAAW,CAAAE,oBAAM;EACvB;EACCzB,EAAC,qDAA4B;IAAA;IACXQ,UACf,CAAAC,MAAY;IACVV,MAAA,aAAU;MAA6B,OACzCS,UAAA,CAAAG,0BAAA;IAAA,EACF,CAAAe,GAAA,CAAAC,OAAA;EAAA,EACF;EAEA3B,EAAA,8DAAoD,cAAkB;IAAA,IACpEkB,QAAA,GAAAjB,EAAA,CAAAkB,EAAA;IACF,IAAAC,WAAA,GAAAd,QAAA,CAAAe,iBAAA,CAAAH,QAAA;IACAV,UAAO,CAAAC,MAAU;MACjBe,eAAY;QACbD,UAAA;UACF,UAAAK,KAAA","ignoreList":[]}
|
|
@@ -220,6 +220,7 @@ function getQualifiedRouteComponent(value) {
|
|
|
220
220
|
return () => window.removeEventListener("one-hmr-update", handler);
|
|
221
221
|
}, []);
|
|
222
222
|
}
|
|
223
|
+
if (process.env.NODE_ENV === "development" && false) ;
|
|
223
224
|
const isSpaShell = useContext(SpaShellContext);
|
|
224
225
|
const matches = getRouteMatchesForProps();
|
|
225
226
|
if (isSpaShell && props.segment !== "") {
|