kiru 0.53.0 → 0.54.0-preview.1
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/components/derive.d.ts +1 -1
- package/dist/components/derive.d.ts.map +1 -1
- package/dist/components/derive.js +3 -2
- package/dist/components/derive.js.map +1 -1
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +6 -2
- package/dist/dom.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.d.ts.map +1 -1
- package/dist/globals.js.map +1 -1
- package/dist/hooks/usePromise.d.ts +2 -1
- package/dist/hooks/usePromise.d.ts.map +1 -1
- package/dist/hooks/usePromise.js +31 -62
- package/dist/hooks/usePromise.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/router/client/index.d.ts +4 -2
- package/dist/router/client/index.d.ts.map +1 -1
- package/dist/router/client/index.js +59 -13
- package/dist/router/client/index.js.map +1 -1
- package/dist/router/constants.d.ts +2 -0
- package/dist/router/constants.d.ts.map +1 -0
- package/dist/router/constants.js +2 -0
- package/dist/router/constants.js.map +1 -0
- package/dist/router/context.d.ts +2 -0
- package/dist/router/context.d.ts.map +1 -1
- package/dist/router/context.js +5 -1
- package/dist/router/context.js.map +1 -1
- package/dist/router/fileRouterController.d.ts +2 -0
- package/dist/router/fileRouterController.d.ts.map +1 -1
- package/dist/router/fileRouterController.js +195 -107
- package/dist/router/fileRouterController.js.map +1 -1
- package/dist/router/globals.d.ts +3 -0
- package/dist/router/globals.d.ts.map +1 -1
- package/dist/router/globals.js +3 -0
- package/dist/router/globals.js.map +1 -1
- package/dist/router/guard.d.ts +17 -0
- package/dist/router/guard.d.ts.map +1 -0
- package/dist/router/guard.js +45 -0
- package/dist/router/guard.js.map +1 -0
- package/dist/router/head.d.ts.map +1 -1
- package/dist/router/head.js +5 -7
- package/dist/router/head.js.map +1 -1
- package/dist/router/index.d.ts +2 -1
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +2 -1
- package/dist/router/index.js.map +1 -1
- package/dist/router/{server → ssg}/index.d.ts +4 -3
- package/dist/router/ssg/index.d.ts.map +1 -0
- package/dist/router/{server → ssg}/index.js +8 -5
- package/dist/router/ssg/index.js.map +1 -0
- package/dist/router/ssr/index.d.ts +20 -0
- package/dist/router/ssr/index.d.ts.map +1 -0
- package/dist/router/ssr/index.js +163 -0
- package/dist/router/ssr/index.js.map +1 -0
- package/dist/router/types.d.ts +42 -16
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.internal.d.ts +4 -0
- package/dist/router/types.internal.d.ts.map +1 -1
- package/dist/router/utils/index.d.ts +8 -3
- package/dist/router/utils/index.d.ts.map +1 -1
- package/dist/router/utils/index.js +38 -6
- package/dist/router/utils/index.js.map +1 -1
- package/dist/scheduler.d.ts +14 -3
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +3 -4
- package/dist/scheduler.js.map +1 -1
- package/dist/ssr/client.d.ts +1 -1
- package/dist/ssr/client.d.ts.map +1 -1
- package/dist/ssr/server.d.ts +9 -3
- package/dist/ssr/server.d.ts.map +1 -1
- package/dist/ssr/server.js +37 -30
- package/dist/ssr/server.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/format.d.ts +2 -1
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +4 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/promise.d.ts +2 -0
- package/dist/utils/promise.d.ts.map +1 -1
- package/dist/utils/promise.js +45 -1
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/runtime.d.ts +1 -1
- package/dist/utils/runtime.js +1 -1
- package/package.json +8 -4
- package/src/components/derive.ts +5 -3
- package/src/dom.ts +5 -1
- package/src/globals.ts +1 -1
- package/src/hooks/usePromise.ts +57 -77
- package/src/index.ts +1 -1
- package/src/router/client/index.ts +114 -16
- package/src/router/constants.ts +1 -0
- package/src/router/context.ts +7 -1
- package/src/router/fileRouterController.ts +304 -132
- package/src/router/globals.ts +4 -0
- package/src/router/guard.ts +72 -0
- package/src/router/head.ts +5 -7
- package/src/router/index.ts +12 -1
- package/src/router/{server → ssg}/index.ts +17 -10
- package/src/router/ssr/index.ts +252 -0
- package/src/router/types.internal.ts +5 -0
- package/src/router/types.ts +53 -16
- package/src/router/utils/index.ts +74 -8
- package/src/scheduler.ts +20 -3
- package/src/ssr/client.ts +1 -1
- package/src/ssr/server.ts +58 -34
- package/src/types.ts +3 -0
- package/src/utils/format.ts +5 -0
- package/src/utils/index.ts +1 -1
- package/src/utils/promise.ts +70 -1
- package/src/utils/runtime.ts +1 -1
- package/dist/router/server/index.d.ts.map +0 -1
- package/dist/router/server/index.js.map +0 -1
package/dist/router/context.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { useContext } from "../hooks/index.js";
|
|
1
2
|
import { createContext } from "../context.js";
|
|
2
3
|
import { __DEV__ } from "../env.js";
|
|
3
|
-
import { useContext } from "../hooks/index.js";
|
|
4
4
|
export const RouterContext = createContext(null);
|
|
5
5
|
if (__DEV__) {
|
|
6
6
|
RouterContext.displayName = "RouterContext";
|
|
@@ -8,4 +8,8 @@ if (__DEV__) {
|
|
|
8
8
|
export function useFileRouter() {
|
|
9
9
|
return useContext(RouterContext);
|
|
10
10
|
}
|
|
11
|
+
export const RequestContext = createContext({});
|
|
12
|
+
export function useRequestContext() {
|
|
13
|
+
return useContext(RequestContext);
|
|
14
|
+
}
|
|
11
15
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkEnC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAwB,IAAK,CAAC,CAAA;AACxE,IAAI,OAAO,EAAE,CAAC;IACZ,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAsB,EAAE,CAAC,CAAA;AAEpE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,cAAc,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -14,10 +14,12 @@ export declare class FileRouterController {
|
|
|
14
14
|
private historyIndex;
|
|
15
15
|
private layouts;
|
|
16
16
|
private pages;
|
|
17
|
+
private guards;
|
|
17
18
|
private pageRouteToConfig?;
|
|
18
19
|
private state;
|
|
19
20
|
constructor();
|
|
20
21
|
init(config: FileRouterConfig): void;
|
|
22
|
+
private onBeforeLeave;
|
|
21
23
|
getChildren(): Kiru.Element | null;
|
|
22
24
|
dispose(): void;
|
|
23
25
|
private loadRoute;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAQxE,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAKX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAEV,iBAAiB,EAKlB,MAAM,qBAAqB,CAAA;AAkC5B,qBAAa,oBAAoB;IACxB,YAAY,EAAE,qBAAqB,CAAA;IACnC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,uBAAuB,CAAC,EAAE,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EACzD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,CAAC,KACN,IAAI,CAAA;IACT,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAAC,CAG3B;IACD,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,iBAAiB,CAAC,CAAyB;IACnD,OAAO,CAAC,KAAK,CAAa;;IAkInB,IAAI,CAAC,MAAM,EAAE,gBAAgB;IAkMpC,OAAO,CAAC,aAAa;IAyBd,WAAW;IAUX,OAAO;YAUA,SAAS;YA2MT,aAAa;IAkD3B,OAAO,CAAC,UAAU;YAcJ,QAAQ;YAkCR,oBAAoB;IAuBlC,OAAO,CAAC,QAAQ;YAUF,OAAO;YAcP,kBAAkB;CA6BjC"}
|
|
@@ -2,11 +2,14 @@ import { Signal } from "../signals/base.js";
|
|
|
2
2
|
import { watch } from "../signals/watch.js";
|
|
3
3
|
import { __DEV__ } from "../env.js";
|
|
4
4
|
import { flushSync, nextIdle } from "../scheduler.js";
|
|
5
|
+
import { toArray } from "../utils/format.js";
|
|
5
6
|
import { FileRouterDataLoadError } from "./errors.js";
|
|
6
|
-
import { fileRouterInstance, fileRouterRoute, routerCache } from "./globals.js";
|
|
7
|
-
import { formatViteImportMap,
|
|
7
|
+
import { fileRouterInstance, fileRouterRoute, requestContext, routerCache, } from "./globals.js";
|
|
8
|
+
import { formatViteImportMap, matchModules, matchRoute, match404Route, normalizePrefixPath, parseQuery, wrapWithLayouts, runAfterEachGuards, runBeforeEachGuards, runBeforeEnterHooks, runBeforeLeaveHooks, } from "./utils/index.js";
|
|
8
9
|
import { RouterCache } from "./cache.js";
|
|
9
10
|
import { scrollStack } from "./scrollStack.js";
|
|
11
|
+
let transitionId = 0;
|
|
12
|
+
let currentTransition = null;
|
|
10
13
|
export class FileRouterController {
|
|
11
14
|
constructor() {
|
|
12
15
|
routerCache.current ?? (routerCache.current = new RouterCache());
|
|
@@ -18,6 +21,7 @@ export class FileRouterController {
|
|
|
18
21
|
this.historyIndex = 0;
|
|
19
22
|
this.layouts = {};
|
|
20
23
|
this.pages = {};
|
|
24
|
+
this.guards = {};
|
|
21
25
|
this.state = {
|
|
22
26
|
pathname: window.location.pathname,
|
|
23
27
|
hash: window.location.hash,
|
|
@@ -29,7 +33,7 @@ export class FileRouterController {
|
|
|
29
33
|
this.contextValue = {
|
|
30
34
|
invalidate: async (...paths) => {
|
|
31
35
|
if (this.invalidate(...paths)) {
|
|
32
|
-
return this.loadRoute(
|
|
36
|
+
return this.loadRoute();
|
|
33
37
|
}
|
|
34
38
|
},
|
|
35
39
|
get state() {
|
|
@@ -41,7 +45,7 @@ export class FileRouterController {
|
|
|
41
45
|
if (options?.invalidate ?? true) {
|
|
42
46
|
this.invalidate(this.state.pathname);
|
|
43
47
|
}
|
|
44
|
-
return this.loadRoute(
|
|
48
|
+
return this.loadRoute({ transition: options?.transition });
|
|
45
49
|
},
|
|
46
50
|
setQuery: this.setQuery.bind(this),
|
|
47
51
|
setHash: this.setHash.bind(this),
|
|
@@ -62,11 +66,10 @@ export class FileRouterController {
|
|
|
62
66
|
const loader = config.loader;
|
|
63
67
|
if (curPage?.route === existing.route && loader) {
|
|
64
68
|
const p = this.currentPageProps.value;
|
|
65
|
-
const transition = (loader.
|
|
66
|
-
this.enableTransitions;
|
|
69
|
+
const transition = (!loader.static && loader.transition) ?? this.enableTransitions;
|
|
67
70
|
// Check cache first if caching is enabled
|
|
68
71
|
let cachedData = null;
|
|
69
|
-
if (loader.
|
|
72
|
+
if (!loader.static && loader.cache) {
|
|
70
73
|
const cacheKey = {
|
|
71
74
|
path: this.state.pathname,
|
|
72
75
|
params: this.state.params,
|
|
@@ -82,9 +85,7 @@ export class FileRouterController {
|
|
|
82
85
|
error: null,
|
|
83
86
|
loading: false,
|
|
84
87
|
};
|
|
85
|
-
handleStateTransition(
|
|
86
|
-
this.currentPageProps.value = props;
|
|
87
|
-
});
|
|
88
|
+
handleStateTransition(transition, transitionId, () => (this.currentPageProps.value = props));
|
|
88
89
|
}
|
|
89
90
|
else {
|
|
90
91
|
// No cached data - show loading state and load data
|
|
@@ -94,10 +95,8 @@ export class FileRouterController {
|
|
|
94
95
|
data: null,
|
|
95
96
|
error: null,
|
|
96
97
|
};
|
|
97
|
-
handleStateTransition(
|
|
98
|
-
|
|
99
|
-
});
|
|
100
|
-
this.loadRouteData(config, props, this.state, transition);
|
|
98
|
+
handleStateTransition(transition, transitionId, () => (this.currentPageProps.value = props));
|
|
99
|
+
this.loadRouteData(config, this.state, transition);
|
|
101
100
|
}
|
|
102
101
|
}
|
|
103
102
|
this.pageRouteToConfig?.set(existing.route, config);
|
|
@@ -122,14 +121,25 @@ export class FileRouterController {
|
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
123
|
init(config) {
|
|
125
|
-
const { pages, layouts, dir = "/pages", baseUrl = "/", transition, preloaded, } = config;
|
|
124
|
+
const { pages, layouts, guards, dir = "/pages", baseUrl = "/", transition, preloaded, } = config;
|
|
126
125
|
this.enableTransitions = !!transition;
|
|
127
126
|
const [normalizedDir, normalizedBaseUrl] = [
|
|
128
127
|
normalizePrefixPath(dir),
|
|
129
128
|
normalizePrefixPath(baseUrl),
|
|
130
129
|
];
|
|
131
|
-
if (preloaded) {
|
|
132
|
-
|
|
130
|
+
if (!preloaded) {
|
|
131
|
+
this.pages = formatViteImportMap(pages, normalizedDir, normalizedBaseUrl);
|
|
132
|
+
this.layouts = formatViteImportMap(layouts, normalizedDir, normalizedBaseUrl);
|
|
133
|
+
this.guards = !guards
|
|
134
|
+
? {}
|
|
135
|
+
: formatViteImportMap(guards, normalizedDir, normalizedBaseUrl);
|
|
136
|
+
if (__DEV__) {
|
|
137
|
+
validateRoutes(this.pages);
|
|
138
|
+
}
|
|
139
|
+
this.loadRoute();
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const { pages, layouts, guards, page, pageProps, pagePropsPromise, pageLayouts, route, params, query, cacheData, } = preloaded;
|
|
133
143
|
this.state = {
|
|
134
144
|
params,
|
|
135
145
|
query,
|
|
@@ -146,45 +156,42 @@ export class FileRouterController {
|
|
|
146
156
|
this.currentLayouts.value = pageLayouts.map((l) => l.default);
|
|
147
157
|
this.pages = pages;
|
|
148
158
|
this.layouts = layouts;
|
|
159
|
+
this.guards = (guards ??
|
|
160
|
+
{});
|
|
149
161
|
if (__DEV__) {
|
|
162
|
+
validateRoutes(this.pages);
|
|
150
163
|
if (page.config) {
|
|
151
164
|
this.dev_onPageConfigDefined(route, page.config);
|
|
152
165
|
}
|
|
153
166
|
}
|
|
154
|
-
if (__DEV__) {
|
|
155
|
-
validateRoutes(this.pages);
|
|
156
|
-
}
|
|
157
167
|
const loader = page.config?.loader;
|
|
158
|
-
|
|
159
|
-
|
|
168
|
+
const transition = (!loader?.static && loader?.transition) ?? this.enableTransitions;
|
|
169
|
+
if (loader && pagePropsPromise) {
|
|
170
|
+
const prevState = this.state;
|
|
171
|
+
pagePropsPromise.then(({ data, error }) => {
|
|
172
|
+
if (this.state !== prevState)
|
|
173
|
+
return;
|
|
174
|
+
handleStateTransition(transition, transitionId, () => (this.currentPageProps.value = { loading: false, data, error }));
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
else if (loader &&
|
|
178
|
+
((!loader.static && pageProps.loading === true) || __DEV__)) {
|
|
160
179
|
if (cacheData === null) {
|
|
161
|
-
this.loadRouteData(page.config,
|
|
180
|
+
this.loadRouteData(page.config, this.state);
|
|
162
181
|
}
|
|
163
182
|
else {
|
|
164
183
|
nextIdle(() => {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
// @ts-ignore
|
|
172
|
-
const transition = loader.transition ?? this.enableTransitions;
|
|
173
|
-
handleStateTransition(this.state.signal, transition, () => {
|
|
174
|
-
this.currentPageProps.value = props;
|
|
184
|
+
handleStateTransition(transition, transitionId, () => {
|
|
185
|
+
this.currentPageProps.value = {
|
|
186
|
+
data: cacheData.value,
|
|
187
|
+
error: null,
|
|
188
|
+
loading: false,
|
|
189
|
+
};
|
|
175
190
|
});
|
|
176
191
|
});
|
|
177
192
|
}
|
|
178
193
|
}
|
|
179
194
|
}
|
|
180
|
-
else {
|
|
181
|
-
this.pages = formatViteImportMap(pages, normalizedDir, normalizedBaseUrl);
|
|
182
|
-
this.layouts = formatViteImportMap(layouts, normalizedDir, normalizedBaseUrl);
|
|
183
|
-
if (__DEV__) {
|
|
184
|
-
validateRoutes(this.pages);
|
|
185
|
-
}
|
|
186
|
-
this.loadRoute();
|
|
187
|
-
}
|
|
188
195
|
window.history.scrollRestoration = "manual";
|
|
189
196
|
const historyState = window.history.state;
|
|
190
197
|
if (typeof historyState !== "object" ||
|
|
@@ -212,20 +219,59 @@ export class FileRouterController {
|
|
|
212
219
|
scrollStack.replace(this.historyIndex, window.scrollX, window.scrollY);
|
|
213
220
|
window.history.scrollRestoration = "auto";
|
|
214
221
|
});
|
|
222
|
+
let ignorePopState = false;
|
|
215
223
|
window.addEventListener("popstate", (e) => {
|
|
216
224
|
e.preventDefault();
|
|
225
|
+
if (!ignorePopState &&
|
|
226
|
+
this.onBeforeLeave(window.location.pathname) === false) {
|
|
227
|
+
ignorePopState = true;
|
|
228
|
+
if (e.state !== null) {
|
|
229
|
+
if (e.state.index > this.historyIndex) {
|
|
230
|
+
window.history.go(-1);
|
|
231
|
+
}
|
|
232
|
+
else if (e.state.index < this.historyIndex) {
|
|
233
|
+
window.history.go(1);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (ignorePopState) {
|
|
239
|
+
ignorePopState = false;
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
217
242
|
scrollStack.replace(this.historyIndex, window.scrollX, window.scrollY);
|
|
218
|
-
|
|
219
|
-
|
|
243
|
+
// prep 'on painted' callback for scroll-to-offset action
|
|
244
|
+
// this will fire once the page has rendered but before (loader?) kicks off.
|
|
245
|
+
let onPaint;
|
|
246
|
+
if (e.state != null) {
|
|
247
|
+
onPaint = () => {
|
|
220
248
|
this.historyIndex = e.state.index;
|
|
221
249
|
const offset = scrollStack.getItem(e.state.index);
|
|
222
250
|
if (offset !== undefined) {
|
|
223
251
|
window.scrollTo(...offset);
|
|
224
252
|
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
this.loadRoute({ onPaint });
|
|
227
256
|
});
|
|
228
257
|
}
|
|
258
|
+
onBeforeLeave(to) {
|
|
259
|
+
const currentPage = this.currentPage.peek();
|
|
260
|
+
if (!currentPage) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
let config = currentPage.config ?? {};
|
|
264
|
+
if (__DEV__) {
|
|
265
|
+
if (this.pageRouteToConfig?.has(currentPage.route)) {
|
|
266
|
+
config = this.pageRouteToConfig.get(currentPage.route);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const onBeforeLeave = config.hooks?.onBeforeLeave;
|
|
270
|
+
if (onBeforeLeave) {
|
|
271
|
+
return runBeforeLeaveHooks(toArray(onBeforeLeave), { ...requestContext.current }, to, this.state.pathname);
|
|
272
|
+
}
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
229
275
|
getChildren() {
|
|
230
276
|
const page = this.currentPage.value;
|
|
231
277
|
if (!page)
|
|
@@ -242,7 +288,8 @@ export class FileRouterController {
|
|
|
242
288
|
fileRouterRoute.current = null;
|
|
243
289
|
fileRouterInstance.current = null;
|
|
244
290
|
}
|
|
245
|
-
async loadRoute(
|
|
291
|
+
async loadRoute(options) {
|
|
292
|
+
const { transition: enableTransition = this.enableTransitions, isStatic404 = false, path = window.location.pathname, onPaint, } = options ?? {};
|
|
246
293
|
this.abortController?.abort();
|
|
247
294
|
const signal = (this.abortController = new AbortController()).signal;
|
|
248
295
|
try {
|
|
@@ -261,9 +308,22 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
261
308
|
routeMatch = _404Match;
|
|
262
309
|
}
|
|
263
310
|
const { route, pageEntry, params, routeSegments } = routeMatch;
|
|
311
|
+
// Apply beforeEach guards before loading route
|
|
312
|
+
const guardEntries = matchModules(this.guards, routeSegments);
|
|
313
|
+
const guardModules = await Promise.all(guardEntries.map((entry) => entry.load()));
|
|
314
|
+
const fromPath = this.state.pathname;
|
|
315
|
+
const redirectPath = await runBeforeEachGuards(guardModules, { ...requestContext.current }, path, fromPath);
|
|
316
|
+
// If redirect was requested, navigate to that path instead
|
|
317
|
+
if (redirectPath !== null) {
|
|
318
|
+
this.state.pathname = path;
|
|
319
|
+
return this.navigate(redirectPath, {
|
|
320
|
+
replace: true,
|
|
321
|
+
transition: enableTransition,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
264
324
|
fileRouterRoute.current = route;
|
|
265
325
|
const pagePromise = pageEntry.load();
|
|
266
|
-
const layoutPromises =
|
|
326
|
+
const layoutPromises = matchModules(this.layouts, routeSegments).map((layoutEntry) => layoutEntry.load());
|
|
267
327
|
const [page, ...layouts] = await Promise.all([
|
|
268
328
|
pagePromise,
|
|
269
329
|
...layoutPromises,
|
|
@@ -288,54 +348,66 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
288
348
|
config = this.pageRouteToConfig.get(route);
|
|
289
349
|
}
|
|
290
350
|
}
|
|
291
|
-
const { loader } = config;
|
|
292
|
-
if (
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
query: routerState.query,
|
|
301
|
-
};
|
|
302
|
-
cachedData = routerCache.current.get(cacheKey, loader.cache);
|
|
303
|
-
}
|
|
304
|
-
if (cachedData !== null) {
|
|
305
|
-
// Use cached data immediately - no loading state needed
|
|
306
|
-
props = {
|
|
307
|
-
...props,
|
|
308
|
-
data: cachedData.value,
|
|
309
|
-
error: null,
|
|
310
|
-
loading: false,
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
// No cached data - show loading state and load data
|
|
315
|
-
props = {
|
|
316
|
-
...props,
|
|
317
|
-
loading: true,
|
|
318
|
-
data: null,
|
|
319
|
-
error: null,
|
|
320
|
-
};
|
|
321
|
-
this.loadRouteData(config, props, routerState, enableTransition);
|
|
322
|
-
}
|
|
351
|
+
const { loader, hooks } = config;
|
|
352
|
+
if (hooks?.onBeforeEnter) {
|
|
353
|
+
const redirectPath = await runBeforeEnterHooks(toArray(hooks.onBeforeEnter), requestContext, path, fromPath);
|
|
354
|
+
if (redirectPath !== null) {
|
|
355
|
+
this.state.pathname = path;
|
|
356
|
+
return this.navigate(redirectPath, {
|
|
357
|
+
replace: true,
|
|
358
|
+
transition: enableTransition,
|
|
359
|
+
});
|
|
323
360
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
361
|
+
}
|
|
362
|
+
let props = {};
|
|
363
|
+
if (!!loader) {
|
|
364
|
+
props = {
|
|
365
|
+
data: null,
|
|
366
|
+
error: null,
|
|
367
|
+
loading: true,
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
if (loader?.static && !__DEV__) {
|
|
371
|
+
const staticProps = page.__KIRU_STATIC_PROPS__?.[path];
|
|
372
|
+
if (!staticProps) {
|
|
373
|
+
// 404
|
|
374
|
+
return this.loadRoute({
|
|
375
|
+
path,
|
|
376
|
+
transition: enableTransition,
|
|
377
|
+
isStatic404: true,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
const { data, error } = staticProps;
|
|
381
|
+
props = error
|
|
382
|
+
? {
|
|
383
|
+
data: null,
|
|
384
|
+
error: new FileRouterDataLoadError(error),
|
|
385
|
+
loading: false,
|
|
328
386
|
}
|
|
329
|
-
|
|
330
|
-
props = {
|
|
331
|
-
...props,
|
|
387
|
+
: {
|
|
332
388
|
data: data,
|
|
333
|
-
error:
|
|
389
|
+
error: null,
|
|
390
|
+
loading: false,
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
else if (!loader?.static && loader?.cache) {
|
|
394
|
+
const cacheKey = {
|
|
395
|
+
path: routerState.pathname,
|
|
396
|
+
params: routerState.params,
|
|
397
|
+
query: routerState.query,
|
|
398
|
+
};
|
|
399
|
+
const cachedData = routerCache.current.get(cacheKey, loader.cache);
|
|
400
|
+
if (cachedData !== null) {
|
|
401
|
+
props = {
|
|
402
|
+
data: cachedData.value,
|
|
403
|
+
error: null,
|
|
334
404
|
loading: false,
|
|
335
405
|
};
|
|
336
406
|
}
|
|
337
407
|
}
|
|
338
|
-
|
|
408
|
+
// loader transition must use the same id as page transition in order to prevent skipping it.
|
|
409
|
+
let tId = transitionId++;
|
|
410
|
+
return await handleStateTransition(enableTransition, tId, () => {
|
|
339
411
|
this.state = routerState;
|
|
340
412
|
this.currentPage.value = {
|
|
341
413
|
component: page.default,
|
|
@@ -346,6 +418,15 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
346
418
|
this.currentLayouts.value = layouts
|
|
347
419
|
.filter((m) => typeof m.default === "function")
|
|
348
420
|
.map((m) => m.default);
|
|
421
|
+
nextIdle(() => {
|
|
422
|
+
runAfterEachGuards(guardModules, { ...requestContext.current }, path, fromPath);
|
|
423
|
+
if (props.loading) {
|
|
424
|
+
this.loadRouteData(config, routerState, enableTransition, tId).then(() => signal.aborted || onPaint?.());
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
onPaint?.();
|
|
428
|
+
}
|
|
429
|
+
});
|
|
349
430
|
});
|
|
350
431
|
}
|
|
351
432
|
catch (error) {
|
|
@@ -353,14 +434,14 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
353
434
|
this.currentPage.value = null;
|
|
354
435
|
}
|
|
355
436
|
}
|
|
356
|
-
async loadRouteData(config,
|
|
437
|
+
async loadRouteData(config, routerState, enableTransition = this.enableTransitions, id = transitionId) {
|
|
357
438
|
const { loader } = config;
|
|
358
439
|
// Load data from loader (cache check is now done earlier in loadRoute)
|
|
359
|
-
loader
|
|
360
|
-
.load(routerState)
|
|
440
|
+
return loader
|
|
441
|
+
.load({ ...routerState, context: { ...requestContext.current } })
|
|
361
442
|
.then((data) => {
|
|
362
443
|
// Cache the data if caching is enabled
|
|
363
|
-
if (loader.
|
|
444
|
+
if (!loader.static && loader.cache) {
|
|
364
445
|
const cacheKey = {
|
|
365
446
|
path: routerState.pathname,
|
|
366
447
|
params: routerState.params,
|
|
@@ -381,13 +462,8 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
381
462
|
.then((state) => {
|
|
382
463
|
if (routerState.signal.aborted)
|
|
383
464
|
return;
|
|
384
|
-
const transition = (loader.
|
|
385
|
-
handleStateTransition(
|
|
386
|
-
this.currentPageProps.value = {
|
|
387
|
-
...props,
|
|
388
|
-
...state,
|
|
389
|
-
};
|
|
390
|
-
});
|
|
465
|
+
const transition = (!loader.static && loader.transition) ?? enableTransition;
|
|
466
|
+
return handleStateTransition(transition, id, () => (this.currentPageProps.value = state));
|
|
391
467
|
});
|
|
392
468
|
}
|
|
393
469
|
invalidate(...paths) {
|
|
@@ -402,11 +478,13 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
402
478
|
const url = new URL(path, "http://localhost");
|
|
403
479
|
const { hash: nextHash, pathname: nextPath } = url;
|
|
404
480
|
const { hash: prevHash, pathname: prevPath } = this.state;
|
|
405
|
-
if (nextHash === prevHash && nextPath === prevPath)
|
|
481
|
+
if ((nextHash === prevHash && nextPath === prevPath) ||
|
|
482
|
+
this.onBeforeLeave(prevPath) === false) {
|
|
406
483
|
return;
|
|
407
484
|
}
|
|
408
485
|
this.updateHistoryState(path, options);
|
|
409
|
-
|
|
486
|
+
const transition = options?.transition ?? this.enableTransitions;
|
|
487
|
+
this.loadRoute({ transition }).then(() => {
|
|
410
488
|
if (nextHash !== prevHash) {
|
|
411
489
|
window.dispatchEvent(new HashChangeEvent("hashchange"));
|
|
412
490
|
}
|
|
@@ -429,7 +507,7 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
429
507
|
const { pageEntry, route } = routeMatch;
|
|
430
508
|
fileRouterRoute.current = route;
|
|
431
509
|
const pagePromise = pageEntry.load();
|
|
432
|
-
const layoutPromises =
|
|
510
|
+
const layoutPromises = matchModules(this.layouts, route.split("/")).map((layoutEntry) => layoutEntry.load());
|
|
433
511
|
await Promise.all([pagePromise, ...layoutPromises]);
|
|
434
512
|
fileRouterRoute.current = null;
|
|
435
513
|
}
|
|
@@ -464,10 +542,10 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
|
|
|
464
542
|
window.history.replaceState({ ...window.history.state, index: this.historyIndex }, "", path);
|
|
465
543
|
}
|
|
466
544
|
else {
|
|
545
|
+
const current = scrollStack.get();
|
|
467
546
|
// if we've gone back and are now going forward, we need to
|
|
468
547
|
// truncate the scroll stack so it doesn't just permanently grow.
|
|
469
548
|
// this should keep it at the same length as the history stack.
|
|
470
|
-
const current = scrollStack.get();
|
|
471
549
|
if (this.historyIndex < window.history.length - 1) {
|
|
472
550
|
current.length = this.historyIndex;
|
|
473
551
|
}
|
|
@@ -490,19 +568,29 @@ function buildQueryString(query) {
|
|
|
490
568
|
}
|
|
491
569
|
return params.toString();
|
|
492
570
|
}
|
|
493
|
-
async function handleStateTransition(
|
|
571
|
+
async function handleStateTransition(enableTransition, id, callback) {
|
|
572
|
+
if (currentTransition) {
|
|
573
|
+
const { id: currentId, transition } = currentTransition;
|
|
574
|
+
// for cross-page navigations, we skip any existing transitions.
|
|
575
|
+
// otherwise (eg. loaders), we wait for the existing transition to finish
|
|
576
|
+
if (id !== currentId) {
|
|
577
|
+
transition.skipTransition();
|
|
578
|
+
}
|
|
579
|
+
await transition.finished;
|
|
580
|
+
}
|
|
494
581
|
if (!enableTransition || typeof document.startViewTransition !== "function") {
|
|
495
582
|
return new Promise((resolve) => {
|
|
496
583
|
callback();
|
|
497
584
|
nextIdle(resolve);
|
|
498
585
|
});
|
|
499
586
|
}
|
|
500
|
-
const
|
|
587
|
+
const transition = document.startViewTransition(() => {
|
|
501
588
|
callback();
|
|
502
589
|
flushSync();
|
|
503
590
|
});
|
|
504
|
-
|
|
505
|
-
await
|
|
591
|
+
currentTransition = { id, transition };
|
|
592
|
+
await transition.finished;
|
|
593
|
+
currentTransition = null;
|
|
506
594
|
}
|
|
507
595
|
function validateRoutes(pageMap) {
|
|
508
596
|
const routeConflicts = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileRouterController.js","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileRouterController.js","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"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"}
|