@ereo/data 0.1.22 → 0.1.24
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/README.md +18 -10
- package/dist/action.d.ts +26 -1
- package/dist/action.d.ts.map +1 -1
- package/dist/define-route.d.ts +137 -1
- package/dist/define-route.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +254 -30
- package/dist/loader.d.ts +22 -1
- package/dist/loader.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -40,15 +40,17 @@ export const action = createAction(async ({ request }) => {
|
|
|
40
40
|
## Caching Example
|
|
41
41
|
|
|
42
42
|
```typescript
|
|
43
|
-
import { cached, revalidateTag } from '@ereo/data';
|
|
43
|
+
import { cached, cacheKey, revalidateTag } from '@ereo/data';
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
// cached(key, fetchFn, options) — key is required, fetchFn takes no arguments
|
|
46
|
+
const user = await cached(
|
|
47
|
+
cacheKey('user', id),
|
|
48
|
+
() => fetchUser(id),
|
|
49
|
+
{ maxAge: 60, tags: ['users', `user-${id}`] }
|
|
48
50
|
);
|
|
49
51
|
|
|
50
52
|
// Revalidate when user is updated
|
|
51
|
-
await revalidateTag('
|
|
53
|
+
await revalidateTag('users');
|
|
52
54
|
```
|
|
53
55
|
|
|
54
56
|
## Data Pipeline
|
|
@@ -57,13 +59,19 @@ await revalidateTag('user');
|
|
|
57
59
|
import { createPipeline, dataSource, cachedSource } from '@ereo/data';
|
|
58
60
|
|
|
59
61
|
const pipeline = createPipeline({
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
loaders: {
|
|
63
|
+
user: dataSource(() => fetchUser(id)),
|
|
64
|
+
posts: cachedSource(() => fetchPosts(id), { ttl: 300 }),
|
|
65
|
+
// comments depends on posts — declare via dependencies, not function args
|
|
66
|
+
comments: dataSource(() => fetchComments(id)),
|
|
67
|
+
},
|
|
68
|
+
dependencies: {
|
|
69
|
+
comments: ['posts'], // comments waits for posts to finish first
|
|
70
|
+
},
|
|
63
71
|
});
|
|
64
72
|
|
|
65
|
-
const
|
|
66
|
-
// { user, posts, comments }
|
|
73
|
+
const result = await pipeline.execute(loaderArgs);
|
|
74
|
+
// result.data = { user, posts, comments } — independent loaders run in parallel
|
|
67
75
|
```
|
|
68
76
|
|
|
69
77
|
## Documentation
|
package/dist/action.d.ts
CHANGED
|
@@ -80,7 +80,20 @@ export interface ActionResult<T = unknown> {
|
|
|
80
80
|
/**
|
|
81
81
|
* Create a type-safe action function.
|
|
82
82
|
*
|
|
83
|
+
* Accepts either a plain async function (shorthand) or an options object
|
|
84
|
+
* with validation, error handling, and automatic FormData parsing.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* // Shorthand — just pass a function directly
|
|
88
|
+
* export const action = createAction(async ({ request }) => {
|
|
89
|
+
* const formData = await request.formData();
|
|
90
|
+
* const title = formData.get('title');
|
|
91
|
+
* await db.post.create({ data: { title } });
|
|
92
|
+
* return redirect('/posts');
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
83
95
|
* @example
|
|
96
|
+
* // Full options — with validation and auto-parsed FormData
|
|
84
97
|
* export const action = createAction({
|
|
85
98
|
* handler: async ({ formData }) => {
|
|
86
99
|
* const title = formData.get('title');
|
|
@@ -95,6 +108,7 @@ export interface ActionResult<T = unknown> {
|
|
|
95
108
|
* },
|
|
96
109
|
* });
|
|
97
110
|
*/
|
|
111
|
+
export declare function createAction<T, P extends RouteParams = RouteParams>(fn: (args: ActionArgs<P>) => T | Promise<T>): ActionFunction<T, P>;
|
|
98
112
|
export declare function createAction<T, P extends RouteParams = RouteParams>(options: ActionOptions<T, P>): ActionFunction<ActionResult<T>, P>;
|
|
99
113
|
/**
|
|
100
114
|
* Create a simple action from a handler function.
|
|
@@ -177,8 +191,19 @@ export declare function jsonAction<TBody, TResult = TBody, P extends RouteParams
|
|
|
177
191
|
}): ActionFunction<ActionResult<TResult>, P>;
|
|
178
192
|
/**
|
|
179
193
|
* Redirect response helper.
|
|
194
|
+
* Accepts a status code or full ResponseInit for custom headers.
|
|
195
|
+
*/
|
|
196
|
+
export declare function redirect(url: string, init?: number | ResponseInit): Response;
|
|
197
|
+
/**
|
|
198
|
+
* Throw a redirect response.
|
|
199
|
+
* The server catches thrown Responses and returns them directly.
|
|
200
|
+
*/
|
|
201
|
+
export declare function throwRedirect(url: string, init?: number | ResponseInit): never;
|
|
202
|
+
/**
|
|
203
|
+
* XSS-safe data response helper.
|
|
204
|
+
* Uses serializeLoaderData to escape dangerous characters.
|
|
180
205
|
*/
|
|
181
|
-
export declare function
|
|
206
|
+
export declare function data<T>(value: T, init?: ResponseInit): Response;
|
|
182
207
|
/**
|
|
183
208
|
* JSON response helper.
|
|
184
209
|
*/
|
package/dist/action.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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"}
|
package/dist/define-route.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* .build();
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
|
-
import type { LoaderArgs, ActionArgs, AppContext, RouteParams, CacheOptions, MetaDescriptor, InferParams, RouteConfig } from '@ereo/core';
|
|
31
|
+
import type { LoaderArgs, ActionArgs, AppContext, RouteParams, CacheOptions, MetaDescriptor, InferParams, RouteConfig, ShouldRevalidateFunction, ClientLoaderFunction, ClientActionFunction, LinksFunction, MethodHandlerFunction, BeforeLoadFunction } from '@ereo/core';
|
|
32
32
|
/**
|
|
33
33
|
* Brand symbol for route path type preservation.
|
|
34
34
|
*/
|
|
@@ -175,6 +175,46 @@ export interface RouteBuilder<Path extends string, Params extends RouteParams =
|
|
|
175
175
|
* Set route configuration.
|
|
176
176
|
*/
|
|
177
177
|
configure(config: RouteConfig): RouteBuilder<Path, Params>;
|
|
178
|
+
/**
|
|
179
|
+
* Control when this route's loader re-runs after navigations/mutations.
|
|
180
|
+
*/
|
|
181
|
+
shouldRevalidate(fn: ShouldRevalidateFunction): RouteBuilder<Path, Params>;
|
|
182
|
+
/**
|
|
183
|
+
* Define a client-side loader (runs in browser).
|
|
184
|
+
*/
|
|
185
|
+
clientLoader(fn: ClientLoaderFunction): RouteBuilder<Path, Params>;
|
|
186
|
+
/**
|
|
187
|
+
* Define a client-side action (runs in browser).
|
|
188
|
+
*/
|
|
189
|
+
clientAction(fn: ClientActionFunction): RouteBuilder<Path, Params>;
|
|
190
|
+
/**
|
|
191
|
+
* Define per-route link descriptors (stylesheets, preloads, etc.).
|
|
192
|
+
*/
|
|
193
|
+
links(fn: LinksFunction): RouteBuilder<Path, Params>;
|
|
194
|
+
/**
|
|
195
|
+
* Define a beforeLoad guard that runs before the loader.
|
|
196
|
+
*/
|
|
197
|
+
beforeLoad(fn: BeforeLoadFunction<Params>): RouteBuilder<Path, Params>;
|
|
198
|
+
/**
|
|
199
|
+
* Define a GET method handler (API route).
|
|
200
|
+
*/
|
|
201
|
+
get(fn: MethodHandlerFunction<unknown, Params>): RouteBuilder<Path, Params>;
|
|
202
|
+
/**
|
|
203
|
+
* Define a POST method handler (API route).
|
|
204
|
+
*/
|
|
205
|
+
post(fn: MethodHandlerFunction<unknown, Params>): RouteBuilder<Path, Params>;
|
|
206
|
+
/**
|
|
207
|
+
* Define a PUT method handler (API route).
|
|
208
|
+
*/
|
|
209
|
+
put(fn: MethodHandlerFunction<unknown, Params>): RouteBuilder<Path, Params>;
|
|
210
|
+
/**
|
|
211
|
+
* Define a DELETE method handler (API route).
|
|
212
|
+
*/
|
|
213
|
+
delete(fn: MethodHandlerFunction<unknown, Params>): RouteBuilder<Path, Params>;
|
|
214
|
+
/**
|
|
215
|
+
* Define a PATCH method handler (API route).
|
|
216
|
+
*/
|
|
217
|
+
patch(fn: MethodHandlerFunction<unknown, Params>): RouteBuilder<Path, Params>;
|
|
178
218
|
/**
|
|
179
219
|
* Build the route definition (no loader case).
|
|
180
220
|
*/
|
|
@@ -230,6 +270,46 @@ export interface RouteBuilderWithLoader<Path extends string, Params extends Rout
|
|
|
230
270
|
* Set route configuration.
|
|
231
271
|
*/
|
|
232
272
|
configure(config: RouteConfig): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
273
|
+
/**
|
|
274
|
+
* Control when this route's loader re-runs after navigations/mutations.
|
|
275
|
+
*/
|
|
276
|
+
shouldRevalidate(fn: ShouldRevalidateFunction): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
277
|
+
/**
|
|
278
|
+
* Define a client-side loader (runs in browser).
|
|
279
|
+
*/
|
|
280
|
+
clientLoader(fn: ClientLoaderFunction): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
281
|
+
/**
|
|
282
|
+
* Define a client-side action (runs in browser).
|
|
283
|
+
*/
|
|
284
|
+
clientAction(fn: ClientActionFunction): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
285
|
+
/**
|
|
286
|
+
* Define per-route link descriptors (stylesheets, preloads, etc.).
|
|
287
|
+
*/
|
|
288
|
+
links(fn: LinksFunction): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
289
|
+
/**
|
|
290
|
+
* Define a beforeLoad guard that runs before the loader.
|
|
291
|
+
*/
|
|
292
|
+
beforeLoad(fn: BeforeLoadFunction<Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
293
|
+
/**
|
|
294
|
+
* Define a GET method handler (API route).
|
|
295
|
+
*/
|
|
296
|
+
get(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
297
|
+
/**
|
|
298
|
+
* Define a POST method handler (API route).
|
|
299
|
+
*/
|
|
300
|
+
post(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
301
|
+
/**
|
|
302
|
+
* Define a PUT method handler (API route).
|
|
303
|
+
*/
|
|
304
|
+
put(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
305
|
+
/**
|
|
306
|
+
* Define a DELETE method handler (API route).
|
|
307
|
+
*/
|
|
308
|
+
delete(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
309
|
+
/**
|
|
310
|
+
* Define a PATCH method handler (API route).
|
|
311
|
+
*/
|
|
312
|
+
patch(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoader<Path, Params, LoaderData>;
|
|
233
313
|
/**
|
|
234
314
|
* Build the route definition.
|
|
235
315
|
*/
|
|
@@ -259,6 +339,46 @@ export interface RouteBuilderWithLoaderAndAction<Path extends string, Params ext
|
|
|
259
339
|
* Set route configuration.
|
|
260
340
|
*/
|
|
261
341
|
configure(config: RouteConfig): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
342
|
+
/**
|
|
343
|
+
* Control when this route's loader re-runs after navigations/mutations.
|
|
344
|
+
*/
|
|
345
|
+
shouldRevalidate(fn: ShouldRevalidateFunction): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
346
|
+
/**
|
|
347
|
+
* Define a client-side loader (runs in browser).
|
|
348
|
+
*/
|
|
349
|
+
clientLoader(fn: ClientLoaderFunction): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
350
|
+
/**
|
|
351
|
+
* Define a client-side action (runs in browser).
|
|
352
|
+
*/
|
|
353
|
+
clientAction(fn: ClientActionFunction): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
354
|
+
/**
|
|
355
|
+
* Define per-route link descriptors (stylesheets, preloads, etc.).
|
|
356
|
+
*/
|
|
357
|
+
links(fn: LinksFunction): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
358
|
+
/**
|
|
359
|
+
* Define a beforeLoad guard that runs before the loader.
|
|
360
|
+
*/
|
|
361
|
+
beforeLoad(fn: BeforeLoadFunction<Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
362
|
+
/**
|
|
363
|
+
* Define a GET method handler (API route).
|
|
364
|
+
*/
|
|
365
|
+
get(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
366
|
+
/**
|
|
367
|
+
* Define a POST method handler (API route).
|
|
368
|
+
*/
|
|
369
|
+
post(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
370
|
+
/**
|
|
371
|
+
* Define a PUT method handler (API route).
|
|
372
|
+
*/
|
|
373
|
+
put(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
374
|
+
/**
|
|
375
|
+
* Define a DELETE method handler (API route).
|
|
376
|
+
*/
|
|
377
|
+
delete(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
378
|
+
/**
|
|
379
|
+
* Define a PATCH method handler (API route).
|
|
380
|
+
*/
|
|
381
|
+
patch(fn: MethodHandlerFunction<unknown, Params>): RouteBuilderWithLoaderAndAction<Path, Params, LoaderData, ActionData, ActionBody>;
|
|
262
382
|
/**
|
|
263
383
|
* Build the route definition.
|
|
264
384
|
*/
|
|
@@ -285,12 +405,28 @@ export interface RouteDefinition<Path extends string, Params extends RouteParams
|
|
|
285
405
|
config?: RouteConfig;
|
|
286
406
|
/** Cache options */
|
|
287
407
|
cache?: CacheOptions;
|
|
408
|
+
/** Controls when this route's loader re-runs */
|
|
409
|
+
shouldRevalidate?: ShouldRevalidateFunction;
|
|
410
|
+
/** Client-side loader (runs in browser) */
|
|
411
|
+
clientLoader?: ClientLoaderFunction;
|
|
412
|
+
/** Client-side action (runs in browser) */
|
|
413
|
+
clientAction?: ClientActionFunction;
|
|
414
|
+
/** Per-route link descriptors */
|
|
415
|
+
links?: LinksFunction;
|
|
288
416
|
/** Search params schema */
|
|
289
417
|
searchParamsSchema?: ValidationSchema<unknown>;
|
|
290
418
|
/** Hash params schema */
|
|
291
419
|
hashParamsSchema?: ValidationSchema<unknown>;
|
|
292
420
|
/** Action body schema */
|
|
293
421
|
actionBodySchema?: ValidationSchema<ActionBody>;
|
|
422
|
+
/** beforeLoad guard */
|
|
423
|
+
beforeLoad?: BeforeLoadFunction<Params>;
|
|
424
|
+
/** HTTP method handlers (API routes) */
|
|
425
|
+
GET?: MethodHandlerFunction;
|
|
426
|
+
POST?: MethodHandlerFunction;
|
|
427
|
+
PUT?: MethodHandlerFunction;
|
|
428
|
+
DELETE?: MethodHandlerFunction;
|
|
429
|
+
PATCH?: MethodHandlerFunction;
|
|
294
430
|
/** Type brands for external type inference */
|
|
295
431
|
readonly _types: {
|
|
296
432
|
path: Path;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-route.d.ts","sourceRoot":"","sources":["../src/define-route.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"define-route.d.ts","sourceRoot":"","sources":["../src/define-route.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Data loading and caching for the EreoJS framework.
|
|
5
5
|
* One pattern, not four - simple and explicit.
|
|
6
6
|
*/
|
|
7
|
-
export { createLoader, defer, isDeferred, resolveDeferred, fetchData, FetchError, serializeLoaderData, parseLoaderData, combineLoaders, clientLoader, } from './loader';
|
|
7
|
+
export { createLoader, defer, isDeferred, resolveDeferred, hasDeferredData, resolveAllDeferred, fetchData, FetchError, serializeLoaderData, parseLoaderData, combineLoaders, clientLoader, } from './loader';
|
|
8
8
|
export type { LoaderOptions, DeferredData } from './loader';
|
|
9
|
-
export { createAction, action, typedAction, jsonAction, parseRequestBody, formDataToObject, coerceValue, redirect, json, error, parseFormData, validateRequired, combineValidators, } from './action';
|
|
9
|
+
export { createAction, action, typedAction, jsonAction, parseRequestBody, formDataToObject, coerceValue, redirect, throwRedirect, json, data, error, parseFormData, validateRequired, combineValidators, } from './action';
|
|
10
10
|
export type { ActionOptions, TypedActionOptions, TypedActionArgs, ActionBody, ValidationResult, ActionResult, } from './action';
|
|
11
11
|
export { MemoryCache, getCache, setCache, cached, generateCacheKey, cacheKey, buildCacheControl, parseCacheControl, Cached, createDataCacheAdapter, } from './cache';
|
|
12
12
|
export type { CacheEntry, CacheStorage } from './cache';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,YAAY,EACZ,KAAK,EACL,UAAU,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,IAAI,EACJ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGxE,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,+BAA+B,EAC/B,eAAe,EACf,eAAe,EACf,eAAe,IAAI,oBAAoB,EACvC,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,IAAI,oBAAoB,EACvC,eAAe,IAAI,oBAAoB,EACvC,gBAAgB,EAChB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,YAAY,EACZ,KAAK,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,IAAI,EACJ,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGxE,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,sBAAsB,EACtB,+BAA+B,EAC/B,eAAe,EACf,eAAe,EACf,eAAe,IAAI,oBAAoB,EACvC,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,IAAI,oBAAoB,EACvC,eAAe,IAAI,oBAAoB,EACvC,gBAAgB,EAChB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -244,7 +244,11 @@ function Cached(options) {
|
|
|
244
244
|
var globalCache = null;
|
|
245
245
|
|
|
246
246
|
// src/loader.ts
|
|
247
|
-
function createLoader(
|
|
247
|
+
function createLoader(optionsOrFn) {
|
|
248
|
+
if (typeof optionsOrFn === "function") {
|
|
249
|
+
return optionsOrFn;
|
|
250
|
+
}
|
|
251
|
+
const options = optionsOrFn;
|
|
248
252
|
return async (args) => {
|
|
249
253
|
const { context } = args;
|
|
250
254
|
if (options.cache) {
|
|
@@ -289,6 +293,32 @@ function isDeferred(value) {
|
|
|
289
293
|
async function resolveDeferred(deferred) {
|
|
290
294
|
return deferred.promise;
|
|
291
295
|
}
|
|
296
|
+
function hasDeferredData(data) {
|
|
297
|
+
if (data == null || typeof data !== "object")
|
|
298
|
+
return false;
|
|
299
|
+
if (isDeferred(data))
|
|
300
|
+
return true;
|
|
301
|
+
if (Array.isArray(data))
|
|
302
|
+
return data.some(hasDeferredData);
|
|
303
|
+
for (const value of Object.values(data)) {
|
|
304
|
+
if (hasDeferredData(value))
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
async function resolveAllDeferred(data) {
|
|
310
|
+
if (data == null || typeof data !== "object")
|
|
311
|
+
return data;
|
|
312
|
+
if (isDeferred(data)) {
|
|
313
|
+
return await data.promise;
|
|
314
|
+
}
|
|
315
|
+
if (Array.isArray(data)) {
|
|
316
|
+
return await Promise.all(data.map(resolveAllDeferred));
|
|
317
|
+
}
|
|
318
|
+
const entries = Object.entries(data);
|
|
319
|
+
const resolvedEntries = await Promise.all(entries.map(async ([key, value]) => [key, await resolveAllDeferred(value)]));
|
|
320
|
+
return Object.fromEntries(resolvedEntries);
|
|
321
|
+
}
|
|
292
322
|
async function fetchData(input, init) {
|
|
293
323
|
const response = await fetch(input, init);
|
|
294
324
|
if (!response.ok) {
|
|
@@ -335,7 +365,11 @@ function clientLoader(load) {
|
|
|
335
365
|
};
|
|
336
366
|
}
|
|
337
367
|
// src/action.ts
|
|
338
|
-
function createAction(
|
|
368
|
+
function createAction(optionsOrFn) {
|
|
369
|
+
if (typeof optionsOrFn === "function") {
|
|
370
|
+
return optionsOrFn;
|
|
371
|
+
}
|
|
372
|
+
const options = optionsOrFn;
|
|
339
373
|
return async (args) => {
|
|
340
374
|
const { request } = args;
|
|
341
375
|
const formData = await request.formData();
|
|
@@ -585,19 +619,37 @@ function jsonAction(options) {
|
|
|
585
619
|
return typedAction(options)(args);
|
|
586
620
|
};
|
|
587
621
|
}
|
|
588
|
-
function redirect(url,
|
|
622
|
+
function redirect(url, init) {
|
|
623
|
+
const status = typeof init === "number" ? init : init?.status ?? 302;
|
|
624
|
+
const headers = new Headers(typeof init === "object" ? init?.headers : undefined);
|
|
625
|
+
headers.set("Location", url);
|
|
589
626
|
return new Response(null, {
|
|
627
|
+
...typeof init === "object" ? init : undefined,
|
|
590
628
|
status,
|
|
591
|
-
headers
|
|
629
|
+
headers
|
|
592
630
|
});
|
|
593
631
|
}
|
|
594
|
-
function
|
|
595
|
-
|
|
632
|
+
function throwRedirect(url, init) {
|
|
633
|
+
throw redirect(url, init);
|
|
634
|
+
}
|
|
635
|
+
function data(value, init) {
|
|
636
|
+
const headers = new Headers(init?.headers);
|
|
637
|
+
if (!headers.has("Content-Type")) {
|
|
638
|
+
headers.set("Content-Type", "application/json");
|
|
639
|
+
}
|
|
640
|
+
return new Response(serializeLoaderData(value), {
|
|
596
641
|
...init,
|
|
597
|
-
headers
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
642
|
+
headers
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
function json(data2, init) {
|
|
646
|
+
const headers = new Headers(init?.headers);
|
|
647
|
+
if (!headers.has("Content-Type")) {
|
|
648
|
+
headers.set("Content-Type", "application/json");
|
|
649
|
+
}
|
|
650
|
+
return new Response(JSON.stringify(data2), {
|
|
651
|
+
...init,
|
|
652
|
+
headers
|
|
601
653
|
});
|
|
602
654
|
}
|
|
603
655
|
function error(message, status = 500) {
|
|
@@ -1056,13 +1108,69 @@ function defineRoute(path) {
|
|
|
1056
1108
|
state.config = config;
|
|
1057
1109
|
return createBuilder();
|
|
1058
1110
|
},
|
|
1111
|
+
shouldRevalidate(fn) {
|
|
1112
|
+
state.shouldRevalidate = fn;
|
|
1113
|
+
return createBuilder();
|
|
1114
|
+
},
|
|
1115
|
+
clientLoader(fn) {
|
|
1116
|
+
state.clientLoader = fn;
|
|
1117
|
+
return createBuilder();
|
|
1118
|
+
},
|
|
1119
|
+
clientAction(fn) {
|
|
1120
|
+
state.clientAction = fn;
|
|
1121
|
+
return createBuilder();
|
|
1122
|
+
},
|
|
1123
|
+
links(fn) {
|
|
1124
|
+
state.links = fn;
|
|
1125
|
+
return createBuilder();
|
|
1126
|
+
},
|
|
1127
|
+
beforeLoad(fn) {
|
|
1128
|
+
state.beforeLoad = fn;
|
|
1129
|
+
return createBuilder();
|
|
1130
|
+
},
|
|
1131
|
+
get(fn) {
|
|
1132
|
+
if (!state.methodHandlers)
|
|
1133
|
+
state.methodHandlers = {};
|
|
1134
|
+
state.methodHandlers.GET = fn;
|
|
1135
|
+
return createBuilder();
|
|
1136
|
+
},
|
|
1137
|
+
post(fn) {
|
|
1138
|
+
if (!state.methodHandlers)
|
|
1139
|
+
state.methodHandlers = {};
|
|
1140
|
+
state.methodHandlers.POST = fn;
|
|
1141
|
+
return createBuilder();
|
|
1142
|
+
},
|
|
1143
|
+
put(fn) {
|
|
1144
|
+
if (!state.methodHandlers)
|
|
1145
|
+
state.methodHandlers = {};
|
|
1146
|
+
state.methodHandlers.PUT = fn;
|
|
1147
|
+
return createBuilder();
|
|
1148
|
+
},
|
|
1149
|
+
delete(fn) {
|
|
1150
|
+
if (!state.methodHandlers)
|
|
1151
|
+
state.methodHandlers = {};
|
|
1152
|
+
state.methodHandlers.DELETE = fn;
|
|
1153
|
+
return createBuilder();
|
|
1154
|
+
},
|
|
1155
|
+
patch(fn) {
|
|
1156
|
+
if (!state.methodHandlers)
|
|
1157
|
+
state.methodHandlers = {};
|
|
1158
|
+
state.methodHandlers.PATCH = fn;
|
|
1159
|
+
return createBuilder();
|
|
1160
|
+
},
|
|
1059
1161
|
build() {
|
|
1060
1162
|
return {
|
|
1061
1163
|
path,
|
|
1062
1164
|
middleware: state.middleware,
|
|
1063
1165
|
config: state.config,
|
|
1166
|
+
shouldRevalidate: state.shouldRevalidate,
|
|
1167
|
+
clientLoader: state.clientLoader,
|
|
1168
|
+
clientAction: state.clientAction,
|
|
1169
|
+
links: state.links,
|
|
1064
1170
|
searchParamsSchema: state.searchParamsSchema,
|
|
1065
1171
|
hashParamsSchema: state.hashParamsSchema,
|
|
1172
|
+
beforeLoad: state.beforeLoad,
|
|
1173
|
+
...state.methodHandlers || {},
|
|
1066
1174
|
_types: {}
|
|
1067
1175
|
};
|
|
1068
1176
|
}
|
|
@@ -1097,6 +1205,56 @@ function defineRoute(path) {
|
|
|
1097
1205
|
state.config = config;
|
|
1098
1206
|
return createBuilderWithLoader();
|
|
1099
1207
|
},
|
|
1208
|
+
shouldRevalidate(fn) {
|
|
1209
|
+
state.shouldRevalidate = fn;
|
|
1210
|
+
return createBuilderWithLoader();
|
|
1211
|
+
},
|
|
1212
|
+
clientLoader(fn) {
|
|
1213
|
+
state.clientLoader = fn;
|
|
1214
|
+
return createBuilderWithLoader();
|
|
1215
|
+
},
|
|
1216
|
+
clientAction(fn) {
|
|
1217
|
+
state.clientAction = fn;
|
|
1218
|
+
return createBuilderWithLoader();
|
|
1219
|
+
},
|
|
1220
|
+
links(fn) {
|
|
1221
|
+
state.links = fn;
|
|
1222
|
+
return createBuilderWithLoader();
|
|
1223
|
+
},
|
|
1224
|
+
beforeLoad(fn) {
|
|
1225
|
+
state.beforeLoad = fn;
|
|
1226
|
+
return createBuilderWithLoader();
|
|
1227
|
+
},
|
|
1228
|
+
get(fn) {
|
|
1229
|
+
if (!state.methodHandlers)
|
|
1230
|
+
state.methodHandlers = {};
|
|
1231
|
+
state.methodHandlers.GET = fn;
|
|
1232
|
+
return createBuilderWithLoader();
|
|
1233
|
+
},
|
|
1234
|
+
post(fn) {
|
|
1235
|
+
if (!state.methodHandlers)
|
|
1236
|
+
state.methodHandlers = {};
|
|
1237
|
+
state.methodHandlers.POST = fn;
|
|
1238
|
+
return createBuilderWithLoader();
|
|
1239
|
+
},
|
|
1240
|
+
put(fn) {
|
|
1241
|
+
if (!state.methodHandlers)
|
|
1242
|
+
state.methodHandlers = {};
|
|
1243
|
+
state.methodHandlers.PUT = fn;
|
|
1244
|
+
return createBuilderWithLoader();
|
|
1245
|
+
},
|
|
1246
|
+
delete(fn) {
|
|
1247
|
+
if (!state.methodHandlers)
|
|
1248
|
+
state.methodHandlers = {};
|
|
1249
|
+
state.methodHandlers.DELETE = fn;
|
|
1250
|
+
return createBuilderWithLoader();
|
|
1251
|
+
},
|
|
1252
|
+
patch(fn) {
|
|
1253
|
+
if (!state.methodHandlers)
|
|
1254
|
+
state.methodHandlers = {};
|
|
1255
|
+
state.methodHandlers.PATCH = fn;
|
|
1256
|
+
return createBuilderWithLoader();
|
|
1257
|
+
},
|
|
1100
1258
|
build() {
|
|
1101
1259
|
return {
|
|
1102
1260
|
path,
|
|
@@ -1106,8 +1264,14 @@ function defineRoute(path) {
|
|
|
1106
1264
|
middleware: state.middleware,
|
|
1107
1265
|
config: state.config,
|
|
1108
1266
|
cache: state.cache,
|
|
1267
|
+
shouldRevalidate: state.shouldRevalidate,
|
|
1268
|
+
clientLoader: state.clientLoader,
|
|
1269
|
+
clientAction: state.clientAction,
|
|
1270
|
+
links: state.links,
|
|
1109
1271
|
searchParamsSchema: state.searchParamsSchema,
|
|
1110
1272
|
hashParamsSchema: state.hashParamsSchema,
|
|
1273
|
+
beforeLoad: state.beforeLoad,
|
|
1274
|
+
...state.methodHandlers || {},
|
|
1111
1275
|
_types: {}
|
|
1112
1276
|
};
|
|
1113
1277
|
}
|
|
@@ -1136,6 +1300,56 @@ function defineRoute(path) {
|
|
|
1136
1300
|
state.config = config;
|
|
1137
1301
|
return createBuilderWithLoaderAndAction();
|
|
1138
1302
|
},
|
|
1303
|
+
shouldRevalidate(fn) {
|
|
1304
|
+
state.shouldRevalidate = fn;
|
|
1305
|
+
return createBuilderWithLoaderAndAction();
|
|
1306
|
+
},
|
|
1307
|
+
clientLoader(fn) {
|
|
1308
|
+
state.clientLoader = fn;
|
|
1309
|
+
return createBuilderWithLoaderAndAction();
|
|
1310
|
+
},
|
|
1311
|
+
clientAction(fn) {
|
|
1312
|
+
state.clientAction = fn;
|
|
1313
|
+
return createBuilderWithLoaderAndAction();
|
|
1314
|
+
},
|
|
1315
|
+
links(fn) {
|
|
1316
|
+
state.links = fn;
|
|
1317
|
+
return createBuilderWithLoaderAndAction();
|
|
1318
|
+
},
|
|
1319
|
+
beforeLoad(fn) {
|
|
1320
|
+
state.beforeLoad = fn;
|
|
1321
|
+
return createBuilderWithLoaderAndAction();
|
|
1322
|
+
},
|
|
1323
|
+
get(fn) {
|
|
1324
|
+
if (!state.methodHandlers)
|
|
1325
|
+
state.methodHandlers = {};
|
|
1326
|
+
state.methodHandlers.GET = fn;
|
|
1327
|
+
return createBuilderWithLoaderAndAction();
|
|
1328
|
+
},
|
|
1329
|
+
post(fn) {
|
|
1330
|
+
if (!state.methodHandlers)
|
|
1331
|
+
state.methodHandlers = {};
|
|
1332
|
+
state.methodHandlers.POST = fn;
|
|
1333
|
+
return createBuilderWithLoaderAndAction();
|
|
1334
|
+
},
|
|
1335
|
+
put(fn) {
|
|
1336
|
+
if (!state.methodHandlers)
|
|
1337
|
+
state.methodHandlers = {};
|
|
1338
|
+
state.methodHandlers.PUT = fn;
|
|
1339
|
+
return createBuilderWithLoaderAndAction();
|
|
1340
|
+
},
|
|
1341
|
+
delete(fn) {
|
|
1342
|
+
if (!state.methodHandlers)
|
|
1343
|
+
state.methodHandlers = {};
|
|
1344
|
+
state.methodHandlers.DELETE = fn;
|
|
1345
|
+
return createBuilderWithLoaderAndAction();
|
|
1346
|
+
},
|
|
1347
|
+
patch(fn) {
|
|
1348
|
+
if (!state.methodHandlers)
|
|
1349
|
+
state.methodHandlers = {};
|
|
1350
|
+
state.methodHandlers.PATCH = fn;
|
|
1351
|
+
return createBuilderWithLoaderAndAction();
|
|
1352
|
+
},
|
|
1139
1353
|
build() {
|
|
1140
1354
|
return {
|
|
1141
1355
|
path,
|
|
@@ -1146,9 +1360,15 @@ function defineRoute(path) {
|
|
|
1146
1360
|
middleware: state.middleware,
|
|
1147
1361
|
config: state.config,
|
|
1148
1362
|
cache: state.cache,
|
|
1363
|
+
shouldRevalidate: state.shouldRevalidate,
|
|
1364
|
+
clientLoader: state.clientLoader,
|
|
1365
|
+
clientAction: state.clientAction,
|
|
1366
|
+
links: state.links,
|
|
1149
1367
|
searchParamsSchema: state.searchParamsSchema,
|
|
1150
1368
|
hashParamsSchema: state.hashParamsSchema,
|
|
1151
1369
|
actionBodySchema: state.actionBodySchema,
|
|
1370
|
+
beforeLoad: state.beforeLoad,
|
|
1371
|
+
...state.methodHandlers || {},
|
|
1152
1372
|
_types: {}
|
|
1153
1373
|
};
|
|
1154
1374
|
}
|
|
@@ -1247,11 +1467,11 @@ function formDataToObject2(formData) {
|
|
|
1247
1467
|
// src/schema-adapters.ts
|
|
1248
1468
|
function ereoSchema(schema) {
|
|
1249
1469
|
return {
|
|
1250
|
-
parse: (
|
|
1251
|
-
return schema.parse(
|
|
1470
|
+
parse: (data2) => {
|
|
1471
|
+
return schema.parse(data2);
|
|
1252
1472
|
},
|
|
1253
|
-
safeParse: (
|
|
1254
|
-
const result = schema.safeParse(
|
|
1473
|
+
safeParse: (data2) => {
|
|
1474
|
+
const result = schema.safeParse(data2);
|
|
1255
1475
|
if (result.success) {
|
|
1256
1476
|
return { success: true, data: result.data };
|
|
1257
1477
|
}
|
|
@@ -1276,8 +1496,8 @@ function isEreoSchema(value) {
|
|
|
1276
1496
|
function createPaginationParser(options = {}) {
|
|
1277
1497
|
const { defaultPage = 1, defaultLimit = 10, maxLimit = 100 } = options;
|
|
1278
1498
|
return {
|
|
1279
|
-
parse: (
|
|
1280
|
-
const input =
|
|
1499
|
+
parse: (data2) => {
|
|
1500
|
+
const input = data2;
|
|
1281
1501
|
const page = parseNumber(input.page, defaultPage);
|
|
1282
1502
|
const limit = Math.min(parseNumber(input.limit, defaultLimit), maxLimit);
|
|
1283
1503
|
const offset = parseNumber(input.offset, undefined);
|
|
@@ -1287,9 +1507,9 @@ function createPaginationParser(options = {}) {
|
|
|
1287
1507
|
offset: offset !== undefined && offset >= 0 ? offset : undefined
|
|
1288
1508
|
};
|
|
1289
1509
|
},
|
|
1290
|
-
safeParse: (
|
|
1510
|
+
safeParse: (data2) => {
|
|
1291
1511
|
try {
|
|
1292
|
-
const result = createPaginationParser(options).parse(
|
|
1512
|
+
const result = createPaginationParser(options).parse(data2);
|
|
1293
1513
|
return { success: true, data: result };
|
|
1294
1514
|
} catch (error2) {
|
|
1295
1515
|
return {
|
|
@@ -1309,15 +1529,15 @@ function createPaginationParser(options = {}) {
|
|
|
1309
1529
|
}
|
|
1310
1530
|
function createSortParser(allowedFields, defaultField, defaultOrder = "asc") {
|
|
1311
1531
|
return {
|
|
1312
|
-
parse: (
|
|
1313
|
-
const input =
|
|
1532
|
+
parse: (data2) => {
|
|
1533
|
+
const input = data2;
|
|
1314
1534
|
const sortBy = allowedFields.includes(input.sortBy) ? input.sortBy : defaultField;
|
|
1315
1535
|
const sortOrder = input.sortOrder === "asc" || input.sortOrder === "desc" ? input.sortOrder : defaultOrder;
|
|
1316
1536
|
return { sortBy, sortOrder };
|
|
1317
1537
|
},
|
|
1318
|
-
safeParse: (
|
|
1538
|
+
safeParse: (data2) => {
|
|
1319
1539
|
try {
|
|
1320
|
-
const result = createSortParser(allowedFields, defaultField, defaultOrder).parse(
|
|
1540
|
+
const result = createSortParser(allowedFields, defaultField, defaultOrder).parse(data2);
|
|
1321
1541
|
return { success: true, data: result };
|
|
1322
1542
|
} catch (error2) {
|
|
1323
1543
|
return {
|
|
@@ -1337,8 +1557,8 @@ function createSortParser(allowedFields, defaultField, defaultOrder = "asc") {
|
|
|
1337
1557
|
}
|
|
1338
1558
|
function createFilterParser(allowedFilters) {
|
|
1339
1559
|
return {
|
|
1340
|
-
parse: (
|
|
1341
|
-
const input =
|
|
1560
|
+
parse: (data2) => {
|
|
1561
|
+
const input = data2;
|
|
1342
1562
|
const result = {};
|
|
1343
1563
|
for (const [key, allowedValues] of Object.entries(allowedFilters)) {
|
|
1344
1564
|
const value = input[key];
|
|
@@ -1355,9 +1575,9 @@ function createFilterParser(allowedFilters) {
|
|
|
1355
1575
|
}
|
|
1356
1576
|
return result;
|
|
1357
1577
|
},
|
|
1358
|
-
safeParse: (
|
|
1578
|
+
safeParse: (data2) => {
|
|
1359
1579
|
try {
|
|
1360
|
-
const res = createFilterParser(allowedFilters).parse(
|
|
1580
|
+
const res = createFilterParser(allowedFilters).parse(data2);
|
|
1361
1581
|
return { success: true, data: res };
|
|
1362
1582
|
} catch (error2) {
|
|
1363
1583
|
return {
|
|
@@ -1469,8 +1689,8 @@ class SchemaBuilderImpl {
|
|
|
1469
1689
|
build() {
|
|
1470
1690
|
const fields = this.fields;
|
|
1471
1691
|
return {
|
|
1472
|
-
parse: (
|
|
1473
|
-
const input =
|
|
1692
|
+
parse: (data2) => {
|
|
1693
|
+
const input = data2 || {};
|
|
1474
1694
|
const result = {};
|
|
1475
1695
|
for (const [key, config] of Object.entries(fields)) {
|
|
1476
1696
|
const value = input[key];
|
|
@@ -1504,9 +1724,9 @@ class SchemaBuilderImpl {
|
|
|
1504
1724
|
}
|
|
1505
1725
|
return result;
|
|
1506
1726
|
},
|
|
1507
|
-
safeParse: (
|
|
1727
|
+
safeParse: (data2) => {
|
|
1508
1728
|
try {
|
|
1509
|
-
const result = schemaBuilder().build().parse(
|
|
1729
|
+
const result = schemaBuilder().build().parse(data2);
|
|
1510
1730
|
return { success: true, data: result };
|
|
1511
1731
|
} catch (error2) {
|
|
1512
1732
|
return {
|
|
@@ -1529,6 +1749,7 @@ export {
|
|
|
1529
1749
|
validateRequired,
|
|
1530
1750
|
unstable_cache,
|
|
1531
1751
|
typedAction,
|
|
1752
|
+
throwRedirect,
|
|
1532
1753
|
tags,
|
|
1533
1754
|
setCache,
|
|
1534
1755
|
serializeLoaderData,
|
|
@@ -1537,6 +1758,7 @@ export {
|
|
|
1537
1758
|
revalidatePath,
|
|
1538
1759
|
revalidate2 as revalidate,
|
|
1539
1760
|
resolveDeferred,
|
|
1761
|
+
resolveAllDeferred,
|
|
1540
1762
|
redirect,
|
|
1541
1763
|
parseStringArray,
|
|
1542
1764
|
parseRequestBody,
|
|
@@ -1552,6 +1774,7 @@ export {
|
|
|
1552
1774
|
json,
|
|
1553
1775
|
isEreoSchema,
|
|
1554
1776
|
isDeferred,
|
|
1777
|
+
hasDeferredData,
|
|
1555
1778
|
getCache,
|
|
1556
1779
|
generateMetricsVisualization,
|
|
1557
1780
|
generateCacheKey,
|
|
@@ -1563,6 +1786,7 @@ export {
|
|
|
1563
1786
|
defineRoute,
|
|
1564
1787
|
defer,
|
|
1565
1788
|
dataSource,
|
|
1789
|
+
data,
|
|
1566
1790
|
createSortParser,
|
|
1567
1791
|
createRevalidationHandler,
|
|
1568
1792
|
createPipeline,
|
package/dist/loader.d.ts
CHANGED
|
@@ -21,7 +21,17 @@ export interface LoaderOptions<T, P extends RouteParams = RouteParams> {
|
|
|
21
21
|
/**
|
|
22
22
|
* Create a type-safe loader function.
|
|
23
23
|
*
|
|
24
|
+
* Accepts either a plain async function (shorthand) or an options object
|
|
25
|
+
* with caching, transforms, and error handling.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Shorthand — just pass a function directly
|
|
29
|
+
* export const loader = createLoader(async ({ params }) => {
|
|
30
|
+
* return db.post.findUnique({ where: { slug: params.slug } });
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
24
33
|
* @example
|
|
34
|
+
* // Full options — with caching, transforms, and error handling
|
|
25
35
|
* export const loader = createLoader({
|
|
26
36
|
* load: async ({ params }) => {
|
|
27
37
|
* return db.post.findUnique({ where: { slug: params.slug } });
|
|
@@ -29,7 +39,7 @@ export interface LoaderOptions<T, P extends RouteParams = RouteParams> {
|
|
|
29
39
|
* cache: { maxAge: 60, tags: ['posts'] },
|
|
30
40
|
* });
|
|
31
41
|
*/
|
|
32
|
-
export declare function createLoader<T, P extends RouteParams = RouteParams>(
|
|
42
|
+
export declare function createLoader<T, P extends RouteParams = RouteParams>(optionsOrFn: LoaderOptions<T, P> | ((args: LoaderArgs<P>) => T | Promise<T>)): LoaderFunction<T, P>;
|
|
33
43
|
/**
|
|
34
44
|
* Defer data loading until render time.
|
|
35
45
|
* Useful for non-critical data that shouldn't block the page.
|
|
@@ -52,6 +62,17 @@ export declare function isDeferred<T>(value: unknown): value is DeferredData<T>;
|
|
|
52
62
|
* Wait for deferred data to resolve.
|
|
53
63
|
*/
|
|
54
64
|
export declare function resolveDeferred<T>(deferred: DeferredData<T>): Promise<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Recursively check if any value in a data structure is DeferredData.
|
|
67
|
+
* Used as a fast-path guard: skip async resolution when no deferred data exists.
|
|
68
|
+
*/
|
|
69
|
+
export declare function hasDeferredData(data: unknown): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Recursively walk a data structure, await all DeferredData.promise values,
|
|
72
|
+
* and return a new object with plain resolved values.
|
|
73
|
+
* Uses Promise.all for parallel resolution of sibling deferred values.
|
|
74
|
+
*/
|
|
75
|
+
export declare function resolveAllDeferred<T>(data: T): Promise<T>;
|
|
55
76
|
/**
|
|
56
77
|
* Helper to extract data from a fetch response.
|
|
57
78
|
*/
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEd,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW;IACnE,iCAAiC;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,4BAA4B;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;CACvF;AAED
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ereo/data",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Ereo Team",
|
|
6
6
|
"homepage": "https://ereo.dev",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"typecheck": "tsc --noEmit"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@ereo/core": "^0.1.
|
|
35
|
+
"@ereo/core": "^0.1.24"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/bun": "^1.1.0",
|