fibrae 0.2.2 → 0.3.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/cli/build.d.ts +34 -0
- package/dist/cli/build.js +92 -0
- package/dist/cli/build.js.map +1 -0
- package/dist/cli/cli.d.ts +10 -0
- package/dist/cli/cli.js +43 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/config.d.ts +19 -0
- package/dist/cli/config.js +5 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/html.d.ts +13 -0
- package/dist/cli/html.js +101 -0
- package/dist/cli/html.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/vite-plugin.d.ts +9 -0
- package/dist/cli/vite-plugin.js +143 -0
- package/dist/cli/vite-plugin.js.map +1 -0
- package/dist/components.d.ts +27 -29
- package/dist/components.js +32 -52
- package/dist/components.js.map +1 -1
- package/dist/core.js +7 -10
- package/dist/core.js.map +1 -1
- package/dist/dom.d.ts +13 -4
- package/dist/dom.js +91 -26
- package/dist/dom.js.map +1 -1
- package/dist/fiber-boundary.d.ts +39 -0
- package/dist/fiber-boundary.js +151 -0
- package/dist/fiber-boundary.js.map +1 -0
- package/dist/fiber-commit.d.ts +27 -0
- package/dist/fiber-commit.js +243 -0
- package/dist/fiber-commit.js.map +1 -0
- package/dist/fiber-render.d.ts +9 -9
- package/dist/fiber-render.js +165 -958
- package/dist/fiber-render.js.map +1 -1
- package/dist/fiber-tree.d.ts +77 -0
- package/dist/fiber-tree.js +152 -0
- package/dist/fiber-tree.js.map +1 -0
- package/dist/fiber-update.d.ts +46 -0
- package/dist/fiber-update.js +515 -0
- package/dist/fiber-update.js.map +1 -0
- package/dist/h.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jsx-runtime/index.d.ts +253 -2
- package/dist/live/atom.d.ts +31 -0
- package/dist/live/atom.js +33 -0
- package/dist/live/atom.js.map +1 -0
- package/dist/live/client.d.ts +50 -0
- package/dist/live/client.js +90 -0
- package/dist/live/client.js.map +1 -0
- package/dist/live/codec.d.ts +39 -0
- package/dist/live/codec.js +41 -0
- package/dist/live/codec.js.map +1 -0
- package/dist/live/config.d.ts +13 -0
- package/dist/live/config.js +11 -0
- package/dist/live/config.js.map +1 -0
- package/dist/live/index.d.ts +25 -0
- package/dist/live/index.js +19 -0
- package/dist/live/index.js.map +1 -0
- package/dist/live/server.d.ts +83 -0
- package/dist/live/server.js +106 -0
- package/dist/live/server.js.map +1 -0
- package/dist/live/sse-stream.d.ts +14 -0
- package/dist/live/sse-stream.js +30 -0
- package/dist/live/sse-stream.js.map +1 -0
- package/dist/live/types.d.ts +40 -0
- package/dist/live/types.js +20 -0
- package/dist/live/types.js.map +1 -0
- package/dist/router/History.d.ts +2 -2
- package/dist/router/History.js.map +1 -1
- package/dist/router/Link.d.ts +8 -4
- package/dist/router/Link.js +13 -34
- package/dist/router/Link.js.map +1 -1
- package/dist/router/Navigator.d.ts +12 -1
- package/dist/router/Navigator.js +31 -68
- package/dist/router/Navigator.js.map +1 -1
- package/dist/router/Route.d.ts +16 -3
- package/dist/router/Route.js +32 -25
- package/dist/router/Route.js.map +1 -1
- package/dist/router/Router.d.ts +27 -19
- package/dist/router/Router.js +78 -101
- package/dist/router/Router.js.map +1 -1
- package/dist/router/RouterBuilder.d.ts +106 -34
- package/dist/router/RouterBuilder.js +78 -39
- package/dist/router/RouterBuilder.js.map +1 -1
- package/dist/router/RouterOutlet.d.ts +1 -18
- package/dist/router/RouterOutlet.js +25 -8
- package/dist/router/RouterOutlet.js.map +1 -1
- package/dist/router/RouterState.d.ts +1 -1
- package/dist/router/index.d.ts +4 -4
- package/dist/router/index.js +4 -2
- package/dist/router/index.js.map +1 -1
- package/dist/router/utils.d.ts +36 -0
- package/dist/router/utils.js +48 -0
- package/dist/router/utils.js.map +1 -0
- package/dist/runtime.d.ts +10 -7
- package/dist/runtime.js +20 -2
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +15 -29
- package/dist/server.js.map +1 -1
- package/dist/shared.d.ts +58 -59
- package/dist/shared.js +51 -13
- package/dist/shared.js.map +1 -1
- package/dist/tracking.d.ts +4 -3
- package/dist/tracking.js +6 -1
- package/dist/tracking.js.map +1 -1
- package/package.json +32 -7
- package/dist/hydration.d.ts +0 -30
- package/dist/hydration.js +0 -355
- package/dist/hydration.js.map +0 -1
- package/dist/render.d.ts +0 -19
- package/dist/render.js +0 -285
- package/dist/render.js.map +0 -1
- package/dist/scope-utils.d.ts +0 -14
- package/dist/scope-utils.js +0 -29
- package/dist/scope-utils.js.map +0 -1
package/dist/router/Router.js
CHANGED
|
@@ -15,32 +15,36 @@ import * as Option from "effect/Option";
|
|
|
15
15
|
import * as Effect from "effect/Effect";
|
|
16
16
|
import * as Layer from "effect/Layer";
|
|
17
17
|
import * as Context from "effect/Context";
|
|
18
|
-
import * as
|
|
18
|
+
import * as Schema from "effect/Schema";
|
|
19
19
|
import { Registry as AtomRegistry } from "@effect-atom/atom";
|
|
20
20
|
import { History, MemoryHistoryLive } from "./History.js";
|
|
21
21
|
import { Navigator, NavigatorLive } from "./Navigator.js";
|
|
22
22
|
import { RouterHandlers } from "./RouterBuilder.js";
|
|
23
23
|
import { RouterStateAtom } from "./RouterState.js";
|
|
24
|
+
import { parseSearchParams, stripBasePath } from "./utils.js";
|
|
24
25
|
/**
|
|
25
26
|
* Router error for route matching and navigation failures.
|
|
26
27
|
*/
|
|
27
|
-
export class RouterError extends
|
|
28
|
+
export class RouterError extends Schema.TaggedError()("RouterError", {
|
|
29
|
+
message: Schema.String,
|
|
30
|
+
cause: Schema.optional(Schema.Unknown),
|
|
31
|
+
}) {
|
|
28
32
|
}
|
|
29
33
|
/**
|
|
30
34
|
* Create a route group with the given name.
|
|
31
35
|
* Routes are added via group.add(route).
|
|
36
|
+
* Route names accumulate as literal types through the builder chain.
|
|
32
37
|
*/
|
|
33
38
|
export function group(name) {
|
|
39
|
+
return createRouteGroup(name, []);
|
|
40
|
+
}
|
|
41
|
+
/** Internal helper — creates a RouteGroup with accumulated RouteNames. */
|
|
42
|
+
function createRouteGroup(name, routes) {
|
|
34
43
|
return {
|
|
35
44
|
_tag: "RouteGroup",
|
|
36
45
|
name,
|
|
37
|
-
routes
|
|
38
|
-
add(route)
|
|
39
|
-
return {
|
|
40
|
-
...this,
|
|
41
|
-
routes: [...this.routes, route],
|
|
42
|
-
};
|
|
43
|
-
},
|
|
46
|
+
routes,
|
|
47
|
+
add: (route) => createRouteGroup(name, [...routes, route]),
|
|
44
48
|
};
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
@@ -68,75 +72,60 @@ export function group(name) {
|
|
|
68
72
|
export function layout(name, basePath) {
|
|
69
73
|
// Normalize basePath - ensure it starts with / and doesn't end with /
|
|
70
74
|
const normalizedBase = basePath.startsWith("/") ? basePath : `/${basePath}`;
|
|
71
|
-
const cleanBase = normalizedBase.endsWith("/")
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
const cleanBase = normalizedBase.endsWith("/") ? normalizedBase.slice(0, -1) : normalizedBase;
|
|
76
|
+
return createLayoutGroup(name, cleanBase, []);
|
|
77
|
+
}
|
|
78
|
+
/** Internal helper — creates a LayoutGroup with accumulated RouteNames. */
|
|
79
|
+
function createLayoutGroup(name, basePath, routes) {
|
|
74
80
|
return {
|
|
75
81
|
_tag: "LayoutGroup",
|
|
76
82
|
name,
|
|
77
|
-
basePath
|
|
78
|
-
routes
|
|
79
|
-
add(route)
|
|
80
|
-
return {
|
|
81
|
-
...this,
|
|
82
|
-
routes: [...this.routes, route],
|
|
83
|
-
};
|
|
84
|
-
},
|
|
83
|
+
basePath,
|
|
84
|
+
routes,
|
|
85
|
+
add: (route) => createLayoutGroup(name, basePath, [...routes, route]),
|
|
85
86
|
};
|
|
86
87
|
}
|
|
87
88
|
/**
|
|
88
89
|
* Create a router with the given name.
|
|
89
90
|
* Groups are added via router.add(group).
|
|
91
|
+
* Route names accumulate from groups for type-safe navigation.
|
|
90
92
|
*/
|
|
91
93
|
export function make(name) {
|
|
94
|
+
return createRouter(name, []);
|
|
95
|
+
}
|
|
96
|
+
/** Internal helper — creates a Router with accumulated RouteNames. */
|
|
97
|
+
function createRouter(name, groups) {
|
|
92
98
|
return {
|
|
93
99
|
name,
|
|
94
|
-
groups
|
|
95
|
-
add(g)
|
|
96
|
-
return {
|
|
97
|
-
...this,
|
|
98
|
-
groups: [...this.groups, g],
|
|
99
|
-
};
|
|
100
|
-
},
|
|
100
|
+
groups,
|
|
101
|
+
add: (g) => createRouter(name, [...groups, g]),
|
|
101
102
|
matchRoute(pathname) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (pathname.startsWith(layoutGroup.basePath)) {
|
|
108
|
-
// Get the remaining path after the base
|
|
109
|
-
const remainingPath = pathname.slice(layoutGroup.basePath.length) || "/";
|
|
110
|
-
// Try to match child routes against remaining path
|
|
111
|
-
for (const route of layoutGroup.routes) {
|
|
112
|
-
const match = route.match(remainingPath);
|
|
113
|
-
if (Option.isSome(match)) {
|
|
114
|
-
return Option.some({
|
|
115
|
-
groupName: layoutGroup.name,
|
|
116
|
-
route,
|
|
117
|
-
params: match.value,
|
|
118
|
-
layouts: [layoutGroup],
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
103
|
+
const tryMatchRoutes = (routes, path, groupName, layouts) => Effect.gen(function* () {
|
|
104
|
+
for (const route of routes) {
|
|
105
|
+
const match = yield* route.match(path);
|
|
106
|
+
if (Option.isSome(match)) {
|
|
107
|
+
return Option.some({ groupName, route, params: match.value, layouts });
|
|
122
108
|
}
|
|
123
109
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
params: match.value,
|
|
133
|
-
layouts: [],
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
110
|
+
return Option.none();
|
|
111
|
+
});
|
|
112
|
+
const tryMatchGroup = (g) => {
|
|
113
|
+
if (g._tag === "LayoutGroup") {
|
|
114
|
+
if (!pathname.startsWith(g.basePath))
|
|
115
|
+
return Effect.succeed(Option.none());
|
|
116
|
+
const remainingPath = pathname.slice(g.basePath.length) || "/";
|
|
117
|
+
return tryMatchRoutes(g.routes, remainingPath, g.name, [g]);
|
|
137
118
|
}
|
|
138
|
-
|
|
139
|
-
|
|
119
|
+
return tryMatchRoutes(g.routes, pathname, g.name, []);
|
|
120
|
+
};
|
|
121
|
+
return Effect.gen(function* () {
|
|
122
|
+
for (const g of groups) {
|
|
123
|
+
const result = yield* tryMatchGroup(g);
|
|
124
|
+
if (Option.isSome(result))
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
return Option.none();
|
|
128
|
+
});
|
|
140
129
|
},
|
|
141
130
|
};
|
|
142
131
|
}
|
|
@@ -146,36 +135,6 @@ export function make(name) {
|
|
|
146
135
|
*/
|
|
147
136
|
export class CurrentRouteElement extends Context.Tag("fibrae/CurrentRouteElement")() {
|
|
148
137
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Parse search params from URL search string.
|
|
151
|
-
*/
|
|
152
|
-
function parseSearchParams(search) {
|
|
153
|
-
const params = {};
|
|
154
|
-
const searchString = search.startsWith("?") ? search.slice(1) : search;
|
|
155
|
-
if (!searchString)
|
|
156
|
-
return params;
|
|
157
|
-
const searchParams = new URLSearchParams(searchString);
|
|
158
|
-
searchParams.forEach((value, key) => {
|
|
159
|
-
params[key] = value;
|
|
160
|
-
});
|
|
161
|
-
return params;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Strip basePath prefix from pathname for route matching.
|
|
165
|
-
*/
|
|
166
|
-
function stripBasePath(pathname, basePath) {
|
|
167
|
-
if (!basePath || basePath === "/") {
|
|
168
|
-
return pathname;
|
|
169
|
-
}
|
|
170
|
-
// Normalize: remove trailing slash from basePath
|
|
171
|
-
const normalizedBase = basePath.endsWith("/") ? basePath.slice(0, -1) : basePath;
|
|
172
|
-
if (pathname.startsWith(normalizedBase)) {
|
|
173
|
-
const stripped = pathname.slice(normalizedBase.length);
|
|
174
|
-
// Ensure we return "/" not "" for root
|
|
175
|
-
return stripped || "/";
|
|
176
|
-
}
|
|
177
|
-
return pathname;
|
|
178
|
-
}
|
|
179
138
|
/**
|
|
180
139
|
* Create a server-side layer for SSR rendering.
|
|
181
140
|
*
|
|
@@ -215,11 +174,11 @@ export function serverLayer(options) {
|
|
|
215
174
|
const routerHandlers = yield* RouterHandlers;
|
|
216
175
|
const registry = yield* AtomRegistry.AtomRegistry;
|
|
217
176
|
// Match route using stripped pathname
|
|
218
|
-
const
|
|
219
|
-
if (Option.isNone(
|
|
177
|
+
const matchResult = yield* router.matchRoute(matchPathname);
|
|
178
|
+
if (Option.isNone(matchResult)) {
|
|
220
179
|
return yield* Effect.fail(new RouterError({ message: `No route matched pathname: ${matchPathname}` }));
|
|
221
180
|
}
|
|
222
|
-
const { route, params } =
|
|
181
|
+
const { route, params } = matchResult.value;
|
|
223
182
|
// Get handler for this route
|
|
224
183
|
const handler = routerHandlers.getHandler(route.name);
|
|
225
184
|
if (Option.isNone(handler)) {
|
|
@@ -239,9 +198,14 @@ export function serverLayer(options) {
|
|
|
239
198
|
searchParams,
|
|
240
199
|
loaderData,
|
|
241
200
|
};
|
|
201
|
+
// Execute head() if defined
|
|
202
|
+
const head = yield* Option.match(handler.value.head, {
|
|
203
|
+
onNone: () => Effect.succeedNone,
|
|
204
|
+
onSome: (fn) => fn({ loaderData, params, searchParams }).pipe(Effect.asSome),
|
|
205
|
+
});
|
|
242
206
|
// Set RouterStateAtom so it gets included in dehydrated state
|
|
243
207
|
registry.set(RouterStateAtom, Option.some(state));
|
|
244
|
-
return { element, state };
|
|
208
|
+
return { element, state, head };
|
|
245
209
|
}));
|
|
246
210
|
return Layer.mergeAll(historyLayer, navigatorLayer, routeElementLayer);
|
|
247
211
|
}
|
|
@@ -361,18 +325,27 @@ export function browserLayer(options) {
|
|
|
361
325
|
searchParams: state.searchParams,
|
|
362
326
|
loaderData: state.loaderData,
|
|
363
327
|
};
|
|
364
|
-
|
|
328
|
+
// Execute head on client too (for title updates etc.)
|
|
329
|
+
const head = yield* Option.match(handler.value.head, {
|
|
330
|
+
onNone: () => Effect.succeedNone,
|
|
331
|
+
onSome: (fn) => fn({
|
|
332
|
+
loaderData: state.loaderData,
|
|
333
|
+
params: state.params,
|
|
334
|
+
searchParams: state.searchParams,
|
|
335
|
+
}).pipe(Effect.asSome),
|
|
336
|
+
});
|
|
337
|
+
return { element, state: dehydratedState, head };
|
|
365
338
|
}
|
|
366
339
|
// Non-hydration mode: match and run loader
|
|
367
340
|
const pathname = window.location.pathname;
|
|
368
341
|
const matchPathname = stripBasePath(pathname, basePath);
|
|
369
342
|
const search = window.location.search;
|
|
370
343
|
const searchParams = parseSearchParams(search);
|
|
371
|
-
const
|
|
372
|
-
if (Option.isNone(
|
|
344
|
+
const matchResult = yield* router.matchRoute(matchPathname);
|
|
345
|
+
if (Option.isNone(matchResult)) {
|
|
373
346
|
return yield* Effect.fail(new RouterError({ message: `No route matched pathname: ${matchPathname}` }));
|
|
374
347
|
}
|
|
375
|
-
const { route, params } =
|
|
348
|
+
const { route, params } = matchResult.value;
|
|
376
349
|
const handler = routerHandlers.getHandler(route.name);
|
|
377
350
|
if (Option.isNone(handler)) {
|
|
378
351
|
return yield* Effect.fail(new RouterError({ message: `No handler found for route: ${route.name}` }));
|
|
@@ -390,9 +363,13 @@ export function browserLayer(options) {
|
|
|
390
363
|
searchParams,
|
|
391
364
|
loaderData,
|
|
392
365
|
};
|
|
366
|
+
const head = yield* Option.match(handler.value.head, {
|
|
367
|
+
onNone: () => Effect.succeedNone,
|
|
368
|
+
onSome: (fn) => fn({ loaderData, params, searchParams }).pipe(Effect.asSome),
|
|
369
|
+
});
|
|
393
370
|
// Set RouterStateAtom for DI access
|
|
394
371
|
registry.set(RouterStateAtom, Option.some(state));
|
|
395
|
-
return { element, state };
|
|
372
|
+
return { element, state, head };
|
|
396
373
|
}));
|
|
397
374
|
// Layer composition: historyLayer provides History, which navigatorLayer needs.
|
|
398
375
|
// We use provideMerge to give Navigator the History it needs, then merge with routeElementLayer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/router/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import * as Effect from "effect/Effect";
|
|
|
10
10
|
import * as Context from "effect/Context";
|
|
11
11
|
import * as Layer from "effect/Layer";
|
|
12
12
|
import * as Option from "effect/Option";
|
|
13
|
-
import type { Router } from "./Router.js";
|
|
13
|
+
import type { Router, RouteGroup, LayoutGroup } from "./Router.js";
|
|
14
14
|
import type { Route } from "./Route.js";
|
|
15
15
|
import type { VElement } from "../shared.js";
|
|
16
16
|
/**
|
|
@@ -34,6 +34,47 @@ export interface ComponentProps<LoaderData = unknown, PathParams extends Record<
|
|
|
34
34
|
* Plain values are automatically wrapped in Effect.succeed.
|
|
35
35
|
*/
|
|
36
36
|
export type LoaderResult<T, E = never, R = never> = T | Effect.Effect<T, E, R>;
|
|
37
|
+
/**
|
|
38
|
+
* Per-route metadata for the document `<head>`.
|
|
39
|
+
* Rendered during SSR/SSG, updated on client navigation.
|
|
40
|
+
*/
|
|
41
|
+
export type MetaDescriptor = {
|
|
42
|
+
readonly charset: "utf-8";
|
|
43
|
+
} | {
|
|
44
|
+
readonly title: string;
|
|
45
|
+
} | {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly content: string;
|
|
48
|
+
} | {
|
|
49
|
+
readonly property: string;
|
|
50
|
+
readonly content: string;
|
|
51
|
+
} | {
|
|
52
|
+
readonly httpEquiv: string;
|
|
53
|
+
readonly content: string;
|
|
54
|
+
} | {
|
|
55
|
+
readonly "script:ld+json": Record<string, unknown>;
|
|
56
|
+
} | {
|
|
57
|
+
readonly tagName: "meta" | "link";
|
|
58
|
+
readonly [key: string]: string;
|
|
59
|
+
};
|
|
60
|
+
export interface HeadData {
|
|
61
|
+
readonly title?: string;
|
|
62
|
+
readonly meta?: ReadonlyArray<MetaDescriptor>;
|
|
63
|
+
readonly links?: ReadonlyArray<Record<string, string>>;
|
|
64
|
+
readonly scripts?: ReadonlyArray<{
|
|
65
|
+
readonly src?: string;
|
|
66
|
+
readonly content?: string;
|
|
67
|
+
readonly type?: string;
|
|
68
|
+
}>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Context provided to the head() function.
|
|
72
|
+
*/
|
|
73
|
+
export interface HeadContext<LoaderData = unknown, PathParams extends Record<string, unknown> = Record<string, unknown>, SearchParams extends Record<string, unknown> = Record<string, unknown>> {
|
|
74
|
+
readonly loaderData: LoaderData;
|
|
75
|
+
readonly params: PathParams;
|
|
76
|
+
readonly searchParams: SearchParams;
|
|
77
|
+
}
|
|
37
78
|
/**
|
|
38
79
|
* Handler configuration for a route.
|
|
39
80
|
* Loader fetches data, component renders with that data.
|
|
@@ -44,6 +85,18 @@ export type LoaderResult<T, E = never, R = never> = T | Effect.Effect<T, E, R>;
|
|
|
44
85
|
export interface HandlerConfig<LoaderData = unknown, PathParams extends Record<string, unknown> = Record<string, unknown>, SearchParams extends Record<string, unknown> = Record<string, unknown>, R = never, E = never> {
|
|
45
86
|
readonly loader?: (ctx: LoaderContext<PathParams, SearchParams>) => LoaderResult<LoaderData, E, R>;
|
|
46
87
|
readonly component: (props: ComponentProps<LoaderData, PathParams, SearchParams>) => VElement;
|
|
88
|
+
/**
|
|
89
|
+
* Per-route `<head>` metadata. Receives loader data and route params.
|
|
90
|
+
* Can return plain HeadData or an Effect<HeadData>.
|
|
91
|
+
*/
|
|
92
|
+
readonly head?: (ctx: HeadContext<LoaderData, PathParams, SearchParams>) => HeadData | Effect.Effect<HeadData>;
|
|
93
|
+
/** When true, this route will be pre-rendered to static HTML at build time. */
|
|
94
|
+
readonly prerender?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* For parameterized prerender routes, return all possible param combinations.
|
|
97
|
+
* Each entry generates a separate static HTML page.
|
|
98
|
+
*/
|
|
99
|
+
readonly getStaticPaths?: () => ReadonlyArray<PathParams> | Effect.Effect<ReadonlyArray<PathParams>>;
|
|
47
100
|
}
|
|
48
101
|
/**
|
|
49
102
|
* A registered route handler (type-erased for storage).
|
|
@@ -52,8 +105,12 @@ export interface HandlerConfig<LoaderData = unknown, PathParams extends Record<s
|
|
|
52
105
|
export interface RouteHandler {
|
|
53
106
|
readonly routeName: string;
|
|
54
107
|
readonly route: Route;
|
|
55
|
-
|
|
108
|
+
/** Type-erased loader. R = never because requirements are captured by the Layer. */
|
|
109
|
+
readonly loader: (ctx: LoaderContext) => Effect.Effect<unknown, unknown>;
|
|
56
110
|
readonly component: (props: ComponentProps) => VElement;
|
|
111
|
+
readonly head: Option.Option<(ctx: HeadContext) => Effect.Effect<HeadData, unknown>>;
|
|
112
|
+
readonly prerender: boolean;
|
|
113
|
+
readonly getStaticPaths: Option.Option<() => Effect.Effect<ReadonlyArray<Record<string, unknown>>, unknown>>;
|
|
57
114
|
}
|
|
58
115
|
/**
|
|
59
116
|
* A registered layout handler.
|
|
@@ -65,21 +122,31 @@ export interface LayoutHandler {
|
|
|
65
122
|
}
|
|
66
123
|
/**
|
|
67
124
|
* Handlers builder for a route group.
|
|
68
|
-
* Accumulates handler registrations
|
|
125
|
+
* Accumulates handler registrations and their service requirements (R).
|
|
126
|
+
*
|
|
127
|
+
* Each handle() call unions the loader's R into the group's accumulated R,
|
|
128
|
+
* ensuring the final Layer type declares all required services.
|
|
129
|
+
*
|
|
130
|
+
* RouteNames constrains handle() to only accept valid route names from the group.
|
|
69
131
|
*/
|
|
70
|
-
export interface GroupHandlers<GroupName extends string = string> {
|
|
132
|
+
export interface GroupHandlers<GroupName extends string = string, RouteNames extends string = string, R = never> {
|
|
71
133
|
readonly groupName: GroupName;
|
|
72
134
|
readonly handlers: readonly RouteHandler[];
|
|
73
135
|
/**
|
|
74
136
|
* Register a handler for a route in this group.
|
|
137
|
+
* RouteName is constrained to the group's valid route names.
|
|
138
|
+
* Accumulates the loader's service requirements into the group's R.
|
|
75
139
|
*/
|
|
76
|
-
readonly handle: <RouteName extends
|
|
140
|
+
readonly handle: <RouteName extends RouteNames, LoaderData = unknown, PathParams extends Record<string, unknown> = Record<string, unknown>, SearchParams extends Record<string, unknown> = Record<string, unknown>, R2 = never, E = never>(routeName: RouteName, config: HandlerConfig<LoaderData, PathParams, SearchParams, R2, E>) => GroupHandlers<GroupName, RouteNames, R | R2>;
|
|
77
141
|
}
|
|
78
142
|
/**
|
|
79
143
|
* Handlers builder for a layout group.
|
|
80
144
|
* Includes layout component registration plus child route handlers.
|
|
145
|
+
* Accumulates loader service requirements (R) like GroupHandlers.
|
|
146
|
+
*
|
|
147
|
+
* RouteNames constrains handle() to only accept valid route names from the group.
|
|
81
148
|
*/
|
|
82
|
-
export interface LayoutGroupHandlers<GroupName extends string = string> {
|
|
149
|
+
export interface LayoutGroupHandlers<GroupName extends string = string, RouteNames extends string = string, R = never> {
|
|
83
150
|
readonly groupName: GroupName;
|
|
84
151
|
readonly handlers: readonly RouteHandler[];
|
|
85
152
|
readonly layoutHandler: LayoutHandler | null;
|
|
@@ -87,11 +154,13 @@ export interface LayoutGroupHandlers<GroupName extends string = string> {
|
|
|
87
154
|
* Register the layout component for this layout group.
|
|
88
155
|
* The layout component should render <RouterOutlet /> for children.
|
|
89
156
|
*/
|
|
90
|
-
readonly layout: (component: () => VElement) => LayoutGroupHandlers<GroupName>;
|
|
157
|
+
readonly layout: (component: () => VElement) => LayoutGroupHandlers<GroupName, RouteNames, R>;
|
|
91
158
|
/**
|
|
92
159
|
* Register a handler for a route in this layout group.
|
|
160
|
+
* RouteName is constrained to the group's valid route names.
|
|
161
|
+
* Accumulates the loader's service requirements into the group's R.
|
|
93
162
|
*/
|
|
94
|
-
readonly handle: <RouteName extends
|
|
163
|
+
readonly handle: <RouteName extends RouteNames, LoaderData = unknown, PathParams extends Record<string, unknown> = Record<string, unknown>, SearchParams extends Record<string, unknown> = Record<string, unknown>, R2 = never, E = never>(routeName: RouteName, config: HandlerConfig<LoaderData, PathParams, SearchParams, R2, E>) => LayoutGroupHandlers<GroupName, RouteNames, R | R2>;
|
|
95
164
|
}
|
|
96
165
|
declare const RouterHandlers_base: Context.TagClass<RouterHandlers, "fibrae/RouterHandlers", {
|
|
97
166
|
readonly handlers: ReadonlyMap<string, RouteHandler>;
|
|
@@ -108,6 +177,9 @@ export declare class RouterHandlers extends RouterHandlers_base {
|
|
|
108
177
|
/**
|
|
109
178
|
* Create a Layer that provides handlers for a route group.
|
|
110
179
|
*
|
|
180
|
+
* Accepts the RouteGroup directly (not a string name) so that handle()
|
|
181
|
+
* is constrained to valid route names at compile time.
|
|
182
|
+
*
|
|
111
183
|
* The build callback can return either:
|
|
112
184
|
* - GroupHandlers directly (simple case)
|
|
113
185
|
* - Effect<GroupHandlers> (when you need Effect context in handlers)
|
|
@@ -117,42 +189,25 @@ export declare class RouterHandlers extends RouterHandlers_base {
|
|
|
117
189
|
* // Simple - no Effect wrapper needed
|
|
118
190
|
* const AppRoutesLive = RouterBuilder.group(
|
|
119
191
|
* AppRouter,
|
|
120
|
-
*
|
|
192
|
+
* AppRoutes, // pass the RouteGroup for type-safe handle()
|
|
121
193
|
* (handlers) => handlers
|
|
122
|
-
* .handle("home", { component: () => <HomePage /> })
|
|
194
|
+
* .handle("home", { component: () => <HomePage /> }) // constrained
|
|
123
195
|
* .handle("posts", { loader: () => fetchPosts(), component: ... })
|
|
124
196
|
* )
|
|
125
|
-
*
|
|
126
|
-
* // With Effect context (when handlers need services)
|
|
127
|
-
* const AppRoutesLive = RouterBuilder.group(
|
|
128
|
-
* AppRouter,
|
|
129
|
-
* "app",
|
|
130
|
-
* (handlers) => Effect.gen(function* () {
|
|
131
|
-
* const config = yield* Config;
|
|
132
|
-
* return handlers.handle("home", { ... });
|
|
133
|
-
* })
|
|
134
|
-
* )
|
|
135
197
|
* ```
|
|
136
198
|
*/
|
|
137
|
-
export declare function group<GroupName extends string>(
|
|
138
|
-
export declare function group<GroupName extends string, R>(
|
|
199
|
+
export declare function group<GroupName extends string, RouteNames extends string, R>(_appRouter: Router, routeGroup: RouteGroup<GroupName, RouteNames>, build: (handlers: GroupHandlers<GroupName, RouteNames>) => GroupHandlers<GroupName, RouteNames, R>): Layer.Layer<RouterHandlers, never, R>;
|
|
200
|
+
export declare function group<GroupName extends string, RouteNames extends string, R, R2>(_appRouter: Router, routeGroup: RouteGroup<GroupName, RouteNames>, build: (handlers: GroupHandlers<GroupName, RouteNames>) => Effect.Effect<GroupHandlers<GroupName, RouteNames, R>, never, R2>): Layer.Layer<RouterHandlers, never, R | R2>;
|
|
139
201
|
/**
|
|
140
202
|
* Create a Layer that provides handlers for a layout group.
|
|
141
203
|
*
|
|
142
|
-
*
|
|
204
|
+
* Accepts the LayoutGroup directly for type-safe handle() calls.
|
|
143
205
|
*
|
|
144
206
|
* Usage:
|
|
145
207
|
* ```typescript
|
|
146
|
-
* const DashboardLayout = () => (
|
|
147
|
-
* <div class="dashboard">
|
|
148
|
-
* <Sidebar />
|
|
149
|
-
* <RouterOutlet />
|
|
150
|
-
* </div>
|
|
151
|
-
* );
|
|
152
|
-
*
|
|
153
208
|
* const DashboardRoutesLive = RouterBuilder.layoutGroup(
|
|
154
209
|
* AppRouter,
|
|
155
|
-
*
|
|
210
|
+
* DashboardRoutes,
|
|
156
211
|
* (handlers) => handlers
|
|
157
212
|
* .layout(DashboardLayout)
|
|
158
213
|
* .handle("overview", { component: () => <Overview /> })
|
|
@@ -160,8 +215,8 @@ export declare function group<GroupName extends string, R>(appRouter: Router, gr
|
|
|
160
215
|
* )
|
|
161
216
|
* ```
|
|
162
217
|
*/
|
|
163
|
-
export declare function layoutGroup<GroupName extends string>(
|
|
164
|
-
export declare function layoutGroup<GroupName extends string, R>(
|
|
218
|
+
export declare function layoutGroup<GroupName extends string, RouteNames extends string, R>(_appRouter: Router, layoutGrp: LayoutGroup<GroupName, RouteNames>, build: (handlers: LayoutGroupHandlers<GroupName, RouteNames>) => LayoutGroupHandlers<GroupName, RouteNames, R>): Layer.Layer<RouterHandlers, never, R>;
|
|
219
|
+
export declare function layoutGroup<GroupName extends string, RouteNames extends string, R, R2>(_appRouter: Router, layoutGrp: LayoutGroup<GroupName, RouteNames>, build: (handlers: LayoutGroupHandlers<GroupName, RouteNames>) => Effect.Effect<LayoutGroupHandlers<GroupName, RouteNames, R>, never, R2>): Layer.Layer<RouterHandlers, never, R | R2>;
|
|
165
220
|
/**
|
|
166
221
|
* Merge multiple group handler layers into a single RouterHandlers layer.
|
|
167
222
|
*
|
|
@@ -178,5 +233,22 @@ export declare function router(_router: Router): Layer.Layer<RouterHandlers>;
|
|
|
178
233
|
* Execute a route's loader and render its component.
|
|
179
234
|
* Returns the rendered VElement.
|
|
180
235
|
*/
|
|
181
|
-
export declare function executeRoute(handler: RouteHandler, ctx: LoaderContext): Effect.Effect<VElement>;
|
|
236
|
+
export declare function executeRoute(handler: RouteHandler, ctx: LoaderContext): Effect.Effect<VElement, unknown>;
|
|
237
|
+
/**
|
|
238
|
+
* A prerender route paired with its enumerated param sets.
|
|
239
|
+
*/
|
|
240
|
+
export interface PrerenderRoute {
|
|
241
|
+
readonly handler: RouteHandler;
|
|
242
|
+
readonly paramSets: ReadonlyArray<Record<string, unknown>>;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Extract all prerender routes with their static path parameters.
|
|
246
|
+
*
|
|
247
|
+
* For each route with `prerender: true`:
|
|
248
|
+
* - If `getStaticPaths` is defined, calls it to enumerate all param sets
|
|
249
|
+
* - Otherwise, defaults to `[{}]` (a single page with no params)
|
|
250
|
+
*/
|
|
251
|
+
export declare const getPrerenderRoutes: (handlers: {
|
|
252
|
+
readonly handlers: ReadonlyMap<string, RouteHandler>;
|
|
253
|
+
}) => Effect.Effect<readonly PrerenderRoute[], unknown, never>;
|
|
182
254
|
export {};
|