kiru 0.51.0-preview.1 → 0.51.0
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/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/router/cache.d.ts +71 -0
- package/dist/router/cache.d.ts.map +1 -0
- package/dist/router/cache.js +325 -0
- package/dist/router/cache.js.map +1 -0
- package/dist/router/client/index.d.ts.map +1 -1
- package/dist/router/client/index.js +62 -1
- package/dist/router/client/index.js.map +1 -1
- package/dist/router/context.d.ts +8 -0
- package/dist/router/context.d.ts.map +1 -1
- package/dist/router/context.js.map +1 -1
- package/dist/router/fileRouterController.d.ts +1 -0
- package/dist/router/fileRouterController.d.ts.map +1 -1
- package/dist/router/fileRouterController.js +124 -36
- package/dist/router/fileRouterController.js.map +1 -1
- package/dist/router/globals.d.ts +4 -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/head.d.ts +4 -36
- package/dist/router/head.d.ts.map +1 -1
- package/dist/router/head.js +33 -53
- package/dist/router/head.js.map +1 -1
- package/dist/router/index.d.ts +57 -3
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +67 -3
- package/dist/router/index.js.map +1 -1
- package/dist/router/server/index.d.ts +1 -3
- package/dist/router/server/index.d.ts.map +1 -1
- package/dist/router/server/index.js +23 -20
- package/dist/router/server/index.js.map +1 -1
- package/dist/router/types.d.ts +31 -3
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.internal.d.ts +9 -8
- package/dist/router/types.internal.d.ts.map +1 -1
- package/dist/router/utils/index.d.ts +1 -6
- package/dist/router/utils/index.d.ts.map +1 -1
- package/dist/router/utils/index.js +1 -1
- package/dist/router/utils/index.js.map +1 -1
- package/dist/types.dom.d.ts +2 -1
- package/dist/types.dom.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -0
- package/src/router/cache.ts +385 -0
- package/src/router/client/index.ts +81 -1
- package/src/router/context.ts +8 -0
- package/src/router/fileRouterController.ts +140 -47
- package/src/router/globals.ts +5 -0
- package/src/router/head.ts +44 -54
- package/src/router/index.ts +70 -3
- package/src/router/server/index.ts +33 -24
- package/src/router/types.internal.ts +10 -8
- package/src/router/types.ts +43 -13
- package/src/router/utils/index.ts +1 -1
- package/src/types.dom.ts +5 -1
- package/dist/router/dev/index.d.ts +0 -2
- package/dist/router/dev/index.d.ts.map +0 -1
- package/dist/router/dev/index.js +0 -46
- package/dist/router/dev/index.js.map +0 -1
- package/src/router/dev/index.ts +0 -63
package/src/router/types.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface FileRouterPreloadConfig {
|
|
|
15
15
|
params: RouteParams
|
|
16
16
|
query: RouteQuery
|
|
17
17
|
route: string
|
|
18
|
+
cacheData: null | { value: unknown }
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export interface FileRouterConfig {
|
|
@@ -91,25 +92,54 @@ export interface RouterState {
|
|
|
91
92
|
|
|
92
93
|
type PageDataLoaderContext = RouterState & {}
|
|
93
94
|
|
|
95
|
+
export interface PageDataLoaderCacheConfig {
|
|
96
|
+
type: "memory" | "localStorage" | "sessionStorage"
|
|
97
|
+
ttl: number
|
|
98
|
+
}
|
|
99
|
+
|
|
94
100
|
export type PageDataLoaderConfig<T = unknown> = {
|
|
95
101
|
/**
|
|
96
102
|
* The function to load the page data
|
|
97
103
|
*/
|
|
98
104
|
load: (context: PageDataLoaderContext) => Promise<T>
|
|
105
|
+
} & (
|
|
106
|
+
| {
|
|
107
|
+
/**
|
|
108
|
+
* The mode to use for the page data loader
|
|
109
|
+
* @default "client"
|
|
110
|
+
* @description
|
|
111
|
+
* - **static**: The page data is loaded at build time and never updated
|
|
112
|
+
* - **client**: The page data is loaded upon navigation and updated on subsequent navigations
|
|
113
|
+
*/
|
|
114
|
+
mode?: "client"
|
|
115
|
+
/**
|
|
116
|
+
* Enable transitions when swapping between "load", "error" and "data" states
|
|
117
|
+
*/
|
|
118
|
+
transition?: boolean
|
|
99
119
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Configure caching for this loader
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* cache: {
|
|
125
|
+
* type: "memory", // or "localStorage" / "sessionStorage"
|
|
126
|
+
* ttl: 1000 * 60 * 5, // 5 minutes
|
|
127
|
+
}
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
cache?: PageDataLoaderCacheConfig
|
|
131
|
+
}
|
|
132
|
+
| {
|
|
133
|
+
/**
|
|
134
|
+
* The mode to use for the page data loader
|
|
135
|
+
* @default "client"
|
|
136
|
+
* @description
|
|
137
|
+
* - **static**: The page data is loaded at build time and never updated
|
|
138
|
+
* - **client**: The page data is loaded upon navigation and updated on subsequent navigations
|
|
139
|
+
*/
|
|
140
|
+
mode: "static"
|
|
141
|
+
}
|
|
142
|
+
)
|
|
113
143
|
|
|
114
144
|
export interface PageConfig<T = unknown> {
|
|
115
145
|
/**
|
package/src/types.dom.ts
CHANGED
|
@@ -365,7 +365,7 @@ declare global {
|
|
|
365
365
|
bivarianceHack(event: E): void
|
|
366
366
|
}["bivarianceHack"]
|
|
367
367
|
|
|
368
|
-
interface
|
|
368
|
+
interface BaseEvent<T extends Element = Element>
|
|
369
369
|
extends DOMEvent<Event, T> {}
|
|
370
370
|
|
|
371
371
|
interface AnimationEvent<T extends Element = Element>
|
|
@@ -413,6 +413,10 @@ declare global {
|
|
|
413
413
|
interface WheelEvent<T extends Element = Element>
|
|
414
414
|
extends DOMEvent<NativeWheelEvent, T> {}
|
|
415
415
|
|
|
416
|
+
type BaseEventHandler<T extends Element = Element> = EventHandler<
|
|
417
|
+
BaseEvent<T>
|
|
418
|
+
>
|
|
419
|
+
|
|
416
420
|
type ClipboardEventHandler<T extends Element = Element> = EventHandler<
|
|
417
421
|
ClipboardEvent<T>
|
|
418
422
|
>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/dev/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,SAO1B"}
|
package/dist/router/dev/index.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { __DEV__ } from "../../env.js";
|
|
2
|
-
export function onLoadedDev() {
|
|
3
|
-
if (!__DEV__) {
|
|
4
|
-
throw new Error("onLoadedDev should not have been included in production build.");
|
|
5
|
-
}
|
|
6
|
-
clean();
|
|
7
|
-
}
|
|
8
|
-
function clean() {
|
|
9
|
-
let isCleaned = true;
|
|
10
|
-
const VITE_ID = "data-vite-dev-id";
|
|
11
|
-
const injectedByVite = [
|
|
12
|
-
...document.querySelectorAll(`style[${VITE_ID}]`),
|
|
13
|
-
].map((style) => style.getAttribute(VITE_ID));
|
|
14
|
-
const suffix = "?temp";
|
|
15
|
-
const injectedByKiru = [
|
|
16
|
-
...document.querySelectorAll(`link[rel="stylesheet"][type="text/css"][href$="${suffix}"]`),
|
|
17
|
-
];
|
|
18
|
-
injectedByKiru.forEach((linkKiru) => {
|
|
19
|
-
const href = linkKiru.getAttribute("href");
|
|
20
|
-
let filePathAbsoluteUserRootDir = href.slice(0, -suffix.length);
|
|
21
|
-
const prefix = "/@fs/";
|
|
22
|
-
if (filePathAbsoluteUserRootDir.startsWith(prefix))
|
|
23
|
-
filePathAbsoluteUserRootDir = filePathAbsoluteUserRootDir.slice(prefix.length);
|
|
24
|
-
if (injectedByVite.some((filePathAbsoluteFilesystem) => filePathAbsoluteFilesystem.endsWith(filePathAbsoluteUserRootDir))) {
|
|
25
|
-
linkKiru.remove();
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
isCleaned = false;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
return isCleaned;
|
|
32
|
-
}
|
|
33
|
-
function removeInjectedStyles() {
|
|
34
|
-
let sleep = 2;
|
|
35
|
-
function runClean() {
|
|
36
|
-
if (clean())
|
|
37
|
-
return;
|
|
38
|
-
if (sleep < 1000) {
|
|
39
|
-
sleep *= 2;
|
|
40
|
-
}
|
|
41
|
-
setTimeout(runClean, sleep);
|
|
42
|
-
}
|
|
43
|
-
setTimeout(runClean, sleep);
|
|
44
|
-
}
|
|
45
|
-
removeInjectedStyles();
|
|
46
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAA;IACH,CAAC;IACD,KAAK,EAAE,CAAA;AACT,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,MAAM,OAAO,GAAG,kBAAkB,CAAA;IAClC,MAAM,cAAc,GAAG;QACrB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,OAAO,GAAG,CAAC;KAClD,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,cAAc,GAAG;QACrB,GAAG,QAAQ,CAAC,gBAAgB,CAC1B,kDAAkD,MAAM,IAAI,CAC7D;KACF,CAAA;IAED,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAE,CAAA;QAC3C,IAAI,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,OAAO,CAAA;QACtB,IAAI,2BAA2B,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,2BAA2B,GAAG,2BAA2B,CAAC,KAAK,CAC7D,MAAM,CAAC,MAAM,CACd,CAAA;QAEH,IACE,cAAc,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,EAAE,CACjD,0BAA2B,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAClE,EACD,CAAC;YACD,QAAQ,CAAC,MAAM,EAAE,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,SAAS,QAAQ;QACf,IAAI,KAAK,EAAE;YAAE,OAAM;QAEnB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,oBAAoB,EAAE,CAAA"}
|
package/src/router/dev/index.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { __DEV__ } from "../../env.js"
|
|
2
|
-
|
|
3
|
-
export function onLoadedDev() {
|
|
4
|
-
if (!__DEV__) {
|
|
5
|
-
throw new Error(
|
|
6
|
-
"onLoadedDev should not have been included in production build."
|
|
7
|
-
)
|
|
8
|
-
}
|
|
9
|
-
clean()
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function clean() {
|
|
13
|
-
let isCleaned = true
|
|
14
|
-
const VITE_ID = "data-vite-dev-id"
|
|
15
|
-
const injectedByVite = [
|
|
16
|
-
...document.querySelectorAll(`style[${VITE_ID}]`),
|
|
17
|
-
].map((style) => style.getAttribute(VITE_ID))
|
|
18
|
-
|
|
19
|
-
const suffix = "?temp"
|
|
20
|
-
const injectedByKiru = [
|
|
21
|
-
...document.querySelectorAll(
|
|
22
|
-
`link[rel="stylesheet"][type="text/css"][href$="${suffix}"]`
|
|
23
|
-
),
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
injectedByKiru.forEach((linkKiru) => {
|
|
27
|
-
const href = linkKiru.getAttribute("href")!
|
|
28
|
-
let filePathAbsoluteUserRootDir = href.slice(0, -suffix.length)
|
|
29
|
-
const prefix = "/@fs/"
|
|
30
|
-
if (filePathAbsoluteUserRootDir.startsWith(prefix))
|
|
31
|
-
filePathAbsoluteUserRootDir = filePathAbsoluteUserRootDir.slice(
|
|
32
|
-
prefix.length
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
injectedByVite.some((filePathAbsoluteFilesystem) =>
|
|
37
|
-
filePathAbsoluteFilesystem!.endsWith(filePathAbsoluteUserRootDir)
|
|
38
|
-
)
|
|
39
|
-
) {
|
|
40
|
-
linkKiru.remove()
|
|
41
|
-
} else {
|
|
42
|
-
isCleaned = false
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
return isCleaned
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function removeInjectedStyles() {
|
|
49
|
-
let sleep = 2
|
|
50
|
-
|
|
51
|
-
function runClean() {
|
|
52
|
-
if (clean()) return
|
|
53
|
-
|
|
54
|
-
if (sleep < 1000) {
|
|
55
|
-
sleep *= 2
|
|
56
|
-
}
|
|
57
|
-
setTimeout(runClean, sleep)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
setTimeout(runClean, sleep)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
removeInjectedStyles()
|