fibrae 0.1.2 → 0.2.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/core.d.ts +2 -2
- package/dist/core.js +2 -5
- package/dist/core.js.map +1 -1
- package/dist/dom.js +42 -3
- package/dist/dom.js.map +1 -1
- package/dist/fiber-render.js +53 -15
- package/dist/fiber-render.js.map +1 -1
- package/dist/hydration.js +3 -9
- package/dist/hydration.js.map +1 -1
- package/dist/index.d.ts +1 -19
- package/dist/index.js +3 -14
- package/dist/index.js.map +1 -1
- package/dist/render.js +3 -3
- package/dist/render.js.map +1 -1
- package/dist/router/Navigator.d.ts +2 -0
- package/dist/router/Navigator.js +25 -34
- package/dist/router/Navigator.js.map +1 -1
- package/dist/router/Route.d.ts +1 -1
- package/dist/router/Route.js.map +1 -1
- package/dist/router/Router.d.ts +65 -8
- package/dist/router/Router.js +93 -15
- package/dist/router/Router.js.map +1 -1
- package/dist/router/RouterBuilder.d.ts +54 -0
- package/dist/router/RouterBuilder.js +81 -2
- package/dist/router/RouterBuilder.js.map +1 -1
- package/dist/router/RouterOutlet.d.ts +29 -5
- package/dist/router/RouterOutlet.js +58 -7
- package/dist/router/RouterOutlet.js.map +1 -1
- package/dist/router/index.d.ts +3 -3
- package/dist/router/index.js +1 -1
- package/dist/router/index.js.map +1 -1
- package/dist/runtime.d.ts +5 -4
- package/dist/runtime.js +0 -1
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +3 -1
- package/dist/server.js +19 -17
- package/dist/server.js.map +1 -1
- package/dist/shared.d.ts +61 -5
- package/dist/shared.js +51 -0
- package/dist/shared.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -5,23 +5,5 @@ export { h, createTextElement } from "./h.js";
|
|
|
5
5
|
export type { VElement, ElementType, Primitive } from "./shared.js";
|
|
6
6
|
export type { VElement as VNode } from "./shared.js";
|
|
7
7
|
export { RenderError, StreamError, EventHandlerError, type ComponentError, } from "./shared.js";
|
|
8
|
+
export { ComponentScope } from "./shared.js";
|
|
8
9
|
export { Atom, Registry as AtomRegistry } from "@effect-atom/atom";
|
|
9
|
-
export * as Route from "./router/Route.js";
|
|
10
|
-
export * as Router from "./router/Router.js";
|
|
11
|
-
export * as RouterBuilder from "./router/RouterBuilder.js";
|
|
12
|
-
export * as History from "./router/History.js";
|
|
13
|
-
export * as Navigator from "./router/Navigator.js";
|
|
14
|
-
export * as RouterState from "./router/RouterState.js";
|
|
15
|
-
export type { LoaderContext, ComponentProps, HandlerConfig, RouteHandler, GroupHandlers, } from "./router/RouterBuilder.js";
|
|
16
|
-
export { RouterHandlers } from "./router/RouterBuilder.js";
|
|
17
|
-
export type { HistoryLocation, HistoryService } from "./router/History.js";
|
|
18
|
-
export { History as HistoryTag, BrowserHistoryLive, MemoryHistoryLive } from "./router/History.js";
|
|
19
|
-
export type { CurrentRoute, NavigateOptions, NavigatorService } from "./router/Navigator.js";
|
|
20
|
-
export { Navigator as NavigatorTag, NavigatorLive } from "./router/Navigator.js";
|
|
21
|
-
export type { LinkProps } from "./router/Link.js";
|
|
22
|
-
export { createLink } from "./router/Link.js";
|
|
23
|
-
export type { RouterOutletProps } from "./router/RouterOutlet.js";
|
|
24
|
-
export { RouterOutlet } from "./router/RouterOutlet.js";
|
|
25
|
-
export type { ServerLayerOptions, BrowserLayerOptions, DehydratedRouterState, SSRRouteResult, } from "./router/Router.js";
|
|
26
|
-
export { CurrentRouteElement } from "./router/Router.js";
|
|
27
|
-
export { RouterStateAtom, RouterStateService, RouterStateSchema, getRouterState, getLoaderData, getRouteParams, } from "./router/RouterState.js";
|
package/dist/index.js
CHANGED
|
@@ -11,20 +11,9 @@ export { Suspense, ErrorBoundary } from "./components.js";
|
|
|
11
11
|
export { h, createTextElement } from "./h.js";
|
|
12
12
|
// Error types
|
|
13
13
|
export { RenderError, StreamError, EventHandlerError, } from "./shared.js";
|
|
14
|
+
// Component lifecycle
|
|
15
|
+
export { ComponentScope } from "./shared.js";
|
|
14
16
|
// Re-export upstream Effect Atom APIs for consumers
|
|
15
17
|
export { Atom, Registry as AtomRegistry } from "@effect-atom/atom";
|
|
16
|
-
// Router
|
|
17
|
-
export * as Route from "./router/Route.js";
|
|
18
|
-
export * as Router from "./router/Router.js";
|
|
19
|
-
export * as RouterBuilder from "./router/RouterBuilder.js";
|
|
20
|
-
export * as History from "./router/History.js";
|
|
21
|
-
export * as Navigator from "./router/Navigator.js";
|
|
22
|
-
export * as RouterState from "./router/RouterState.js";
|
|
23
|
-
export { RouterHandlers } from "./router/RouterBuilder.js";
|
|
24
|
-
export { History as HistoryTag, BrowserHistoryLive, MemoryHistoryLive } from "./router/History.js";
|
|
25
|
-
export { Navigator as NavigatorTag, NavigatorLive } from "./router/Navigator.js";
|
|
26
|
-
export { createLink } from "./router/Link.js";
|
|
27
|
-
export { RouterOutlet } from "./router/RouterOutlet.js";
|
|
28
|
-
export { CurrentRouteElement } from "./router/Router.js";
|
|
29
|
-
export { RouterStateAtom, RouterStateService, RouterStateSchema, getRouterState, getLoaderData, getRouteParams, } from "./router/RouterState.js";
|
|
18
|
+
// Router available via "fibrae/router" import
|
|
30
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEtE,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE1D,iCAAiC;AACjC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAM9C,cAAc;AACd,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,GAElB,MAAM,aAAa,CAAC;AAErB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEtE,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE1D,iCAAiC;AACjC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAM9C,cAAc;AACd,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,GAElB,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,oDAAoD;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,8CAA8C"}
|
package/dist/render.js
CHANGED
|
@@ -10,7 +10,7 @@ import * as Deferred from "effect/Deferred";
|
|
|
10
10
|
import * as Context from "effect/Context";
|
|
11
11
|
import * as FiberRef from "effect/FiberRef";
|
|
12
12
|
import { Atom, Registry as AtomRegistry } from "@effect-atom/atom";
|
|
13
|
-
import {} from "./shared.js";
|
|
13
|
+
import { RenderError } from "./shared.js";
|
|
14
14
|
import { FibraeRuntime, runForkWithRuntime } from "./runtime.js";
|
|
15
15
|
import { setDomProperty, attachEventListeners, isProperty } from "./dom.js";
|
|
16
16
|
import { normalizeToStream, makeTrackingRegistry, subscribeToAtoms } from "./tracking.js";
|
|
@@ -71,7 +71,7 @@ export const renderVElementToDOM = (vElement, parent, runtime, parentScope) => E
|
|
|
71
71
|
// Invoke component - use Effect.try to catch sync render-time crashes
|
|
72
72
|
const output = yield* Effect.try({
|
|
73
73
|
try: () => type(vElement.props),
|
|
74
|
-
catch: (
|
|
74
|
+
catch: (cause) => new RenderError({ cause }),
|
|
75
75
|
}).pipe(Effect.tapError(() => Effect.sync(() => parent.removeChild(wrapper))));
|
|
76
76
|
// Normalize to stream and provide context (with tracking registry) to it
|
|
77
77
|
// This ensures user-provided services like ThemeService are available to component Effects
|
|
@@ -119,7 +119,7 @@ export const renderVElementToDOM = (vElement, parent, runtime, parentScope) => E
|
|
|
119
119
|
// Invoke component - use Effect.try to catch sync render-time crashes
|
|
120
120
|
const newOutput = yield* Effect.try({
|
|
121
121
|
try: () => type(vElement.props),
|
|
122
|
-
catch: (
|
|
122
|
+
catch: (cause) => new RenderError({ cause }),
|
|
123
123
|
});
|
|
124
124
|
const newStream = normalizeToStream(newOutput).pipe(Stream.provideContext(newContextWithTracking));
|
|
125
125
|
yield* Stream.runForEach(newStream, (reEmitted) => renderVElementToDOM(reEmitted, wrapper, runtime, newContentScope).pipe(Effect.catchAll((e) => Effect.logError("Re-render child error", e))));
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAmD,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAC1B,IAAiB,EAG+C,EAAE,CAAC,OAAO,IAAI,KAAK,UAAU,CAAC;AAEhG;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAqB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;AAEzF,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAkB,EAClB,MAAY,EACZ,OAAsB,EACtB,WAAmC,EACE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,kEAAkE;QAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE5B,yDAAyD;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,oFAAoF;QACpF,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;QACpD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE/E,0FAA0F;QAC1F,yFAAyF;QACzF,wFAAwF;QACxF,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAIjE,CAAC;QACF,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CACrC,cAAc,EACd,YAAY,CAAC,YAAY,EACzB,gBAAgB,CACjB,CAAC;QAEF,sEAAsE;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,GAAG,EAAE,GAAG,EAAE,CAAE,IAAoD,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;SAC7C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/E,yEAAyE;QACzE,2FAA2F;QAC3F,MAAM,MAAM,GAAG,iBAAiB,CAC9B,MAAsE,CACvE,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnD,4EAA4E;QAC5E,0FAA0F;QAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAChF,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CACnD,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,mCAAmC;gBACnC,OAAO,EAAE,QAAQ,EAAE,KAAc,EAAE,CAAC;YACtC,CAAC;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrD,KAAK,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAE7E,2CAA2C;YAC3C,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,gBAAgB,CACrB,aAAa,EACb,GAAG,EAAE;oBACH,iCAAiC;oBACjC,kBAAkB,CAAC,OAAO,CAAC,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAClB,uCAAuC;wBACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAmC,CAAC;wBACnE,MAAM,iBAAiB,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;wBAC3E,MAAM,SAAS,GACb,iBAAiB,IAAI,aAAa;4BAChC,CAAC,CAAC;gCACE,OAAO,EAAE,aAAa,CAAC,OAAO;gCAC9B,cAAc,EAAE,MAAM,CAAC,WAAW,CAChC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;qCACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;qCAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAC1C;gCACD,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC;gCACxC,EAAE,EAAE,aAAa,CAAC,EAAE;gCACpB,cAAc,EACZ,gBAAgB,IAAI,aAAa;oCAC/B,CAAC,CAAE,aAAkC,CAAC,cAAc;oCACpD,CAAC,CAAC,IAAI;gCACV,YAAY,EACV,cAAc,IAAI,aAAa;oCAC7B,CAAC,CAAE,aAAkC,CAAC,YAAY;oCAClD,CAAC,CAAC,IAAI;6BACX;4BACH,CAAC,CAAC,IAAI,CAAC;wBAEX,uEAAuE;wBACvE,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBAElE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAsB,CAAC;wBACvD,MAAM,mBAAmB,GAAG,oBAAoB,CAC9C,OAAO,CAAC,QAAQ,EAChB,gBAAgB,CACjB,CAAC;wBACF,yDAAyD;wBACzD,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CACxC,cAAc,EACd,YAAY,CAAC,YAAY,EACzB,mBAAmB,CACpB,CAAC;wBAEF,sEAAsE;wBACtE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;4BAClC,GAAG,EAAE,GAAG,EAAE,CACP,IAAoD,CAAC,QAAQ,CAAC,KAAK,CAAC;4BACvE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;yBAC7C,CAAC,CAAC;wBAEH,MAAM,SAAS,GAAG,iBAAiB,CACjC,SAAyE,CAC1E,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBACtD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAChD,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CACpE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CACpE,CACF,CAAC;wBAEF,gCAAgC;wBAChC,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BAC/D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gCACnC,MAAM,EAAE,GAAG,SAAwB,CAAC;gCACpC,qDAAqD;gCACrD,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;gCACzD,MAAM,WAAW,GACf,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC;gCAC/D,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC;oCACnD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,CAC5C,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,CACnD,CAAC;gCAEJ,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;oCAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;oCACX,+CAA+C;oCAC/C,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI,IAAI,mBAAmB,IAAI,EAAE,EAAE,CAAC;wCAClE,EAAuB,CAAC,iBAAiB,CACxC,SAAS,CAAC,cAAc,EACxB,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,cAAc,CACnD,CAAC;oCACJ,CAAC;oCACD,MAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC,IAAI;oBACL,0FAA0F;oBAC1F,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAC3E,CACF,CAAC;gBACJ,CAAC,EACD,OAAO,EACP,cAAc,CACf,CAAC;YACJ,CAAC;YAED,4CAA4C;YAC5C,qEAAqE;YACrE,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAClF,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACzD,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAC/B,MAAM,CAAC,QAAQ,CAAC,sCAAsC,EAAE,KAAK,CAAC;gBAChE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;aACpE,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAClE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,8BAA8B;gBAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gBAClE,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAC3E,CAAC;YACJ,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAEjD,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAEnD,OAAO,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC;QACrC,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,wDAAwD;YACxD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACrD,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,YAAY;QACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7B,2DAA2D;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,qEAAqE;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,+DAA+D;QAC/D,+DAA+D;QAC/D,oFAAoF;QACpF,qFAAqF;QACrF,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAoB,CAAC;QACrD,MAAM,SAAS,GAAI,QAAQ,CAAC,KAAK,CAAC,SAAoB,IAAI,GAAG,CAAC;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAsB,CAAC;QACvD,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAElD,4DAA4D;QAC5D,mEAAmE;QACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpD,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAExC,mCAAmC;QACnC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEvC,+DAA+D;QAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAiB,CAAC;QAE5D,kEAAkE;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC7E,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;QAEF,qCAAqC;QACrC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACpC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EACnD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,8EAA8E;YAC9E,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACxD,CAAC;YACD,iCAAiC;YACjC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAEpC,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YAC3D,CAAC;YAED,KAAK,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAE9E,wEAAwE;YACxE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAExE,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,2EAA2E;gBAC3E,eAAe,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAEjC,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBACxD,CAAC;gBAED,kEAAkE;gBAClE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,0CAA0C;gBAC1C,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACnC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,iDAAiD;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAExC,mBAAmB;QACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAgC,EAAE,OAAO,CAAC,CAAC;QAE7E,aAAa;QACb,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;YACtD,GAA4B,CAAC,OAAO,GAAG,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEvB,yDAAyD;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;QAED,4CAA4C;QAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEvC,qCAAqC;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -24,6 +24,8 @@ export interface CurrentRoute {
|
|
|
24
24
|
readonly routeName: string;
|
|
25
25
|
readonly params: Record<string, unknown>;
|
|
26
26
|
readonly searchParams: Record<string, string>;
|
|
27
|
+
/** Layout names wrapping this route, from outermost to innermost */
|
|
28
|
+
readonly layouts: readonly string[];
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Navigation options for go().
|
package/dist/router/Navigator.js
CHANGED
|
@@ -80,16 +80,20 @@ function matchLocation(router, location, basePath = "") {
|
|
|
80
80
|
routeName: match.value.route.name,
|
|
81
81
|
params: match.value.params,
|
|
82
82
|
searchParams: parseSearchParams(location.search),
|
|
83
|
+
layouts: match.value.layouts.map((l) => l.name),
|
|
83
84
|
});
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
87
|
* Find a route by name in the router.
|
|
88
|
+
* Also checks routes inside layout groups.
|
|
87
89
|
*/
|
|
88
90
|
function findRouteByName(router, name) {
|
|
89
91
|
for (const group of router.groups) {
|
|
90
92
|
for (const route of group.routes) {
|
|
91
93
|
if (route.name === name) {
|
|
92
|
-
|
|
94
|
+
// For layout groups, include the basePath for URL building
|
|
95
|
+
const basePath = group._tag === "LayoutGroup" ? group.basePath : "";
|
|
96
|
+
return Option.some({ route, basePath });
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
}
|
|
@@ -107,63 +111,50 @@ function findRouteByName(router, name) {
|
|
|
107
111
|
*/
|
|
108
112
|
export function NavigatorLive(router, options = {}) {
|
|
109
113
|
const basePath = options.basePath ?? "";
|
|
110
|
-
return Layer.
|
|
114
|
+
return Layer.scoped(Navigator, Effect.gen(function* () {
|
|
111
115
|
const history = yield* History;
|
|
112
116
|
const registry = yield* AtomRegistry.AtomRegistry;
|
|
113
|
-
// Get initial location and
|
|
114
|
-
const initialLocation =
|
|
117
|
+
// Get initial location and create currentRoute atom
|
|
118
|
+
const initialLocation = registry.get(history.location);
|
|
115
119
|
const initialRoute = matchLocation(router, initialLocation, basePath);
|
|
116
|
-
// Create currentRoute Atom
|
|
117
120
|
const currentRouteAtom = Atom.make(initialRoute);
|
|
118
|
-
//
|
|
119
|
-
// This
|
|
120
|
-
const
|
|
121
|
+
// Subscribe to location changes to update currentRoute.
|
|
122
|
+
// This handles popstate events (browser back/forward) automatically.
|
|
123
|
+
const unsubscribe = registry.subscribe(history.location, (location) => {
|
|
121
124
|
const matched = matchLocation(router, location, basePath);
|
|
122
125
|
registry.set(currentRouteAtom, matched);
|
|
123
|
-
};
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
+
});
|
|
127
|
+
// Cleanup subscription when scope closes
|
|
128
|
+
yield* Effect.addFinalizer(() => Effect.sync(unsubscribe));
|
|
126
129
|
const service = {
|
|
127
130
|
basePath,
|
|
128
131
|
currentRoute: currentRouteAtom,
|
|
129
132
|
go: (routeName, options = {}) => Effect.gen(function* () {
|
|
130
|
-
const
|
|
131
|
-
if (Option.isNone(
|
|
133
|
+
const found = findRouteByName(router, routeName);
|
|
134
|
+
if (Option.isNone(found)) {
|
|
132
135
|
yield* Effect.logWarning(`Route not found: ${routeName}`);
|
|
133
136
|
return;
|
|
134
137
|
}
|
|
138
|
+
const { route, basePath: routeBasePath } = found.value;
|
|
135
139
|
// Build URL from route and params
|
|
136
140
|
const pathParams = options.path ?? {};
|
|
137
|
-
const routePathname = route.
|
|
138
|
-
// Prepend basePath
|
|
139
|
-
const pathname = basePath + routePathname;
|
|
141
|
+
const routePathname = route.interpolate(pathParams);
|
|
142
|
+
// Prepend navigator basePath AND route's layout basePath
|
|
143
|
+
const pathname = basePath + routeBasePath + routePathname;
|
|
140
144
|
const search = options.searchParams ? buildSearchString(options.searchParams) : "";
|
|
141
145
|
const url = `${pathname}${search}`;
|
|
142
|
-
// Navigate
|
|
146
|
+
// Navigate - currentRoute updates automatically via derived atom
|
|
143
147
|
if (options.replace) {
|
|
144
148
|
yield* history.replace(url);
|
|
145
149
|
}
|
|
146
150
|
else {
|
|
147
151
|
yield* history.push(url);
|
|
148
152
|
}
|
|
149
|
-
// Update currentRoute
|
|
150
|
-
const newLocation = yield* Atom.get(history.location);
|
|
151
|
-
updateCurrentRoute(newLocation);
|
|
152
|
-
}),
|
|
153
|
-
back: Effect.gen(function* () {
|
|
154
|
-
yield* history.back;
|
|
155
|
-
// Wait a tick for popstate to fire, then update
|
|
156
|
-
yield* Effect.sleep("10 millis");
|
|
157
|
-
const location = yield* Atom.get(history.location);
|
|
158
|
-
updateCurrentRoute(location);
|
|
159
|
-
}),
|
|
160
|
-
forward: Effect.gen(function* () {
|
|
161
|
-
yield* history.forward;
|
|
162
|
-
// Wait a tick for popstate to fire, then update
|
|
163
|
-
yield* Effect.sleep("10 millis");
|
|
164
|
-
const location = yield* Atom.get(history.location);
|
|
165
|
-
updateCurrentRoute(location);
|
|
166
153
|
}),
|
|
154
|
+
// Back/forward - currentRoute updates automatically when history.location
|
|
155
|
+
// changes (popstate handler updates locationAtom, derived atom recomputes)
|
|
156
|
+
back: history.back,
|
|
157
|
+
forward: history.forward,
|
|
167
158
|
isActive: (routeName, params) => Effect.gen(function* () {
|
|
168
159
|
const current = yield* Atom.get(currentRouteAtom);
|
|
169
160
|
if (Option.isNone(current)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigator.js","sourceRoot":"","sources":["../../src/router/Navigator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAwB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Navigator.js","sourceRoot":"","sources":["../../src/router/Navigator.ts"],"names":[],"mappings":"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"}
|
package/dist/router/Route.d.ts
CHANGED
|
@@ -62,4 +62,4 @@ export declare const post: RouteConstructor;
|
|
|
62
62
|
*
|
|
63
63
|
* Stores the parameter name in the schema's annotations for extraction during template literal parsing.
|
|
64
64
|
*/
|
|
65
|
-
export declare function param<
|
|
65
|
+
export declare function param<A, I, R>(name: string, schema: Schema.Schema<A, I, R>): Schema.Schema<A, I, R>;
|
package/dist/router/Route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../src/router/Route.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../src/router/Route.ts"],"names":[],"mappings":"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"}
|
package/dist/router/Router.d.ts
CHANGED
|
@@ -20,37 +20,94 @@ import { History } from "./History.js";
|
|
|
20
20
|
import { Navigator } from "./Navigator.js";
|
|
21
21
|
import { RouterHandlers } from "./RouterBuilder.js";
|
|
22
22
|
import type { VElement } from "../shared.js";
|
|
23
|
+
declare const RouterError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
24
|
+
readonly _tag: "RouterError";
|
|
25
|
+
} & Readonly<A>;
|
|
26
|
+
/**
|
|
27
|
+
* Router error for route matching and navigation failures.
|
|
28
|
+
*/
|
|
29
|
+
export declare class RouterError extends RouterError_base<{
|
|
30
|
+
readonly message: string;
|
|
31
|
+
readonly cause?: unknown;
|
|
32
|
+
}> {
|
|
33
|
+
}
|
|
23
34
|
/**
|
|
24
35
|
* A group of routes for organizational purposes.
|
|
25
36
|
* Groups provide namespacing for handler implementation.
|
|
26
37
|
*/
|
|
27
38
|
export interface RouteGroup<Name extends string = string> {
|
|
39
|
+
readonly _tag: "RouteGroup";
|
|
28
40
|
readonly name: Name;
|
|
29
41
|
readonly routes: readonly Route[];
|
|
30
42
|
readonly add: (route: Route) => RouteGroup<Name>;
|
|
31
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* A layout group wraps routes with a layout component.
|
|
46
|
+
* The layout component should render <RouterOutlet /> for children.
|
|
47
|
+
*/
|
|
48
|
+
export interface LayoutGroup<Name extends string = string> {
|
|
49
|
+
readonly _tag: "LayoutGroup";
|
|
50
|
+
readonly name: Name;
|
|
51
|
+
readonly basePath: string;
|
|
52
|
+
readonly routes: readonly Route[];
|
|
53
|
+
readonly add: (route: Route) => LayoutGroup<Name>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Union of group types that can be added to a router.
|
|
57
|
+
*/
|
|
58
|
+
export type AnyGroup<Name extends string = string> = RouteGroup<Name> | LayoutGroup<Name>;
|
|
59
|
+
/**
|
|
60
|
+
* Result of matching a route, including any layout wrappers.
|
|
61
|
+
*/
|
|
62
|
+
export interface RouteMatch {
|
|
63
|
+
readonly groupName: string;
|
|
64
|
+
readonly route: Route;
|
|
65
|
+
readonly params: Record<string, unknown>;
|
|
66
|
+
/** Layout groups wrapping this route, from outermost to innermost */
|
|
67
|
+
readonly layouts: readonly LayoutGroup[];
|
|
68
|
+
}
|
|
32
69
|
/**
|
|
33
70
|
* The complete router holding all route groups and enabling route matching.
|
|
34
71
|
*/
|
|
35
72
|
export interface Router<Name extends string = string> {
|
|
36
73
|
readonly name: Name;
|
|
37
|
-
readonly groups: readonly
|
|
38
|
-
readonly add: (group:
|
|
74
|
+
readonly groups: readonly AnyGroup[];
|
|
75
|
+
readonly add: (group: AnyGroup) => Router<Name>;
|
|
39
76
|
/**
|
|
40
77
|
* Match a pathname against all routes in the router.
|
|
41
|
-
* Returns the matched route, group name,
|
|
78
|
+
* Returns the matched route, group name, decoded path parameters,
|
|
79
|
+
* and any layout groups that wrap the route.
|
|
42
80
|
*/
|
|
43
|
-
readonly matchRoute: (pathname: string) => Option.Option<
|
|
44
|
-
readonly groupName: string;
|
|
45
|
-
readonly route: Route;
|
|
46
|
-
readonly params: Record<string, unknown>;
|
|
47
|
-
}>;
|
|
81
|
+
readonly matchRoute: (pathname: string) => Option.Option<RouteMatch>;
|
|
48
82
|
}
|
|
49
83
|
/**
|
|
50
84
|
* Create a route group with the given name.
|
|
51
85
|
* Routes are added via group.add(route).
|
|
52
86
|
*/
|
|
53
87
|
export declare function group<const Name extends string>(name: Name): RouteGroup<Name>;
|
|
88
|
+
/**
|
|
89
|
+
* Create a layout group with the given name, base path, and layout component.
|
|
90
|
+
*
|
|
91
|
+
* Layout groups wrap their child routes with a layout component that should
|
|
92
|
+
* render <RouterOutlet /> to display the matched child route.
|
|
93
|
+
*
|
|
94
|
+
* Child routes are matched relative to the basePath.
|
|
95
|
+
*
|
|
96
|
+
* Usage:
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const DashboardLayout = () => (
|
|
99
|
+
* <div class="dashboard">
|
|
100
|
+
* <Sidebar />
|
|
101
|
+
* <RouterOutlet />
|
|
102
|
+
* </div>
|
|
103
|
+
* );
|
|
104
|
+
*
|
|
105
|
+
* const DashboardRoutes = Router.layout("dashboard", "/dashboard")
|
|
106
|
+
* .add(Route.get("overview", "/overview")) // matches /dashboard/overview
|
|
107
|
+
* .add(Route.get("settings", "/settings")); // matches /dashboard/settings
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function layout<const Name extends string>(name: Name, basePath: string): LayoutGroup<Name>;
|
|
54
111
|
/**
|
|
55
112
|
* Create a router with the given name.
|
|
56
113
|
* Groups are added via router.add(group).
|
package/dist/router/Router.js
CHANGED
|
@@ -15,18 +15,66 @@ 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 Data from "effect/Data";
|
|
18
19
|
import { Registry as AtomRegistry } from "@effect-atom/atom";
|
|
19
20
|
import { History, MemoryHistoryLive } from "./History.js";
|
|
20
21
|
import { Navigator, NavigatorLive } from "./Navigator.js";
|
|
21
22
|
import { RouterHandlers } from "./RouterBuilder.js";
|
|
22
23
|
import { RouterStateAtom } from "./RouterState.js";
|
|
24
|
+
/**
|
|
25
|
+
* Router error for route matching and navigation failures.
|
|
26
|
+
*/
|
|
27
|
+
export class RouterError extends Data.TaggedError("RouterError") {
|
|
28
|
+
}
|
|
23
29
|
/**
|
|
24
30
|
* Create a route group with the given name.
|
|
25
31
|
* Routes are added via group.add(route).
|
|
26
32
|
*/
|
|
27
33
|
export function group(name) {
|
|
28
34
|
return {
|
|
35
|
+
_tag: "RouteGroup",
|
|
36
|
+
name,
|
|
37
|
+
routes: [],
|
|
38
|
+
add(route) {
|
|
39
|
+
return {
|
|
40
|
+
...this,
|
|
41
|
+
routes: [...this.routes, route],
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create a layout group with the given name, base path, and layout component.
|
|
48
|
+
*
|
|
49
|
+
* Layout groups wrap their child routes with a layout component that should
|
|
50
|
+
* render <RouterOutlet /> to display the matched child route.
|
|
51
|
+
*
|
|
52
|
+
* Child routes are matched relative to the basePath.
|
|
53
|
+
*
|
|
54
|
+
* Usage:
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const DashboardLayout = () => (
|
|
57
|
+
* <div class="dashboard">
|
|
58
|
+
* <Sidebar />
|
|
59
|
+
* <RouterOutlet />
|
|
60
|
+
* </div>
|
|
61
|
+
* );
|
|
62
|
+
*
|
|
63
|
+
* const DashboardRoutes = Router.layout("dashboard", "/dashboard")
|
|
64
|
+
* .add(Route.get("overview", "/overview")) // matches /dashboard/overview
|
|
65
|
+
* .add(Route.get("settings", "/settings")); // matches /dashboard/settings
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export function layout(name, basePath) {
|
|
69
|
+
// Normalize basePath - ensure it starts with / and doesn't end with /
|
|
70
|
+
const normalizedBase = basePath.startsWith("/") ? basePath : `/${basePath}`;
|
|
71
|
+
const cleanBase = normalizedBase.endsWith("/")
|
|
72
|
+
? normalizedBase.slice(0, -1)
|
|
73
|
+
: normalizedBase;
|
|
74
|
+
return {
|
|
75
|
+
_tag: "LayoutGroup",
|
|
29
76
|
name,
|
|
77
|
+
basePath: cleanBase,
|
|
30
78
|
routes: [],
|
|
31
79
|
add(route) {
|
|
32
80
|
return {
|
|
@@ -53,14 +101,38 @@ export function make(name) {
|
|
|
53
101
|
matchRoute(pathname) {
|
|
54
102
|
// Try to match against each route in each group
|
|
55
103
|
for (const g of this.groups) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
104
|
+
if (g._tag === "LayoutGroup") {
|
|
105
|
+
// For layout groups, check if pathname starts with basePath
|
|
106
|
+
const layoutGroup = g;
|
|
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
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Regular route group - match directly
|
|
126
|
+
for (const route of g.routes) {
|
|
127
|
+
const match = route.match(pathname);
|
|
128
|
+
if (Option.isSome(match)) {
|
|
129
|
+
return Option.some({
|
|
130
|
+
groupName: g.name,
|
|
131
|
+
route,
|
|
132
|
+
params: match.value,
|
|
133
|
+
layouts: [],
|
|
134
|
+
});
|
|
135
|
+
}
|
|
64
136
|
}
|
|
65
137
|
}
|
|
66
138
|
}
|
|
@@ -145,13 +217,13 @@ export function serverLayer(options) {
|
|
|
145
217
|
// Match route using stripped pathname
|
|
146
218
|
const match = router.matchRoute(matchPathname);
|
|
147
219
|
if (Option.isNone(match)) {
|
|
148
|
-
return yield* Effect.fail(new
|
|
220
|
+
return yield* Effect.fail(new RouterError({ message: `No route matched pathname: ${matchPathname}` }));
|
|
149
221
|
}
|
|
150
222
|
const { route, params } = match.value;
|
|
151
223
|
// Get handler for this route
|
|
152
224
|
const handler = routerHandlers.getHandler(route.name);
|
|
153
225
|
if (Option.isNone(handler)) {
|
|
154
|
-
return yield* Effect.fail(new
|
|
226
|
+
return yield* Effect.fail(new RouterError({ message: `No handler found for route: ${route.name}` }));
|
|
155
227
|
}
|
|
156
228
|
// Execute loader and render component
|
|
157
229
|
const loaderCtx = { path: params, searchParams };
|
|
@@ -215,7 +287,8 @@ export function browserLayer(options) {
|
|
|
215
287
|
const locationAtom = Atom.make(getBrowserLocation());
|
|
216
288
|
// Subscribe to popstate for browser back/forward
|
|
217
289
|
const handlePopState = () => {
|
|
218
|
-
|
|
290
|
+
const newLocation = getBrowserLocation();
|
|
291
|
+
registry.set(locationAtom, newLocation);
|
|
219
292
|
};
|
|
220
293
|
window.addEventListener("popstate", handlePopState);
|
|
221
294
|
// Cleanup on scope close
|
|
@@ -273,7 +346,7 @@ export function browserLayer(options) {
|
|
|
273
346
|
const state = hydratedState.value;
|
|
274
347
|
const handler = routerHandlers.getHandler(state.routeName);
|
|
275
348
|
if (Option.isNone(handler)) {
|
|
276
|
-
return yield* Effect.fail(new
|
|
349
|
+
return yield* Effect.fail(new RouterError({ message: `No handler found for route: ${state.routeName}` }));
|
|
277
350
|
}
|
|
278
351
|
// Render component with SSR loader data (skip loader)
|
|
279
352
|
const element = handler.value.component({
|
|
@@ -297,12 +370,12 @@ export function browserLayer(options) {
|
|
|
297
370
|
const searchParams = parseSearchParams(search);
|
|
298
371
|
const match = router.matchRoute(matchPathname);
|
|
299
372
|
if (Option.isNone(match)) {
|
|
300
|
-
return yield* Effect.fail(new
|
|
373
|
+
return yield* Effect.fail(new RouterError({ message: `No route matched pathname: ${matchPathname}` }));
|
|
301
374
|
}
|
|
302
375
|
const { route, params } = match.value;
|
|
303
376
|
const handler = routerHandlers.getHandler(route.name);
|
|
304
377
|
if (Option.isNone(handler)) {
|
|
305
|
-
return yield* Effect.fail(new
|
|
378
|
+
return yield* Effect.fail(new RouterError({ message: `No handler found for route: ${route.name}` }));
|
|
306
379
|
}
|
|
307
380
|
const loaderCtx = { path: params, searchParams };
|
|
308
381
|
const loaderData = yield* handler.value.loader(loaderCtx);
|
|
@@ -321,6 +394,11 @@ export function browserLayer(options) {
|
|
|
321
394
|
registry.set(RouterStateAtom, Option.some(state));
|
|
322
395
|
return { element, state };
|
|
323
396
|
}));
|
|
324
|
-
|
|
397
|
+
// Layer composition: historyLayer provides History, which navigatorLayer needs.
|
|
398
|
+
// We use provideMerge to give Navigator the History it needs, then merge with routeElementLayer.
|
|
399
|
+
// Important: historyLayer should only be instantiated once - putting it in mergeAll separately
|
|
400
|
+
// would create a second instance with a different locationAtom.
|
|
401
|
+
const historyAndNavigator = Layer.provideMerge(navigatorLayer, historyLayer);
|
|
402
|
+
return Layer.mergeAll(historyAndNavigator, routeElementLayer);
|
|
325
403
|
}
|
|
326
404
|
//# sourceMappingURL=Router.js.map
|