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/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AAExE,QAAA,MAAM,OAAO,eAA4B,CAAA;AACzC,QAAA,MAAM,QAAQ,eAA6B,CAAA;AAC3C,QAAA,MAAM,iBAAiB,eAAqC,CAAA;AAC5D,QAAA,MAAM,SAAS,eAA8B,CAAA;AAC7C,QAAA,MAAM,WAAW,eAA2B,CAAA;AAC5C,QAAA,MAAM,WAAW,eAA+B,CAAA;AAChD,QAAA,MAAM,KAAK,eAA0B,CAAA;AACrC,QAAA,MAAM,eAAe,eAAmC,CAAA;AACxD,QAAA,MAAM,eAAe,eAAmC,CAAA;AAExD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,qBAAqB,oBAAoB,CAAA;AAE/C,QAAA,MAAM,WAAW,QAAS,CAAA;AAC1B,QAAA,MAAM,cAAc,QAAS,CAAA;AAC7B,QAAA,MAAM,aAAa,QAAS,CAAA;AAC5B,QAAA,MAAM,eAAe,QAAS,CAAA;AAC9B,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,UAAU,QAAS,CAAA;AAEzB,QAAA,MAAM,kBAAkB,QAAU,CAAA;AAElC,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AAExE,QAAA,MAAM,OAAO,eAA4B,CAAA;AACzC,QAAA,MAAM,QAAQ,eAA6B,CAAA;AAC3C,QAAA,MAAM,iBAAiB,eAAqC,CAAA;AAC5D,QAAA,MAAM,SAAS,eAA8B,CAAA;AAC7C,QAAA,MAAM,WAAW,eAA2B,CAAA;AAC5C,QAAA,MAAM,WAAW,eAA+B,CAAA;AAChD,QAAA,MAAM,KAAK,eAA0B,CAAA;AACrC,QAAA,MAAM,eAAe,eAAmC,CAAA;AACxD,QAAA,MAAM,eAAe,eAAmC,CAAA;AAExD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,qBAAqB,oBAAoB,CAAA;AAE/C,QAAA,MAAM,WAAW,QAAS,CAAA;AAC1B,QAAA,MAAM,cAAc,QAAS,CAAA;AAC7B,QAAA,MAAM,aAAa,QAAS,CAAA;AAC5B,QAAA,MAAM,eAAe,QAAS,CAAA;AAC9B,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,UAAU,QAAS,CAAA;AAEzB,QAAA,MAAM,kBAAkB,QAAU,CAAA;AAElC,QAAA,MAAM,YAAY,aAgBhB,CAAA;AAEF,QAAA,MAAM,OAAO,aAiDX,CAAA;AAEF,QAAA,MAAM,iBAAiB,aAkCrB,CAAA;AAEF,QAAA,MAAM,mBAAmB,qBA6EvB,CAAA"}
|
package/dist/constants.js
CHANGED
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { PageDataLoaderCacheConfig, RouteParams } from "./types.js";
|
|
2
|
+
export interface CacheEntry<T = unknown> {
|
|
3
|
+
data: T;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
ttl: number;
|
|
6
|
+
}
|
|
7
|
+
export interface CacheKey {
|
|
8
|
+
path: string;
|
|
9
|
+
params: RouteParams;
|
|
10
|
+
query: Record<string, string | string[] | undefined>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Main router cache that manages different storage types
|
|
14
|
+
*/
|
|
15
|
+
export declare class RouterCache {
|
|
16
|
+
private stores;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Get the appropriate cache store for the given config
|
|
20
|
+
*/
|
|
21
|
+
private getStore;
|
|
22
|
+
/**
|
|
23
|
+
* Get cached data if it exists and hasn't expired
|
|
24
|
+
*/
|
|
25
|
+
get<T>(key: CacheKey, config: PageDataLoaderCacheConfig): null | {
|
|
26
|
+
value: T;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Set cached data with TTL
|
|
30
|
+
*/
|
|
31
|
+
set<T>(key: CacheKey, data: T, config: PageDataLoaderCacheConfig): void;
|
|
32
|
+
/**
|
|
33
|
+
* Invalidate cache entries by path patterns across all storage types
|
|
34
|
+
* Supports both exact paths ("/users/1") and folder patterns ("/users/[id]")
|
|
35
|
+
*/
|
|
36
|
+
invalidate(...paths: string[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Invalidate cache entries in a specific store
|
|
39
|
+
*/
|
|
40
|
+
private invalidateInStore;
|
|
41
|
+
/**
|
|
42
|
+
* Extract the path part from a cache key
|
|
43
|
+
*/
|
|
44
|
+
private extractPathFromCacheKey;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a pattern string contains dynamic segments
|
|
47
|
+
*/
|
|
48
|
+
private isPattern;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a given path matches any of the invalidation patterns
|
|
51
|
+
*/
|
|
52
|
+
pathMatchesPattern(currentPath: string, patterns: string[]): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Match a path against a pattern using segment-by-segment comparison
|
|
55
|
+
* This is more reliable than regex for our use case
|
|
56
|
+
*/
|
|
57
|
+
private matchPathPattern;
|
|
58
|
+
/**
|
|
59
|
+
* Check if a path segment matches a pattern segment
|
|
60
|
+
*/
|
|
61
|
+
private segmentMatches;
|
|
62
|
+
/**
|
|
63
|
+
* Clear all cached data across all storage types
|
|
64
|
+
*/
|
|
65
|
+
clear(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get cache size for debugging (memory cache only)
|
|
68
|
+
*/
|
|
69
|
+
size(): number;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/router/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExE,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CACrD;AAqKD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoC;;IASlD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,GAAG,CAAC,CAAC,EACH,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,yBAAyB,GAChC,IAAI,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE;IAKtB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAKvE;;;OAGG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAiBpE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,IAAI,MAAM;CAIf"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for router cache implementations
|
|
3
|
+
*/
|
|
4
|
+
class BaseCacheStore {
|
|
5
|
+
/**
|
|
6
|
+
* Generate a cache key from route information
|
|
7
|
+
*/
|
|
8
|
+
generateKey(key) {
|
|
9
|
+
const { path, params, query } = key;
|
|
10
|
+
const sortedParams = Object.keys(params)
|
|
11
|
+
.sort()
|
|
12
|
+
.map((k) => `${k}=${params[k]}`)
|
|
13
|
+
.join("&");
|
|
14
|
+
const sortedQuery = Object.keys(query)
|
|
15
|
+
.sort()
|
|
16
|
+
.map((k) => {
|
|
17
|
+
const value = query[k];
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
return `${k}=${value.sort().join(",")}`;
|
|
20
|
+
}
|
|
21
|
+
return `${k}=${value}`;
|
|
22
|
+
})
|
|
23
|
+
.join("&");
|
|
24
|
+
return `kiru-cache:${path}?${sortedParams}&${sortedQuery}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get cached data if it exists and hasn't expired
|
|
28
|
+
*/
|
|
29
|
+
get(key) {
|
|
30
|
+
const cacheKey = this.generateKey(key);
|
|
31
|
+
const entry = this.getItem(cacheKey);
|
|
32
|
+
if (!entry) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const now = Date.now();
|
|
36
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
37
|
+
this.removeItem(cacheKey);
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return { value: entry.data };
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set cached data with TTL
|
|
44
|
+
*/
|
|
45
|
+
set(key, data, ttl) {
|
|
46
|
+
const cacheKey = this.generateKey(key);
|
|
47
|
+
const entry = {
|
|
48
|
+
data,
|
|
49
|
+
timestamp: Date.now(),
|
|
50
|
+
ttl,
|
|
51
|
+
};
|
|
52
|
+
this.setItem(cacheKey, entry);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get cache size for debugging
|
|
56
|
+
*/
|
|
57
|
+
size() {
|
|
58
|
+
return this.getAllKeys().length;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* In-memory cache implementation
|
|
63
|
+
*/
|
|
64
|
+
class MemoryCacheStore extends BaseCacheStore {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.cache = new Map();
|
|
68
|
+
}
|
|
69
|
+
getItem(key) {
|
|
70
|
+
return this.cache.get(key) || null;
|
|
71
|
+
}
|
|
72
|
+
setItem(key, entry) {
|
|
73
|
+
this.cache.set(key, entry);
|
|
74
|
+
}
|
|
75
|
+
removeItem(key) {
|
|
76
|
+
this.cache.delete(key);
|
|
77
|
+
}
|
|
78
|
+
getAllKeys() {
|
|
79
|
+
return Array.from(this.cache.keys());
|
|
80
|
+
}
|
|
81
|
+
clear() {
|
|
82
|
+
this.cache.clear();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* (local|session)Storage cache implementation
|
|
87
|
+
*/
|
|
88
|
+
class StorageCacheStore extends BaseCacheStore {
|
|
89
|
+
constructor(storage) {
|
|
90
|
+
super();
|
|
91
|
+
this.storage = storage;
|
|
92
|
+
this.keyPrefix = "kiru-cache:";
|
|
93
|
+
}
|
|
94
|
+
getItem(key) {
|
|
95
|
+
try {
|
|
96
|
+
const item = this.storage.getItem(key);
|
|
97
|
+
return item ? JSON.parse(item) : null;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Handle JSON parse errors or storage unavailable
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
setItem(key, entry) {
|
|
105
|
+
try {
|
|
106
|
+
this.storage.setItem(key, JSON.stringify(entry));
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Handle storage quota exceeded or unavailable
|
|
110
|
+
// Silently fail - cache is not critical
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
removeItem(key) {
|
|
114
|
+
try {
|
|
115
|
+
this.storage.removeItem(key);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Silently handle errors
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
getAllKeys() {
|
|
122
|
+
try {
|
|
123
|
+
const keys = [];
|
|
124
|
+
for (let i = 0; i < localStorage.length; i++) {
|
|
125
|
+
const key = this.storage.key(i);
|
|
126
|
+
if (key && key.startsWith(this.keyPrefix)) {
|
|
127
|
+
keys.push(key);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return keys;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
clear() {
|
|
137
|
+
try {
|
|
138
|
+
const keysToRemove = this.getAllKeys();
|
|
139
|
+
keysToRemove.forEach((key) => this.storage.removeItem(key));
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Silently handle errors
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Main router cache that manages different storage types
|
|
148
|
+
*/
|
|
149
|
+
export class RouterCache {
|
|
150
|
+
constructor() {
|
|
151
|
+
this.stores = new Map();
|
|
152
|
+
// Initialize default stores
|
|
153
|
+
this.stores.set("memory", new MemoryCacheStore());
|
|
154
|
+
this.stores.set("localStorage", new StorageCacheStore(localStorage));
|
|
155
|
+
this.stores.set("sessionStorage", new StorageCacheStore(sessionStorage));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get the appropriate cache store for the given config
|
|
159
|
+
*/
|
|
160
|
+
getStore(config) {
|
|
161
|
+
const store = this.stores.get(config.type);
|
|
162
|
+
if (!store) {
|
|
163
|
+
// Fallback to memory cache if type is not supported
|
|
164
|
+
return this.stores.get("memory");
|
|
165
|
+
}
|
|
166
|
+
return store;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get cached data if it exists and hasn't expired
|
|
170
|
+
*/
|
|
171
|
+
get(key, config) {
|
|
172
|
+
const store = this.getStore(config);
|
|
173
|
+
return store.get(key);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Set cached data with TTL
|
|
177
|
+
*/
|
|
178
|
+
set(key, data, config) {
|
|
179
|
+
const store = this.getStore(config);
|
|
180
|
+
store.set(key, data, config.ttl);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Invalidate cache entries by path patterns across all storage types
|
|
184
|
+
* Supports both exact paths ("/users/1") and folder patterns ("/users/[id]")
|
|
185
|
+
*/
|
|
186
|
+
invalidate(...paths) {
|
|
187
|
+
// Invalidate across all storage types
|
|
188
|
+
for (const store of this.stores.values()) {
|
|
189
|
+
this.invalidateInStore(store, paths);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Invalidate cache entries in a specific store
|
|
194
|
+
*/
|
|
195
|
+
invalidateInStore(store, paths) {
|
|
196
|
+
const keysToDelete = [];
|
|
197
|
+
for (const path of paths) {
|
|
198
|
+
if (this.isPattern(path)) {
|
|
199
|
+
// Folder path pattern - check all cache keys
|
|
200
|
+
for (const cacheKey of store.getAllKeys()) {
|
|
201
|
+
const keyPath = this.extractPathFromCacheKey(cacheKey);
|
|
202
|
+
if (keyPath && this.pathMatchesPattern(keyPath, [path])) {
|
|
203
|
+
keysToDelete.push(cacheKey);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Exact path - find all cache keys that match this path
|
|
209
|
+
for (const cacheKey of store.getAllKeys()) {
|
|
210
|
+
const keyPath = this.extractPathFromCacheKey(cacheKey);
|
|
211
|
+
if (keyPath === path) {
|
|
212
|
+
keysToDelete.push(cacheKey);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Delete all matched keys
|
|
218
|
+
for (const key of keysToDelete) {
|
|
219
|
+
store.removeItem(key);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Extract the path part from a cache key
|
|
224
|
+
*/
|
|
225
|
+
extractPathFromCacheKey(cacheKey) {
|
|
226
|
+
// Remove the prefix and extract path part
|
|
227
|
+
const withoutPrefix = cacheKey.replace(/^kiru-cache:/, "");
|
|
228
|
+
const pathPart = withoutPrefix.split("?")[0];
|
|
229
|
+
return pathPart || null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Check if a pattern string contains dynamic segments
|
|
233
|
+
*/
|
|
234
|
+
isPattern(path) {
|
|
235
|
+
return path.includes("[") && path.includes("]");
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Check if a given path matches any of the invalidation patterns
|
|
239
|
+
*/
|
|
240
|
+
pathMatchesPattern(currentPath, patterns) {
|
|
241
|
+
for (const pattern of patterns) {
|
|
242
|
+
if (this.isPattern(pattern)) {
|
|
243
|
+
// Convert pattern to segments and match
|
|
244
|
+
if (this.matchPathPattern(currentPath, pattern)) {
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// Exact path match
|
|
250
|
+
if (currentPath === pattern) {
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Match a path against a pattern using segment-by-segment comparison
|
|
259
|
+
* This is more reliable than regex for our use case
|
|
260
|
+
*/
|
|
261
|
+
matchPathPattern(path, pattern) {
|
|
262
|
+
const pathSegments = path.split("/").filter(Boolean);
|
|
263
|
+
const patternSegments = pattern.split("/").filter(Boolean);
|
|
264
|
+
// Handle catchall patterns
|
|
265
|
+
const hasCatchall = patternSegments.some((seg) => seg.startsWith("[...") && seg.endsWith("]"));
|
|
266
|
+
if (hasCatchall) {
|
|
267
|
+
// Find the catchall position
|
|
268
|
+
const catchallIndex = patternSegments.findIndex((seg) => seg.startsWith("[...") && seg.endsWith("]"));
|
|
269
|
+
// Check segments before catchall
|
|
270
|
+
for (let i = 0; i < catchallIndex; i++) {
|
|
271
|
+
if (!this.segmentMatches(pathSegments[i], patternSegments[i])) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Catchall matches remaining segments
|
|
276
|
+
return pathSegments.length >= catchallIndex;
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
// Regular pattern - must have same number of segments
|
|
280
|
+
if (pathSegments.length !== patternSegments.length) {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
// Check each segment
|
|
284
|
+
for (let i = 0; i < pathSegments.length; i++) {
|
|
285
|
+
if (!this.segmentMatches(pathSegments[i], patternSegments[i])) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Check if a path segment matches a pattern segment
|
|
294
|
+
*/
|
|
295
|
+
segmentMatches(pathSegment, patternSegment) {
|
|
296
|
+
// Dynamic segment [param] matches any value
|
|
297
|
+
if (patternSegment.startsWith("[") &&
|
|
298
|
+
patternSegment.endsWith("]") &&
|
|
299
|
+
!patternSegment.startsWith("[...")) {
|
|
300
|
+
return pathSegment !== undefined;
|
|
301
|
+
}
|
|
302
|
+
// Catchall segment [...param] matches any remaining segments
|
|
303
|
+
if (patternSegment.startsWith("[...") && patternSegment.endsWith("]")) {
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
// Static segment must match exactly
|
|
307
|
+
return pathSegment === patternSegment;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Clear all cached data across all storage types
|
|
311
|
+
*/
|
|
312
|
+
clear() {
|
|
313
|
+
for (const store of this.stores.values()) {
|
|
314
|
+
store.clear();
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Get cache size for debugging (memory cache only)
|
|
319
|
+
*/
|
|
320
|
+
size() {
|
|
321
|
+
const memoryStore = this.stores.get("memory");
|
|
322
|
+
return memoryStore ? memoryStore.size() : 0;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/router/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,mBAAmB,CAAA;AAQ3E,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,sBAAsB,CAAA;CAChC;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,iBAgB1D"}
|
|
@@ -3,10 +3,13 @@ import { createElement } from "../../element.js";
|
|
|
3
3
|
import { hydrate } from "../../ssr/client.js";
|
|
4
4
|
import { FileRouter } from "../fileRouter.js";
|
|
5
5
|
import { matchLayouts, matchRoute, match404Route, parseQuery, } from "../utils/index.js";
|
|
6
|
-
import { fileRouterInstance, fileRouterRoute } from "../globals.js";
|
|
6
|
+
import { fileRouterInstance, fileRouterRoute, routerCache } from "../globals.js";
|
|
7
7
|
import { FileRouterController } from "../fileRouterController.js";
|
|
8
8
|
import { FileRouterDataLoadError } from "../errors.js";
|
|
9
|
+
import { __DEV__ } from "../../env.js";
|
|
10
|
+
import { RouterCache } from "../cache.js";
|
|
9
11
|
export async function initClient(options) {
|
|
12
|
+
routerCache.current = new RouterCache();
|
|
10
13
|
const { dir, baseUrl, pages, layouts } = options;
|
|
11
14
|
const config = {
|
|
12
15
|
dir,
|
|
@@ -17,9 +20,13 @@ export async function initClient(options) {
|
|
|
17
20
|
transition: true,
|
|
18
21
|
};
|
|
19
22
|
hydrate(createElement(FileRouter, { config }), document.body);
|
|
23
|
+
if (__DEV__) {
|
|
24
|
+
onLoadedDev();
|
|
25
|
+
}
|
|
20
26
|
}
|
|
21
27
|
async function preparePreloadConfig(options, isStatic404 = false) {
|
|
22
28
|
let pageProps = {};
|
|
29
|
+
let cacheData = null;
|
|
23
30
|
let url = new URL(window.location.pathname, "http://localhost");
|
|
24
31
|
const pathSegments = url.pathname.split("/").filter(Boolean);
|
|
25
32
|
let routeMatch = matchRoute(options.pages, pathSegments);
|
|
@@ -58,6 +65,16 @@ async function preparePreloadConfig(options, isStatic404 = false) {
|
|
|
58
65
|
}
|
|
59
66
|
else if (typeof page.config?.loader?.load === "function") {
|
|
60
67
|
pageProps = { loading: true, data: null, error: null };
|
|
68
|
+
const loader = page.config.loader;
|
|
69
|
+
// Check cache first if caching is enabled
|
|
70
|
+
if (loader.mode !== "static" && loader.cache) {
|
|
71
|
+
const cacheKey = {
|
|
72
|
+
path: window.location.pathname,
|
|
73
|
+
params: routeMatch.params,
|
|
74
|
+
query: parseQuery(url.search),
|
|
75
|
+
};
|
|
76
|
+
cacheData = routerCache.current.get(cacheKey, loader.cache);
|
|
77
|
+
}
|
|
61
78
|
}
|
|
62
79
|
return {
|
|
63
80
|
pages: options.pages,
|
|
@@ -68,6 +85,50 @@ async function preparePreloadConfig(options, isStatic404 = false) {
|
|
|
68
85
|
params: routeMatch.params,
|
|
69
86
|
query: parseQuery(url.search),
|
|
70
87
|
route: routeMatch.route,
|
|
88
|
+
cacheData,
|
|
71
89
|
};
|
|
72
90
|
}
|
|
91
|
+
function onLoadedDev() {
|
|
92
|
+
if (!__DEV__) {
|
|
93
|
+
throw new Error("onLoadedDev should not have been included in production build.");
|
|
94
|
+
}
|
|
95
|
+
removeInjectedStyles();
|
|
96
|
+
}
|
|
97
|
+
function removeInjectedStyles() {
|
|
98
|
+
let sleep = 2;
|
|
99
|
+
function runClean() {
|
|
100
|
+
if (clean())
|
|
101
|
+
return;
|
|
102
|
+
if (sleep < 1000) {
|
|
103
|
+
sleep *= 2;
|
|
104
|
+
}
|
|
105
|
+
setTimeout(runClean, sleep);
|
|
106
|
+
}
|
|
107
|
+
setTimeout(runClean, sleep);
|
|
108
|
+
}
|
|
109
|
+
function clean() {
|
|
110
|
+
let isCleaned = true;
|
|
111
|
+
const VITE_ID = "data-vite-dev-id";
|
|
112
|
+
const injectedByVite = [
|
|
113
|
+
...document.querySelectorAll(`style[${VITE_ID}]`),
|
|
114
|
+
].map((style) => style.getAttribute(VITE_ID));
|
|
115
|
+
const suffix = "?temp";
|
|
116
|
+
const injectedByKiru = [
|
|
117
|
+
...document.querySelectorAll(`link[rel="stylesheet"][type="text/css"][href$="${suffix}"]`),
|
|
118
|
+
];
|
|
119
|
+
injectedByKiru.forEach((linkKiru) => {
|
|
120
|
+
const href = linkKiru.getAttribute("href");
|
|
121
|
+
let filePathAbsoluteUserRootDir = href.slice(0, -suffix.length);
|
|
122
|
+
const prefix = "/@fs/";
|
|
123
|
+
if (filePathAbsoluteUserRootDir.startsWith(prefix))
|
|
124
|
+
filePathAbsoluteUserRootDir = filePathAbsoluteUserRootDir.slice(prefix.length);
|
|
125
|
+
if (injectedByVite.some((filePathAbsoluteFilesystem) => filePathAbsoluteFilesystem.endsWith(filePathAbsoluteUserRootDir))) {
|
|
126
|
+
linkKiru.remove();
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
isCleaned = false;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
return isCleaned;
|
|
133
|
+
}
|
|
73
134
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/router/context.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { RouteQuery, RouterState } from "./types.js";
|
|
2
2
|
export interface FileRouterContextType {
|
|
3
|
+
/**
|
|
4
|
+
* Invalidate cached loader data for the given paths
|
|
5
|
+
* @example
|
|
6
|
+
* invalidate("/users", "/posts", "/users/1")
|
|
7
|
+
* // or invalidate based on folder path
|
|
8
|
+
* invalidate("/users/[id]") // (invalidates /users/1, /users/2, etc.)
|
|
9
|
+
*/
|
|
10
|
+
invalidate(...paths: string[]): void;
|
|
3
11
|
/**
|
|
4
12
|
* The current router state
|
|
5
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;;OAGG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7D;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,aAAa,qCAA8C,CAAA;AAKxE,wBAAgB,aAAa,IAAI,qBAAqB,CAErD"}
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;;OAGG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7D;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,aAAa,qCAA8C,CAAA;AAKxE,wBAAgB,aAAa,IAAI,qBAAqB,CAErD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AA0C9C,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAKX,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAKX,MAAM,YAAY,CAAA;AAqBnB,qBAAa,oBAAoB;IACxB,YAAY,EAAE,qBAAqB,CAAA;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,WAAW,CAIV;IACT,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAG3B;IACD,OAAO,CAAC,iBAAiB,CAAC,CAAyB;;IAyC5C,IAAI,CAAC,MAAM,EAAE,gBAAgB;IA+F7B,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IA+DpE,WAAW;IAUX,OAAO;YAYA,SAAS;YA2IT,aAAa;IAqD3B,OAAO,CAAC,UAAU;YAiBJ,QAAQ;YAaR,oBAAoB;IAmBlC,OAAO,CAAC,QAAQ;CAOjB"}
|