one 1.25.6 → 1.25.8
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/prebuild.cjs +2 -0
- package/dist/cjs/cli/prebuild.native.js +2 -0
- package/dist/cjs/cli/prebuild.native.js.map +1 -1
- package/dist/cjs/cli/prebuild.test.cjs +45 -0
- package/dist/cjs/cli/prebuild.test.native.js +54 -0
- package/dist/cjs/cli/prebuild.test.native.js.map +1 -0
- package/dist/cjs/createHandleRequest.cjs +5 -1
- package/dist/cjs/createHandleRequest.native.js +5 -1
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/createHandleRequest.test.cjs +59 -1
- package/dist/cjs/createHandleRequest.test.native.js +70 -0
- package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
- package/dist/cjs/router/diagnoseRouteLoadFailure.cjs +95 -0
- package/dist/cjs/router/diagnoseRouteLoadFailure.native.js +202 -0
- package/dist/cjs/router/diagnoseRouteLoadFailure.native.js.map +1 -0
- package/dist/cjs/router/useViteRoutes.cjs +6 -0
- package/dist/cjs/router/useViteRoutes.native.js +6 -0
- package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +0 -2
- package/dist/cjs/server/oneServe.native.js +0 -2
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.cjs +1 -1
- package/dist/cjs/server/workerHandler.native.js +1 -1
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.test.cjs +117 -0
- package/dist/cjs/server/workerHandler.test.native.js +137 -0
- package/dist/cjs/server/workerHandler.test.native.js.map +1 -0
- package/dist/cjs/views/ScrollBehavior.cjs +10 -6
- package/dist/cjs/views/ScrollBehavior.native.js +10 -6
- package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
- package/dist/cjs/views/ScrollBehavior.test.cjs +132 -0
- package/dist/cjs/views/ScrollBehavior.test.native.js +184 -0
- package/dist/cjs/views/ScrollBehavior.test.native.js.map +1 -0
- package/dist/esm/cli/prebuild.mjs +2 -0
- package/dist/esm/cli/prebuild.mjs.map +1 -1
- package/dist/esm/cli/prebuild.native.js +2 -0
- package/dist/esm/cli/prebuild.native.js.map +1 -1
- package/dist/esm/cli/prebuild.test.mjs +46 -0
- package/dist/esm/cli/prebuild.test.mjs.map +1 -0
- package/dist/esm/cli/prebuild.test.native.js +52 -0
- package/dist/esm/cli/prebuild.test.native.js.map +1 -0
- package/dist/esm/createHandleRequest.mjs +5 -2
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +5 -2
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/createHandleRequest.test.mjs +59 -1
- package/dist/esm/createHandleRequest.test.mjs.map +1 -1
- package/dist/esm/createHandleRequest.test.native.js +70 -0
- package/dist/esm/createHandleRequest.test.native.js.map +1 -1
- package/dist/esm/router/diagnoseRouteLoadFailure.mjs +69 -0
- package/dist/esm/router/diagnoseRouteLoadFailure.mjs.map +1 -0
- package/dist/esm/router/diagnoseRouteLoadFailure.native.js +173 -0
- package/dist/esm/router/diagnoseRouteLoadFailure.native.js.map +1 -0
- package/dist/esm/router/useViteRoutes.mjs +6 -0
- package/dist/esm/router/useViteRoutes.mjs.map +1 -1
- package/dist/esm/router/useViteRoutes.native.js +6 -0
- package/dist/esm/router/useViteRoutes.native.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +0 -2
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +0 -2
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/workerHandler.mjs +2 -2
- package/dist/esm/server/workerHandler.mjs.map +1 -1
- package/dist/esm/server/workerHandler.native.js +2 -2
- package/dist/esm/server/workerHandler.native.js.map +1 -1
- package/dist/esm/server/workerHandler.test.mjs +118 -0
- package/dist/esm/server/workerHandler.test.mjs.map +1 -0
- package/dist/esm/server/workerHandler.test.native.js +135 -0
- package/dist/esm/server/workerHandler.test.native.js.map +1 -0
- package/dist/esm/views/ScrollBehavior.mjs +10 -6
- package/dist/esm/views/ScrollBehavior.mjs.map +1 -1
- package/dist/esm/views/ScrollBehavior.native.js +10 -6
- package/dist/esm/views/ScrollBehavior.native.js.map +1 -1
- package/dist/esm/views/ScrollBehavior.test.mjs +109 -0
- package/dist/esm/views/ScrollBehavior.test.mjs.map +1 -0
- package/dist/esm/views/ScrollBehavior.test.native.js +158 -0
- package/dist/esm/views/ScrollBehavior.test.native.js.map +1 -0
- package/package.json +9 -9
- package/src/cli/prebuild.test.ts +48 -0
- package/src/cli/prebuild.ts +3 -0
- package/src/createHandleRequest.test.ts +55 -1
- package/src/createHandleRequest.ts +8 -1
- package/src/router/diagnoseRouteLoadFailure.ts +108 -0
- package/src/router/useViteRoutes.tsx +10 -0
- package/src/server/oneServe.ts +0 -2
- package/src/server/workerHandler.test.ts +125 -0
- package/src/server/workerHandler.ts +3 -2
- package/src/views/ScrollBehavior.test.tsx +137 -0
- package/src/views/ScrollBehavior.tsx +18 -8
- package/types/cli/prebuild.d.ts.map +1 -1
- package/types/cli/prebuild.test.d.ts +2 -0
- package/types/cli/prebuild.test.d.ts.map +1 -0
- package/types/createHandleRequest.d.ts +1 -0
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/router/diagnoseRouteLoadFailure.d.ts +14 -0
- package/types/router/diagnoseRouteLoadFailure.d.ts.map +1 -0
- package/types/router/useViteRoutes.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/server/workerHandler.d.ts.map +1 -1
- package/types/server/workerHandler.test.d.ts +2 -0
- package/types/server/workerHandler.test.d.ts.map +1 -0
- package/types/views/ScrollBehavior.d.ts.map +1 -1
- package/types/views/ScrollBehavior.test.d.ts +2 -0
- package/types/views/ScrollBehavior.test.d.ts.map +1 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createWorkerHandler } from "./workerHandler.mjs";
|
|
3
|
+
const pageRoute = {
|
|
4
|
+
file: "app/some-page.tsx",
|
|
5
|
+
page: "/some-page",
|
|
6
|
+
namedRegex: "^/some-page(?:/)?$",
|
|
7
|
+
urlPath: "/some-page",
|
|
8
|
+
urlCleanPath: "/some-page",
|
|
9
|
+
routeKeys: {},
|
|
10
|
+
type: "ssr",
|
|
11
|
+
middlewares: []
|
|
12
|
+
};
|
|
13
|
+
const apiRoute = {
|
|
14
|
+
file: "app/api/status+api.ts",
|
|
15
|
+
page: "/api/status",
|
|
16
|
+
namedRegex: "^/api/status(?:/)?$",
|
|
17
|
+
urlPath: "/api/status",
|
|
18
|
+
urlCleanPath: "/api/status",
|
|
19
|
+
routeKeys: {},
|
|
20
|
+
type: "api",
|
|
21
|
+
middlewares: []
|
|
22
|
+
};
|
|
23
|
+
const buildInfo = {
|
|
24
|
+
constants: {
|
|
25
|
+
CACHE_KEY: "test"
|
|
26
|
+
},
|
|
27
|
+
routeToBuildInfo: {
|
|
28
|
+
[pageRoute.file]: {
|
|
29
|
+
type: "ssr",
|
|
30
|
+
path: pageRoute.page,
|
|
31
|
+
routeFile: pageRoute.file,
|
|
32
|
+
middlewares: [],
|
|
33
|
+
preloadPath: "",
|
|
34
|
+
cssPreloadPath: "",
|
|
35
|
+
loaderPath: "",
|
|
36
|
+
cleanPath: pageRoute.page,
|
|
37
|
+
htmlPath: "",
|
|
38
|
+
clientJsPath: "",
|
|
39
|
+
serverJsPath: "",
|
|
40
|
+
params: {},
|
|
41
|
+
preloads: [],
|
|
42
|
+
css: [],
|
|
43
|
+
layoutCSS: []
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
pathToRoute: {},
|
|
47
|
+
routeMap: {},
|
|
48
|
+
manifest: {
|
|
49
|
+
pageRoutes: [pageRoute],
|
|
50
|
+
apiRoutes: [apiRoute],
|
|
51
|
+
allRoutes: [pageRoute, apiRoute]
|
|
52
|
+
},
|
|
53
|
+
preloads: {},
|
|
54
|
+
cssPreloads: {},
|
|
55
|
+
loaders: {}
|
|
56
|
+
};
|
|
57
|
+
const lazyRoutes = {
|
|
58
|
+
serverEntry: async () => ({
|
|
59
|
+
default: {
|
|
60
|
+
render: () => "<html></html>"
|
|
61
|
+
}
|
|
62
|
+
}),
|
|
63
|
+
pages: {
|
|
64
|
+
[pageRoute.file]: async () => ({})
|
|
65
|
+
},
|
|
66
|
+
api: {
|
|
67
|
+
[apiRoute.page]: async () => ({
|
|
68
|
+
HEAD: () => new Response(null, {
|
|
69
|
+
status: 204
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
},
|
|
73
|
+
middlewares: {}
|
|
74
|
+
};
|
|
75
|
+
function createHandler() {
|
|
76
|
+
vi.stubEnv("ONE_BUFFERED_SSR", "1");
|
|
77
|
+
return createWorkerHandler({
|
|
78
|
+
oneOptions: {
|
|
79
|
+
web: {
|
|
80
|
+
defaultRenderMode: "ssr"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
buildInfo,
|
|
84
|
+
lazyRoutes
|
|
85
|
+
}).handleRequest;
|
|
86
|
+
}
|
|
87
|
+
afterEach(() => {
|
|
88
|
+
vi.unstubAllEnvs();
|
|
89
|
+
});
|
|
90
|
+
describe("createWorkerHandler", () => {
|
|
91
|
+
it("answers HEAD page requests exactly like GET", async () => {
|
|
92
|
+
const handleRequest = createHandler();
|
|
93
|
+
const get = await handleRequest(new Request("https://example.com/some-page"));
|
|
94
|
+
const head = await handleRequest(new Request("https://example.com/some-page", {
|
|
95
|
+
method: "HEAD"
|
|
96
|
+
}));
|
|
97
|
+
if (!(get instanceof Response) || !(head instanceof Response)) {
|
|
98
|
+
throw new Error("expected both GET and HEAD to return a Response");
|
|
99
|
+
}
|
|
100
|
+
expect(get.status).toBe(200);
|
|
101
|
+
expect(head.status).toBe(get.status);
|
|
102
|
+
expect(head.headers.get("content-type")).toBe(get.headers.get("content-type"));
|
|
103
|
+
});
|
|
104
|
+
it("does not route POST requests to page handlers", async () => {
|
|
105
|
+
const response = await createHandler()(new Request("https://example.com/some-page", {
|
|
106
|
+
method: "POST"
|
|
107
|
+
}));
|
|
108
|
+
expect(response).toBeNull();
|
|
109
|
+
});
|
|
110
|
+
it("continues routing HEAD requests to API handlers", async () => {
|
|
111
|
+
const response = await createHandler()(new Request("https://example.com/api/status", {
|
|
112
|
+
method: "HEAD"
|
|
113
|
+
}));
|
|
114
|
+
expect(response).toBeInstanceOf(Response);
|
|
115
|
+
expect(response?.status).toBe(204);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=workerHandler.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","it","vi","createWorkerHandler","pageRoute","file","page","namedRegex","urlPath","urlCleanPath","routeKeys","type","middlewares","apiRoute","buildInfo","constants","CACHE_KEY","routeToBuildInfo","path","routeFile","preloadPath","cssPreloadPath","loaderPath","cleanPath","htmlPath","clientJsPath","serverJsPath","params","preloads","css","layoutCSS","pathToRoute","routeMap","manifest","pageRoutes","apiRoutes","allRoutes","cssPreloads","loaders","lazyRoutes","serverEntry","default","render","pages","api","HEAD","Response","status","createHandler","stubEnv","oneOptions","web","defaultRenderMode","handleRequest","unstubAllEnvs","get","Request","head","method","Error","toBe","headers","response","toBeNull","toBeInstanceOf"],"sources":["../../../src/server/workerHandler.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createWorkerHandler } from "./workerHandler.native.js";
|
|
3
|
+
function _instanceof(left, right) {
|
|
4
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
5
|
+
return !!right[Symbol.hasInstance](left);
|
|
6
|
+
} else {
|
|
7
|
+
return left instanceof right;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
var pageRoute = {
|
|
11
|
+
file: "app/some-page.tsx",
|
|
12
|
+
page: "/some-page",
|
|
13
|
+
namedRegex: "^/some-page(?:/)?$",
|
|
14
|
+
urlPath: "/some-page",
|
|
15
|
+
urlCleanPath: "/some-page",
|
|
16
|
+
routeKeys: {},
|
|
17
|
+
type: "ssr",
|
|
18
|
+
middlewares: []
|
|
19
|
+
};
|
|
20
|
+
var apiRoute = {
|
|
21
|
+
file: "app/api/status+api.ts",
|
|
22
|
+
page: "/api/status",
|
|
23
|
+
namedRegex: "^/api/status(?:/)?$",
|
|
24
|
+
urlPath: "/api/status",
|
|
25
|
+
urlCleanPath: "/api/status",
|
|
26
|
+
routeKeys: {},
|
|
27
|
+
type: "api",
|
|
28
|
+
middlewares: []
|
|
29
|
+
};
|
|
30
|
+
var buildInfo = {
|
|
31
|
+
constants: {
|
|
32
|
+
CACHE_KEY: "test"
|
|
33
|
+
},
|
|
34
|
+
routeToBuildInfo: {
|
|
35
|
+
[pageRoute.file]: {
|
|
36
|
+
type: "ssr",
|
|
37
|
+
path: pageRoute.page,
|
|
38
|
+
routeFile: pageRoute.file,
|
|
39
|
+
middlewares: [],
|
|
40
|
+
preloadPath: "",
|
|
41
|
+
cssPreloadPath: "",
|
|
42
|
+
loaderPath: "",
|
|
43
|
+
cleanPath: pageRoute.page,
|
|
44
|
+
htmlPath: "",
|
|
45
|
+
clientJsPath: "",
|
|
46
|
+
serverJsPath: "",
|
|
47
|
+
params: {},
|
|
48
|
+
preloads: [],
|
|
49
|
+
css: [],
|
|
50
|
+
layoutCSS: []
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
pathToRoute: {},
|
|
54
|
+
routeMap: {},
|
|
55
|
+
manifest: {
|
|
56
|
+
pageRoutes: [pageRoute],
|
|
57
|
+
apiRoutes: [apiRoute],
|
|
58
|
+
allRoutes: [pageRoute, apiRoute]
|
|
59
|
+
},
|
|
60
|
+
preloads: {},
|
|
61
|
+
cssPreloads: {},
|
|
62
|
+
loaders: {}
|
|
63
|
+
};
|
|
64
|
+
var lazyRoutes = {
|
|
65
|
+
serverEntry: async function () {
|
|
66
|
+
return {
|
|
67
|
+
default: {
|
|
68
|
+
render: function () {
|
|
69
|
+
return "<html></html>";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
pages: {
|
|
75
|
+
[pageRoute.file]: async function () {
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
api: {
|
|
80
|
+
[apiRoute.page]: async function () {
|
|
81
|
+
return {
|
|
82
|
+
HEAD: function () {
|
|
83
|
+
return new Response(null, {
|
|
84
|
+
status: 204
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
middlewares: {}
|
|
91
|
+
};
|
|
92
|
+
function createHandler() {
|
|
93
|
+
vi.stubEnv("ONE_BUFFERED_SSR", "1");
|
|
94
|
+
return createWorkerHandler({
|
|
95
|
+
oneOptions: {
|
|
96
|
+
web: {
|
|
97
|
+
defaultRenderMode: "ssr"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
buildInfo,
|
|
101
|
+
lazyRoutes
|
|
102
|
+
}).handleRequest;
|
|
103
|
+
}
|
|
104
|
+
afterEach(function () {
|
|
105
|
+
vi.unstubAllEnvs();
|
|
106
|
+
});
|
|
107
|
+
describe("createWorkerHandler", function () {
|
|
108
|
+
it("answers HEAD page requests exactly like GET", async function () {
|
|
109
|
+
var handleRequest = createHandler();
|
|
110
|
+
var get = await handleRequest(new Request("https://example.com/some-page"));
|
|
111
|
+
var head = await handleRequest(new Request("https://example.com/some-page", {
|
|
112
|
+
method: "HEAD"
|
|
113
|
+
}));
|
|
114
|
+
if (!_instanceof(get, Response) || !_instanceof(head, Response)) {
|
|
115
|
+
throw new Error("expected both GET and HEAD to return a Response");
|
|
116
|
+
}
|
|
117
|
+
expect(get.status).toBe(200);
|
|
118
|
+
expect(head.status).toBe(get.status);
|
|
119
|
+
expect(head.headers.get("content-type")).toBe(get.headers.get("content-type"));
|
|
120
|
+
});
|
|
121
|
+
it("does not route POST requests to page handlers", async function () {
|
|
122
|
+
var response = await createHandler()(new Request("https://example.com/some-page", {
|
|
123
|
+
method: "POST"
|
|
124
|
+
}));
|
|
125
|
+
expect(response).toBeNull();
|
|
126
|
+
});
|
|
127
|
+
it("continues routing HEAD requests to API handlers", async function () {
|
|
128
|
+
var response = await createHandler()(new Request("https://example.com/api/status", {
|
|
129
|
+
method: "HEAD"
|
|
130
|
+
}));
|
|
131
|
+
expect(response).toBeInstanceOf(Response);
|
|
132
|
+
expect(response === null || response === void 0 ? void 0 : response.status).toBe(204);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=workerHandler.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["afterEach","describe","expect","it","vi","createWorkerHandler","_instanceof","left","right","Symbol","hasInstance","pageRoute","file","page","namedRegex","urlPath","urlCleanPath","routeKeys","type","middlewares","apiRoute","buildInfo","constants","CACHE_KEY","routeToBuildInfo","path","routeFile","preloadPath","cssPreloadPath","loaderPath","cleanPath","htmlPath","clientJsPath","serverJsPath","params","preloads","css","layoutCSS","pathToRoute","routeMap","manifest","pageRoutes","apiRoutes","allRoutes","cssPreloads","loaders","lazyRoutes","serverEntry","default","render","pages","api","HEAD","Response","status","createHandler","stubEnv","oneOptions","web","defaultRenderMode","handleRequest"],"sources":["../../../src/server/workerHandler.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAEpD,SAASC,mBAAA,QAA4C;AAErD,SAAMC,WAAYA,CAAAC,IAAA,EAAAC,KAAA;EAChB,IAAAA,KAAM,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACN,OAAM,EAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EACN;IACA,OAASA,IAAA,YAAAC,KAAA;EACT;AAAc;AACF,IACZG,SAAM;EACNC,IAAA,qBAAc;EAChBC,IAAA;EAEAC,UAAM,sBAAW;EACfC,OAAM;EACNC,YAAM;EACNC,SAAA,GAAY;EACZC,IAAA,OAAS;EACTC,WAAA;AAAc;AACF,IACZC,QAAM;EACNR,IAAA,yBAAc;EAChBC,IAAA;EAEAC,UAAM,uBAAY;EAChBC,OAAA,eAAa;EACbC,YAAA,eAAkB;EAAAC,SACf,IAAU;EAAOC,IAChB,OAAM;EAAAC,WACA;AAAU;AACK,IAAAE,SACrB;EAAcC,SACd;IAAaC,SACb;EAAgB;EACJC,gBACD;IAAU,CAAAb,SACrB,CAAAC,IAAU;MACVM,IAAA;MACAO,IAAA,EAAAd,SAAc,CAAAE,IAAA;MACda,SAAS,EAAAf,SAAA,CAAAC,IAAA;MACTO,WAAW;MACXQ,WAAM;MACNC,cAAY;MACdC,UAAA;MACFC,SAAA,EAAAnB,SAAA,CAAAE,IAAA;MACAkB,QAAA,EAAc;MACdC,YAAW;MACXC,YAAU;MACRC,MAAA,IAAY;MACZC,QAAA,EAAY;MACZC,GAAA;MACFC,SAAA;IACA;EACA;EACAC,WAAU;EACZC,QAAA;EAEAC,QAAM;IACJC,UAAA,EAAa,CACX9B,SAAS;IAET+B,SAAA,GACFtB,QAAA,CACA;IACEuB,SAAC,EAAU,CACbhC,SAAA,EACAS,QAAK;EAC2B;EACkBe,QAChD;EACFS,WAAA;EACAC,OAAA;AACF;AAEA,IAAAC,UAAS;EACPC,WAAW,iBAAAA,CAAA;IACX,OAAO;MACLC,OAAA;QACAC,MAAA,WAAAA,CAAA;UACA;QACC;MACL;IAEA;EACE;EACDC,KAAA;IAED,CAAAvC,SAAS,CAAAC,IAAA,qBAA6B;MACjC;IACD;EACA;EACAuC,GAAA;IAAmB,CAAA/B,QACb,CAAAP,IAAQ;MACd;QAEIuC,IAAE,WAAAA,CAAA,EAAe;UACnB,OAAU,IAAAC,QAAM;YAClBC,MAAA;UAIA,CAAO;QACP;MACA;IACD;EAED;EACEnC,WAAM;AAA+B;AAC4B,SACjEoC,cAAA;EAEAnD,EAAA,CAAAoD,OAAO,mBAAmB;EAC5B,OAACnD,mBAAA;IAEDoD,UAAG;MACDC,GAAA,EAAM;QACJC,iBAAY;MACd;IAEA;IACAtC,SAAO;IACRyB;EACF,GAAAc,aAAA","ignoreList":[]}
|
|
@@ -5,7 +5,6 @@ const KEY = "one-sr";
|
|
|
5
5
|
const GROUP_KEY = "one-sr-groups";
|
|
6
6
|
const getState = () => JSON.parse(sessionStorage.getItem(KEY) || "{}");
|
|
7
7
|
const getGroupState = () => JSON.parse(sessionStorage.getItem(GROUP_KEY) || "{}");
|
|
8
|
-
let isFirstLoad = true;
|
|
9
8
|
let activeGroups = /* @__PURE__ */new Set();
|
|
10
9
|
function registerScrollGroup(groupId) {
|
|
11
10
|
activeGroups.add(groupId);
|
|
@@ -16,7 +15,7 @@ function registerScrollGroup(groupId) {
|
|
|
16
15
|
function getGroupKey(pathname) {
|
|
17
16
|
let longestMatch = null;
|
|
18
17
|
for (const group of activeGroups) {
|
|
19
|
-
if (pathname.startsWith(group) && (!longestMatch || group.length > longestMatch.length)) {
|
|
18
|
+
if ((pathname === group || pathname.startsWith(`${group}/`)) && (!longestMatch || group.length > longestMatch.length)) {
|
|
20
19
|
longestMatch = group;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
@@ -72,6 +71,9 @@ function configure(props) {
|
|
|
72
71
|
return;
|
|
73
72
|
}
|
|
74
73
|
disable?.();
|
|
74
|
+
const initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
75
|
+
let isFirstStateChange = true;
|
|
76
|
+
previousPathname = window.location.pathname;
|
|
75
77
|
const popStateController = new AbortController();
|
|
76
78
|
window.addEventListener("popstate", () => {
|
|
77
79
|
didPop = true;
|
|
@@ -85,10 +87,12 @@ function configure(props) {
|
|
|
85
87
|
}
|
|
86
88
|
});
|
|
87
89
|
const disposeOnRootState = subscribeToRootState(state => {
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
if (isFirstStateChange) {
|
|
91
|
+
isFirstStateChange = false;
|
|
92
|
+
const currentLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
93
|
+
if (currentLocation === initialLocation) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
97
|
if (state.linkOptions?.scroll === false) {
|
|
94
98
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","
|
|
1
|
+
{"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","group","startsWith","length","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","initialLocation","search","hash","isFirstStateChange","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","currentLocation","linkOptions","scroll","currentPathname","scrollToHash","prevGroup","currentGroup","scrollGroup","abort","id","slice","el","document","getElementById","scrollIntoView","behavior","ScrollBehavior","process","env","VITE_ENVIRONMENT"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,6 @@ var getState = function () {
|
|
|
9
9
|
var getGroupState = function () {
|
|
10
10
|
return JSON.parse(sessionStorage.getItem(GROUP_KEY) || "{}");
|
|
11
11
|
};
|
|
12
|
-
var isFirstLoad = true;
|
|
13
12
|
var activeGroups = /* @__PURE__ */new Set();
|
|
14
13
|
function registerScrollGroup(groupId) {
|
|
15
14
|
activeGroups.add(groupId);
|
|
@@ -25,7 +24,7 @@ function getGroupKey(pathname) {
|
|
|
25
24
|
try {
|
|
26
25
|
for (var _iterator = activeGroups[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
27
26
|
var group = _step.value;
|
|
28
|
-
if (pathname.startsWith(group) && (!longestMatch || group.length > longestMatch.length)) {
|
|
27
|
+
if ((pathname === group || pathname.startsWith(`${group}/`)) && (!longestMatch || group.length > longestMatch.length)) {
|
|
29
28
|
longestMatch = group;
|
|
30
29
|
}
|
|
31
30
|
}
|
|
@@ -95,6 +94,9 @@ function configure(props) {
|
|
|
95
94
|
return;
|
|
96
95
|
}
|
|
97
96
|
disable === null || disable === void 0 ? void 0 : disable();
|
|
97
|
+
var initialLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
98
|
+
var isFirstStateChange = true;
|
|
99
|
+
previousPathname = window.location.pathname;
|
|
98
100
|
var popStateController = new AbortController();
|
|
99
101
|
window.addEventListener("popstate", function () {
|
|
100
102
|
didPop = true;
|
|
@@ -109,10 +111,12 @@ function configure(props) {
|
|
|
109
111
|
});
|
|
110
112
|
var disposeOnRootState = subscribeToRootState(function (state) {
|
|
111
113
|
var _state_linkOptions;
|
|
112
|
-
if (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
if (isFirstStateChange) {
|
|
115
|
+
isFirstStateChange = false;
|
|
116
|
+
var currentLocation = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
117
|
+
if (currentLocation === initialLocation) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
116
120
|
}
|
|
117
121
|
if (((_state_linkOptions = state.linkOptions) === null || _state_linkOptions === void 0 ? void 0 : _state_linkOptions.scroll) === false) {
|
|
118
122
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","
|
|
1
|
+
{"version":3,"names":["useEffect","setLastAction","subscribeToLoadingState","subscribeToRootState","KEY","GROUP_KEY","getState","JSON","parse","sessionStorage","getItem","getGroupState","activeGroups","Set","registerScrollGroup","groupId","add","delete","getGroupKey","pathname","longestMatch","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","group","value","startsWith","length","err","return","restorePosition","positions","saved","window","location","setTimeout","scrollTo","error","console","removeItem","restoreGroupPosition","didPop","previousPathname","rememberScrollPosition","state","scrollY","setItem","stringify","groupKey","groupState","disable","configure","props","addEventListener","initialLocation","search","hash","isFirstStateChange","popStateController","AbortController","signal","disposeOnLoadState","disposeOnRootState","_state_linkOptions","currentLocation","linkOptions","scroll","currentPathname","scrollToHash","_state_linkOptions1","prevGroup","currentGroup","scrollGroup","abort"],"sources":["../../../src/views/ScrollBehavior.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import TestRenderer, { act } from "react-test-renderer";
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { registerScrollGroup, ScrollBehavior } from "./ScrollBehavior.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
const subscriptions = vi.hoisted(() => ({
|
|
6
|
+
loading: void 0,
|
|
7
|
+
root: void 0
|
|
8
|
+
}));
|
|
9
|
+
vi.mock("../router/lastAction", () => ({
|
|
10
|
+
setLastAction: vi.fn()
|
|
11
|
+
}));
|
|
12
|
+
vi.mock("../router/router", () => ({
|
|
13
|
+
subscribeToLoadingState: subscriber => {
|
|
14
|
+
subscriptions.loading = subscriber;
|
|
15
|
+
return () => {
|
|
16
|
+
subscriptions.loading = void 0;
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
subscribeToRootState: subscriber => {
|
|
20
|
+
subscriptions.root = subscriber;
|
|
21
|
+
return () => {
|
|
22
|
+
subscriptions.root = void 0;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
27
|
+
let renderer;
|
|
28
|
+
let location;
|
|
29
|
+
let scrollTo;
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
process.env.VITE_ENVIRONMENT = "client";
|
|
32
|
+
location = {
|
|
33
|
+
pathname: "/",
|
|
34
|
+
search: "",
|
|
35
|
+
hash: ""
|
|
36
|
+
};
|
|
37
|
+
scrollTo = vi.fn();
|
|
38
|
+
const windowMock = Object.assign(new EventTarget(), {
|
|
39
|
+
location,
|
|
40
|
+
scrollTo,
|
|
41
|
+
scrollY: 500
|
|
42
|
+
});
|
|
43
|
+
const storage = /* @__PURE__ */new Map();
|
|
44
|
+
vi.stubGlobal("window", windowMock);
|
|
45
|
+
vi.stubGlobal("document", {
|
|
46
|
+
getElementById: vi.fn()
|
|
47
|
+
});
|
|
48
|
+
vi.stubGlobal("sessionStorage", {
|
|
49
|
+
getItem: key => storage.get(key) ?? null,
|
|
50
|
+
setItem: (key, value) => storage.set(key, value),
|
|
51
|
+
removeItem: key => storage.delete(key)
|
|
52
|
+
});
|
|
53
|
+
act(() => {
|
|
54
|
+
renderer = TestRenderer.create(/* @__PURE__ */jsx(ScrollBehavior, {}));
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
afterEach(() => {
|
|
58
|
+
act(() => renderer?.unmount());
|
|
59
|
+
renderer = void 0;
|
|
60
|
+
vi.useRealTimers();
|
|
61
|
+
vi.unstubAllGlobals();
|
|
62
|
+
delete process.env.VITE_ENVIRONMENT;
|
|
63
|
+
});
|
|
64
|
+
describe("ScrollBehavior initial navigation", () => {
|
|
65
|
+
it("does not scroll when the navigator publishes its initial state after mount", () => {
|
|
66
|
+
act(() => subscriptions.root?.({}));
|
|
67
|
+
expect(scrollTo).not.toHaveBeenCalled();
|
|
68
|
+
});
|
|
69
|
+
it("scrolls to the top when the first state notification is a real navigation", () => {
|
|
70
|
+
location.pathname = "/compat/react-native-gesture-handler";
|
|
71
|
+
act(() => subscriptions.root?.({}));
|
|
72
|
+
expect(scrollTo).toHaveBeenCalledWith(0, 0);
|
|
73
|
+
});
|
|
74
|
+
it("handles a query change as a first navigation", () => {
|
|
75
|
+
location.search = "?platform=ios";
|
|
76
|
+
act(() => subscriptions.root?.({}));
|
|
77
|
+
expect(scrollTo).toHaveBeenCalledWith(0, 0);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe("ScrollBehavior groups", () => {
|
|
81
|
+
it("preserves position between routes in the same group", () => {
|
|
82
|
+
vi.useFakeTimers();
|
|
83
|
+
const unregister = registerScrollGroup("/compat/react-native-gesture-handler");
|
|
84
|
+
act(() => subscriptions.root?.({}));
|
|
85
|
+
location.pathname = "/compat/react-native-gesture-handler";
|
|
86
|
+
act(() => subscriptions.root?.({}));
|
|
87
|
+
scrollTo.mockClear();
|
|
88
|
+
act(() => subscriptions.loading?.("loading"));
|
|
89
|
+
location.pathname = "/compat/react-native-gesture-handler/pan-gesture";
|
|
90
|
+
act(() => subscriptions.root?.({}));
|
|
91
|
+
vi.runAllTimers();
|
|
92
|
+
expect(scrollTo).toHaveBeenCalledWith(0, 500);
|
|
93
|
+
unregister();
|
|
94
|
+
vi.useRealTimers();
|
|
95
|
+
});
|
|
96
|
+
it("does not match a different route whose slug has the same prefix", () => {
|
|
97
|
+
const unregister = registerScrollGroup("/compat/react-native");
|
|
98
|
+
act(() => subscriptions.root?.({}));
|
|
99
|
+
location.pathname = "/compat/react-native/core";
|
|
100
|
+
act(() => subscriptions.root?.({}));
|
|
101
|
+
scrollTo.mockClear();
|
|
102
|
+
act(() => subscriptions.loading?.("loading"));
|
|
103
|
+
location.pathname = "/compat/react-native-gesture-handler";
|
|
104
|
+
act(() => subscriptions.root?.({}));
|
|
105
|
+
expect(scrollTo).toHaveBeenCalledWith(0, 0);
|
|
106
|
+
unregister();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=ScrollBehavior.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TestRenderer","act","afterEach","beforeEach","describe","expect","it","vi","registerScrollGroup","ScrollBehavior","jsx","subscriptions","hoisted","loading","root","mock","setLastAction","fn","subscribeToLoadingState","subscriber","subscribeToRootState","globalThis","IS_REACT_ACT_ENVIRONMENT","renderer","location","scrollTo","process","env","VITE_ENVIRONMENT","pathname","search","hash","windowMock","Object","assign","EventTarget","scrollY","storage","Map","stubGlobal","getElementById","getItem","key","get","setItem","value","set","removeItem","delete","create","unmount","useRealTimers","unstubAllGlobals","not","toHaveBeenCalled","toHaveBeenCalledWith","useFakeTimers","unregister","mockClear","runAllTimers"],"sources":["../../../src/views/ScrollBehavior.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|