@xmachines/play-router 4.0.0 → 5.0.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/README.md +25 -14
- package/dist/base-route-map.d.ts +17 -12
- package/dist/base-route-map.d.ts.map +1 -1
- package/dist/base-route-map.js +101 -25
- package/dist/base-route-map.js.map +1 -1
- package/dist/create-route-map-from-tree.d.ts +1 -1
- package/dist/create-route-map-from-tree.js +1 -1
- package/dist/errors.js +3 -3
- package/dist/errors.js.map +1 -1
- package/dist/find-route.d.ts +13 -1
- package/dist/find-route.d.ts.map +1 -1
- package/dist/find-route.js +22 -10
- package/dist/find-route.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/provider-lifecycle.d.ts +13 -5
- package/dist/provider-lifecycle.d.ts.map +1 -1
- package/dist/provider-lifecycle.js +9 -4
- package/dist/provider-lifecycle.js.map +1 -1
- package/dist/router-bridge-base.d.ts +36 -20
- package/dist/router-bridge-base.d.ts.map +1 -1
- package/dist/router-bridge-base.js +79 -72
- package/dist/router-bridge-base.js.map +1 -1
- package/dist/router-sync.d.ts +2 -26
- package/dist/router-sync.d.ts.map +1 -1
- package/dist/router-sync.js +8 -41
- package/dist/router-sync.js.map +1 -1
- package/dist/types.d.ts +31 -26
- package/dist/types.d.ts.map +1 -1
- package/dist/xstate/create-route-map.d.ts +2 -2
- package/dist/xstate/create-route-map.d.ts.map +1 -1
- package/dist/xstate/create-route-map.js +6 -3
- package/dist/xstate/create-route-map.js.map +1 -1
- package/dist/xstate/extract-routes.d.ts +2 -1
- package/dist/xstate/extract-routes.d.ts.map +1 -1
- package/dist/xstate/extract-routes.js +5 -5
- package/dist/xstate/extract-routes.js.map +1 -1
- package/package.json +15 -12
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The class holds the logic that each router bridge shares, and that is 90% of the
|
|
5
5
|
* code of every bridge:
|
|
6
|
-
* - The
|
|
6
|
+
* - The atom watcher of the direction from the actor to the router
|
|
7
7
|
* - `lastSyncedPath`, for the echo suppression in the direction from the actor to the router
|
|
8
8
|
* - The `isProcessingNavigation` flag, which stops a loop of a guard redirect in `syncActorFromRouter` only
|
|
9
9
|
* - `syncRouterFromActor` and `syncActorFromRouter`, with the read of each URL parameter
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
*
|
|
43
43
|
* @see [Play RFC](../../docs/rfc/play.md) - invariant INV-04
|
|
44
44
|
*/
|
|
45
|
-
import { NO_BASE_PATH,
|
|
46
|
-
import {
|
|
45
|
+
import { NO_BASE_PATH, sanitizePathname, splitLocation, holdsUnsubstitutedParam, joinBasePath, parsePattern, resolveBasePath, stripBasePath, } from "@xmachines/play-url";
|
|
46
|
+
import { watchAtom } from "@xmachines/play-atom";
|
|
47
47
|
import { DuplicateBridgeError, RouterSyncError, InvalidRoutePatternError } from "./errors.js";
|
|
48
|
-
import { buildPlayRouteEvent, extractQuery, extractRouteParams, matchRouteMap,
|
|
48
|
+
import { buildPlayRouteEvent, extractQuery, extractRouteParams, matchRouteMap, } from "./router-sync.js";
|
|
49
49
|
/**
|
|
50
50
|
* The registry of the actors with an active bridge connection, at the module level.
|
|
51
51
|
*
|
|
@@ -84,19 +84,19 @@ export class RouterBridgeBase {
|
|
|
84
84
|
/**
|
|
85
85
|
* The raw value of `actor.currentRoute` that this bridge accounted for already.
|
|
86
86
|
*
|
|
87
|
-
* The field answers ONE question: "did the bridge see this value of the
|
|
87
|
+
* The field answers ONE question: "did the bridge see this value of the atom
|
|
88
88
|
* before?". It is therefore a string, and not a location — a route that resolves to
|
|
89
89
|
* no URL, such as an unknown stateId or a parameterized pattern, still stops a
|
|
90
90
|
* second attempt at the same value.
|
|
91
91
|
*
|
|
92
92
|
* The constructor and `connect()` seed it, so that the first fire of the watcher of
|
|
93
|
-
* the
|
|
93
|
+
* the atom pushes nothing for a route that moved nowhere.
|
|
94
94
|
*/
|
|
95
95
|
lastActorRoute = null;
|
|
96
96
|
/**
|
|
97
97
|
* The flag guards `syncActorFromRouter` against a re-entrant call from a guard
|
|
98
98
|
* redirect of the actor itself. Such a call has this sequence: the bridge sends to
|
|
99
|
-
* the actor, the
|
|
99
|
+
* the actor, the atom fires, the bridge pushes to the router, and a second
|
|
100
100
|
* `syncActorFromRouter` call starts before the first one returns.
|
|
101
101
|
*
|
|
102
102
|
* The flag is NOT the echo suppression of the direction from the actor to the
|
|
@@ -168,6 +168,13 @@ export class RouterBridgeBase {
|
|
|
168
168
|
* the echo suppression therefore keeps comparing like with like.
|
|
169
169
|
*/
|
|
170
170
|
mount = NO_BASE_PATH;
|
|
171
|
+
/**
|
|
172
|
+
* The caches that every parse and every compilation of this bridge reads.
|
|
173
|
+
*
|
|
174
|
+
* `resolveNavigationPath` and `isActorAtPath` parse a CONCRETE location, and an
|
|
175
|
+
* application writes one for each value that it puts in a param.
|
|
176
|
+
*/
|
|
177
|
+
compileOptions;
|
|
171
178
|
/**
|
|
172
179
|
* @param actor - A `RoutableActor`, with `currentRoute`, `initialRoute`, and `send`.
|
|
173
180
|
* @param routeMap - The route map of both directions, for the resolution between a
|
|
@@ -180,11 +187,19 @@ export class RouterBridgeBase {
|
|
|
180
187
|
constructor(actor, routeMap, options) {
|
|
181
188
|
this.actor = actor;
|
|
182
189
|
this.routeMap = routeMap;
|
|
190
|
+
// The caches of this bridge, or the shared defaults. `resolveNavigationPath` and
|
|
191
|
+
// `isActorAtPath` parse a CONCRETE location — one for each value that the
|
|
192
|
+
// application puts in a param — so a server that holds a bridge for each request
|
|
193
|
+
// passes caches that the request owns and drops.
|
|
194
|
+
this.compileOptions = {
|
|
195
|
+
patternCache: options?.patternCache,
|
|
196
|
+
compiledCache: options?.compiledCache,
|
|
197
|
+
};
|
|
183
198
|
// Resolve the mount BEFORE the seed of lastSyncedPath: an invalid basePath must
|
|
184
199
|
// fail here, at the construction, and not on the first navigation.
|
|
185
200
|
this.mount = resolveBasePath(options?.basePath, options?.basePathParams);
|
|
186
201
|
// Record the route of the actor as accounted for. This stops a loop in the first
|
|
187
|
-
// synchronization: the watcher of the
|
|
202
|
+
// synchronization: the watcher of the atom fires once when `connect()` arms it,
|
|
188
203
|
// and a route that moved nowhere must push nothing.
|
|
189
204
|
//
|
|
190
205
|
// The seed goes to `lastActorRoute`, and NOT to `lastSyncedPath`. The route of the
|
|
@@ -419,7 +434,7 @@ export class RouterBridgeBase {
|
|
|
419
434
|
/**
|
|
420
435
|
* Connects the router bridge to the Actor.
|
|
421
436
|
*
|
|
422
|
-
* The method installs the
|
|
437
|
+
* The method installs the atom watcher of the direction from the actor to the
|
|
423
438
|
* router. It then starts the watch of the router changes, which each framework does
|
|
424
439
|
* in its own way.
|
|
425
440
|
*
|
|
@@ -466,7 +481,7 @@ export class RouterBridgeBase {
|
|
|
466
481
|
this.hasConnectedOnce = true;
|
|
467
482
|
// From here on, connect() gives all or nothing. THREE steps below can throw, and
|
|
468
483
|
// the rollback has to cover each of them:
|
|
469
|
-
// - `createRouteWatcher`, on
|
|
484
|
+
// - `createRouteWatcher`, on an atom that refuses a watcher
|
|
470
485
|
// - `watchRouterChanges()`, which belongs to the adapter: `afterNavigate()` of
|
|
471
486
|
// SvelteKit raises `lifecycle_outside_component` outside the initialization of
|
|
472
487
|
// a component, and a host reaches that by calling `connectRouter` from a module
|
|
@@ -482,13 +497,13 @@ export class RouterBridgeBase {
|
|
|
482
497
|
// cleanup. Every part above must go away again, or it leaks:
|
|
483
498
|
// - the router listener keeps firing, and it drives the actor through a bridge
|
|
484
499
|
// that the caller believes to be dead
|
|
485
|
-
// - the
|
|
500
|
+
// - the atom watcher keeps pushing each actor route to the router
|
|
486
501
|
// - the activeBridges entry keeps the actor, so the NEXT connect() call of the
|
|
487
502
|
// caller for this actor throws a DuplicateBridgeError. A repair of the real
|
|
488
503
|
// cause, for example a correction of the route pattern, rescues that actor
|
|
489
504
|
// never.
|
|
490
505
|
try {
|
|
491
|
-
// The
|
|
506
|
+
// The atom watcher of the direction from the actor to the router.
|
|
492
507
|
this.routeWatcher = createRouteWatcher(this.actor.currentRoute, (route) => {
|
|
493
508
|
this.syncRouterFromActor(route);
|
|
494
509
|
});
|
|
@@ -678,7 +693,7 @@ export class RouterBridgeBase {
|
|
|
678
693
|
/**
|
|
679
694
|
* Disconnects the router bridge from the Actor.
|
|
680
695
|
*
|
|
681
|
-
* The method stops the watch of the
|
|
696
|
+
* The method stops the watch of the atom, and it removes the router listener of the
|
|
682
697
|
* framework.
|
|
683
698
|
*/
|
|
684
699
|
disconnect() {
|
|
@@ -729,7 +744,7 @@ export class RouterBridgeBase {
|
|
|
729
744
|
}
|
|
730
745
|
// ── The sync methods. They are protected, and a subclass overrides one for its own behavior ──
|
|
731
746
|
/**
|
|
732
|
-
* Writes the location of the router when the route
|
|
747
|
+
* Writes the location of the router when the route atom of the actor changes.
|
|
733
748
|
*
|
|
734
749
|
* The method resolves the actor route to a concrete URL path, then it calls
|
|
735
750
|
* navigateRouter() for the navigation of the framework. When it cannot resolve the
|
|
@@ -967,7 +982,7 @@ export class RouterBridgeBase {
|
|
|
967
982
|
* reports, and `sanitizePathname` has removed the fragment from that already.
|
|
968
983
|
*/
|
|
969
984
|
testEchoOfLastPush(route) {
|
|
970
|
-
// The FIRST question: did the bridge account for this value of the
|
|
985
|
+
// The FIRST question: did the bridge account for this value of the atom already?
|
|
971
986
|
// The test is an exact string compare, because it asks about the VALUE. A route
|
|
972
987
|
// that resolves to no URL — an unknown stateId, a parameterized pattern — is
|
|
973
988
|
// therefore covered too, and the bridge tries it one time only.
|
|
@@ -984,7 +999,7 @@ export class RouterBridgeBase {
|
|
|
984
999
|
if (sameLocation(route, location))
|
|
985
1000
|
return { isEcho: true };
|
|
986
1001
|
// A route that is a stateId answers it only after the resolution. The machine that
|
|
987
|
-
// mirrors an inbound `play.route` back into its route
|
|
1002
|
+
// mirrors an inbound `play.route` back into its route atom reaches this line:
|
|
988
1003
|
// the bridge wrote "/about" and the actor answers "#about", which is ONE location.
|
|
989
1004
|
// A compare of the raw value alone missed, and the bridge pushed a location that
|
|
990
1005
|
// the router already held — one history entry that BACK cannot escape.
|
|
@@ -1012,7 +1027,7 @@ export class RouterBridgeBase {
|
|
|
1012
1027
|
* literal `*` into the browser URL. The method still writes the raw route to
|
|
1013
1028
|
* lastActorRoute, and it leaves lastSyncedPath as it stands, because that field
|
|
1014
1029
|
* records a LOCATION and no location changed. Therefore the dedup guard fires
|
|
1015
|
-
* correctly on the next identical value of the
|
|
1030
|
+
* correctly on the next identical value of the atom.
|
|
1016
1031
|
*
|
|
1017
1032
|
* @param route - The raw value of the actor route.
|
|
1018
1033
|
* @param resolved - The concrete path of that route. The default resolves it here. A
|
|
@@ -1021,7 +1036,7 @@ export class RouterBridgeBase {
|
|
|
1021
1036
|
*/
|
|
1022
1037
|
pushResolvedRoute(route, resolved = this.resolveNavigationPath(route)) {
|
|
1023
1038
|
// The VALUE is accounted for either way, so the dedup stops the next identical fire
|
|
1024
|
-
// of the
|
|
1039
|
+
// of the atom even when the route resolves to no URL.
|
|
1025
1040
|
this.lastActorRoute = route;
|
|
1026
1041
|
// The LOCATION record takes the concrete path only. A raw stateId here described no
|
|
1027
1042
|
// location that a router ever showed, and `isEchoOfLastSync` compares this field
|
|
@@ -1119,7 +1134,7 @@ export class RouterBridgeBase {
|
|
|
1119
1134
|
}
|
|
1120
1135
|
// Record the location BEFORE the send, and record it with its query.
|
|
1121
1136
|
//
|
|
1122
|
-
// The route
|
|
1137
|
+
// The route atom of the actor notifies the watcher of the other direction
|
|
1123
1138
|
// for this same move, and `syncRouterFromActor` then tests the route of the
|
|
1124
1139
|
// actor against this field. Two details decide that test:
|
|
1125
1140
|
//
|
|
@@ -1134,7 +1149,7 @@ export class RouterBridgeBase {
|
|
|
1134
1149
|
this.lastSyncedPath = withSearch(nextRoute.pathname, search);
|
|
1135
1150
|
// The router moved, and the actor has not answered yet, so the value that the
|
|
1136
1151
|
// bridge accounted for describes the agreement of the two sides NO MORE. A value
|
|
1137
|
-
// that stayed read the answer of the actor as a repeat of the
|
|
1152
|
+
// that stayed read the answer of the actor as a repeat of the atom: a guard
|
|
1138
1153
|
// redirect BACK to the route the actor came from — the route that the seed of
|
|
1139
1154
|
// `connect()` recorded — stopped at the dedup, the bridge pushed nothing, and the
|
|
1140
1155
|
// address bar kept the location that the guard refused.
|
|
@@ -1174,7 +1189,7 @@ export class RouterBridgeBase {
|
|
|
1174
1189
|
const pattern = this.routeMap.getPathByStateId(stateId);
|
|
1175
1190
|
if (!pattern)
|
|
1176
1191
|
return {};
|
|
1177
|
-
return extractRouteParams(pathname, pattern);
|
|
1192
|
+
return extractRouteParams(pathname, pattern, this.compileOptions);
|
|
1178
1193
|
}
|
|
1179
1194
|
/**
|
|
1180
1195
|
* Resolves a value of an actor route to a concrete URL path for a navigation.
|
|
@@ -1220,9 +1235,10 @@ export class RouterBridgeBase {
|
|
|
1220
1235
|
// - A route of the MAP is a pattern source, so every construct in it is grammar and
|
|
1221
1236
|
// the parse resolves all of it.
|
|
1222
1237
|
// - A route that the ACTOR built is a path already. `buildRouteUrl` of
|
|
1223
|
-
// `@xmachines/play-xstate`
|
|
1224
|
-
//
|
|
1225
|
-
//
|
|
1238
|
+
// `@xmachines/play-xstate` reads the whole grammar and resolves every escape, so
|
|
1239
|
+
// a route that IT built carries no backslash. An actor of another kind can still
|
|
1240
|
+
// write one, and a BACKSLASH is the one construct that means grammar in such a
|
|
1241
|
+
// path — and nothing else does. A brace in such a path is a real brace, and
|
|
1226
1242
|
// `/i18n/{en}` from an actor is the location `/i18n/{en}`.
|
|
1227
1243
|
//
|
|
1228
1244
|
// A route of the map is a pattern source WHOLE, and its `?` is a modifier and never
|
|
@@ -1234,7 +1250,7 @@ export class RouterBridgeBase {
|
|
|
1234
1250
|
// all reached the address bar as they stand, where `getStateIdByPath` answers them
|
|
1235
1251
|
// never.
|
|
1236
1252
|
if (mapped != null)
|
|
1237
|
-
return parsePattern(path).literalPath;
|
|
1253
|
+
return parsePattern(path, this.compileOptions).literalPath;
|
|
1238
1254
|
// A route of the ACTOR carries its query, because `context.query` travels in
|
|
1239
1255
|
// `currentRoute`, and the PATHNAME half alone reaches the grammar for it. A query
|
|
1240
1256
|
// holds a ":" and a "*" legally — a time in "?at=10:30", a URL in "?next=https://x",
|
|
@@ -1245,12 +1261,11 @@ export class RouterBridgeBase {
|
|
|
1245
1261
|
// `lastSyncedPath` and navigated nowhere, and the dedup guard then suppressed the
|
|
1246
1262
|
// next attempt at the same route as an echo. The suffix carries no grammar, and it
|
|
1247
1263
|
// travels to the router unchanged.
|
|
1248
|
-
const
|
|
1249
|
-
const pathname = mark === -1 ? path : path.slice(0, mark);
|
|
1264
|
+
const { pathname, suffix } = splitLocation(path);
|
|
1250
1265
|
// A BACKSLASH is the one construct that reaches an actor route unresolved, and this
|
|
1251
1266
|
// is where it resolves.
|
|
1252
1267
|
if (pathname.includes("\\")) {
|
|
1253
|
-
const literal = parsePattern(pathname).literalPath;
|
|
1268
|
+
const literal = parsePattern(pathname, this.compileOptions).literalPath;
|
|
1254
1269
|
// The resolution FAILED, so this route resolves to no concrete path and the
|
|
1255
1270
|
// bridge pushes nothing. A fall to the test below refused none of it — a backslash
|
|
1256
1271
|
// is neither a ":" nor a "*" — so the SOURCE went to the address bar with its
|
|
@@ -1259,7 +1274,7 @@ export class RouterBridgeBase {
|
|
|
1259
1274
|
// route as an echo. `encodeURIComponent` leaves "(", ")", "!", "'" and "~" as they
|
|
1260
1275
|
// stand, so a param value of `f(x)` under a template that carries an escape —
|
|
1261
1276
|
// `/files/c\+\+/:name` — reaches this line and derives no literal path.
|
|
1262
|
-
return literal === null ? null : `${literal}${
|
|
1277
|
+
return literal === null ? null : `${literal}${suffix}`;
|
|
1263
1278
|
}
|
|
1264
1279
|
// The test is `holdsUnsubstitutedParam` and NOT `isParameterizedPattern`, because
|
|
1265
1280
|
// this string is a concrete path and not a pattern. Its own documentation gives the
|
|
@@ -1325,7 +1340,7 @@ export class RouterBridgeBase {
|
|
|
1325
1340
|
// actor standing exactly at this location as "somewhere else": `performInitialSync`
|
|
1326
1341
|
// read that as a deep link and sent a `play.route` for the state the actor was in
|
|
1327
1342
|
// already, so every entry action of that state ran a second time.
|
|
1328
|
-
const
|
|
1343
|
+
const { pathname: actorPath } = splitLocation(actorRoute);
|
|
1329
1344
|
// An ESCAPED literal route resolves on that same half, and its two forms are never
|
|
1330
1345
|
// the identical string: the actor carries `/tags/c\+\+`, which is what the template
|
|
1331
1346
|
// writes, and the router stands at `/tags/c++`, which is the path that the route
|
|
@@ -1333,7 +1348,9 @@ export class RouterBridgeBase {
|
|
|
1333
1348
|
// PATHNAME, and not the whole string, for two reasons: a `?` is a modifier of the
|
|
1334
1349
|
// grammar that makes `/tags/c\+\+?ref=nav` malformed, and a query would key the
|
|
1335
1350
|
// bounded parse cache on a string that no route map holds.
|
|
1336
|
-
const literalPath = actorPath.includes("\\")
|
|
1351
|
+
const literalPath = actorPath.includes("\\")
|
|
1352
|
+
? parsePattern(actorPath, this.compileOptions).literalPath
|
|
1353
|
+
: null;
|
|
1337
1354
|
// The pathname test answers with no map at all, and it has to run FIRST: the lookup
|
|
1338
1355
|
// below returns nothing for a location that the map does not hold, and the early
|
|
1339
1356
|
// return then reported an actor standing exactly at that location as "somewhere
|
|
@@ -1391,10 +1408,10 @@ export class RouterBridgeBase {
|
|
|
1391
1408
|
* callback reports the pathname and the search SEPARATELY, and `sanitizePathname`
|
|
1392
1409
|
* removes the query. A comparison of the pathname alone therefore misses for every
|
|
1393
1410
|
* route with a query, and the push of this bridge comes back as a `play.route` event
|
|
1394
|
-
* of its own navigation. That echo is not only wasted work:
|
|
1395
|
-
*
|
|
1396
|
-
*
|
|
1397
|
-
*
|
|
1411
|
+
* of its own navigation. That echo is not only wasted work: the bridge sends a
|
|
1412
|
+
* `play.route` for a location that the actor stands on already, so every entry action
|
|
1413
|
+
* of that state runs a second time, and a guard that refuses the repeat moves the
|
|
1414
|
+
* actor to a state that no user asked for.
|
|
1398
1415
|
*
|
|
1399
1416
|
* The query is compared as a MAP, and not as a string: a framework can re-serialize
|
|
1400
1417
|
* a search string in another order, and `URLSearchParams` also accepts the form with
|
|
@@ -1414,7 +1431,7 @@ export class RouterBridgeBase {
|
|
|
1414
1431
|
// move that keeps the path and changes the query, which a filter link does, and
|
|
1415
1432
|
// which a `validateSearch` of a route does when it injects a default. The actor
|
|
1416
1433
|
// then never hears of the move, and the URL and the actor diverge.
|
|
1417
|
-
const
|
|
1434
|
+
const { pathname: lastPath, query: lastQuery } = splitLocation(last);
|
|
1418
1435
|
if (lastPath !== sanitized)
|
|
1419
1436
|
return false;
|
|
1420
1437
|
return sortedQuery(lastQuery) === sortedQuery(search ?? "");
|
|
@@ -1478,33 +1495,6 @@ export class RouterBridgeBase {
|
|
|
1478
1495
|
return undefined;
|
|
1479
1496
|
}
|
|
1480
1497
|
}
|
|
1481
|
-
/**
|
|
1482
|
-
* Splits a location into its path, its query with no leading `?`, and its fragment
|
|
1483
|
-
* with its leading `#`.
|
|
1484
|
-
*
|
|
1485
|
-
* A '#' after index 0 ends the pathname. `pushResolvedRoute` writes what the actor
|
|
1486
|
-
* gave — "/docs#intro" — while the callback of the router reports "/docs", because
|
|
1487
|
-
* `sanitizePathname` strips the fragment: an echo test that compared the two whole
|
|
1488
|
-
* strings missed, so the bridge answered its own push with an event and a history entry
|
|
1489
|
-
* that BACK cannot escape.
|
|
1490
|
-
*
|
|
1491
|
-
* The fragment comes back as the THIRD field, and each caller decides whether it
|
|
1492
|
-
* counts: `isEchoOfLastPush` compares it, because `navigateRouter` writes it, and
|
|
1493
|
-
* `isEchoOfLastSync` drops it, because the router reports it never.
|
|
1494
|
-
*
|
|
1495
|
-
* At index 0 the '#' is NOT a fragment: `lastSyncedPath` legitimately holds a bare
|
|
1496
|
-
* stateId such as "#home", which `pushResolvedRoute` stores when it can resolve no
|
|
1497
|
-
* path. Cutting there would turn that value into the empty string.
|
|
1498
|
-
*/
|
|
1499
|
-
function splitLocation(location) {
|
|
1500
|
-
const fragmentAt = location.indexOf("#", 1);
|
|
1501
|
-
const withoutFragment = fragmentAt === -1 ? location : location.slice(0, fragmentAt);
|
|
1502
|
-
const fragment = fragmentAt === -1 ? "" : location.slice(fragmentAt);
|
|
1503
|
-
const mark = withoutFragment.indexOf("?");
|
|
1504
|
-
if (mark === -1)
|
|
1505
|
-
return [withoutFragment, "", fragment];
|
|
1506
|
-
return [withoutFragment.slice(0, mark), withoutFragment.slice(mark + 1), fragment];
|
|
1507
|
-
}
|
|
1508
1498
|
/**
|
|
1509
1499
|
* True when the query of an actor route and the query of the router are the same query.
|
|
1510
1500
|
*
|
|
@@ -1524,7 +1514,7 @@ function splitLocation(location) {
|
|
|
1524
1514
|
* @param search - The query of the router, or `undefined` when it has none.
|
|
1525
1515
|
*/
|
|
1526
1516
|
function sameQuery(actorRoute, search) {
|
|
1527
|
-
const
|
|
1517
|
+
const { query: actorQuery, fragment } = splitLocation(actorRoute);
|
|
1528
1518
|
// A FRAGMENT is a difference, always. `sanitizePathname` cuts it off, so the router
|
|
1529
1519
|
// reports one never and this comparison can confirm one never — and "unknown" must not
|
|
1530
1520
|
// read as "the same". An actor that carries `/#intro` against a router at `/` is the
|
|
@@ -1550,7 +1540,7 @@ function sameQuery(actorRoute, search) {
|
|
|
1550
1540
|
* @param actorRoute - The raw value of the actor route.
|
|
1551
1541
|
*/
|
|
1552
1542
|
function carriesNoOwnSuffix(actorRoute) {
|
|
1553
|
-
const
|
|
1543
|
+
const { query, fragment } = splitLocation(actorRoute);
|
|
1554
1544
|
return query === "" && fragment === "";
|
|
1555
1545
|
}
|
|
1556
1546
|
/** Joins a pathname and a query into one location value. An empty query adds nothing. */
|
|
@@ -1581,17 +1571,34 @@ function sortedQuery(search) {
|
|
|
1581
1571
|
return pairs.toSorted().join("&");
|
|
1582
1572
|
}
|
|
1583
1573
|
function noopCleanup() { }
|
|
1584
|
-
|
|
1574
|
+
/**
|
|
1575
|
+
* Watches the route atom of the actor.
|
|
1576
|
+
*
|
|
1577
|
+
* The bridge wraps the read in NOTHING. A subscription evaluates a computed atom inside
|
|
1578
|
+
* the `set` of the actor state, so a throw from the derivation would unwind into
|
|
1579
|
+
* `actor.send` and break the transition for every other observer — and `currentRoute`
|
|
1580
|
+
* therefore contains its own failures, reports them through `onError` of the actor, and
|
|
1581
|
+
* keeps its last route. Every subscriber benefits from that rule, and not this bridge
|
|
1582
|
+
* alone.
|
|
1583
|
+
*/
|
|
1584
|
+
function createRouteWatcher(atom, onRoute) {
|
|
1585
1585
|
let cleanup = noopCleanup;
|
|
1586
1586
|
const watcher = {
|
|
1587
|
-
watch(
|
|
1588
|
-
|
|
1587
|
+
watch(nextAtom) {
|
|
1588
|
+
// Release the watch that this handle holds already. `RouteWatcherHandle` is a
|
|
1589
|
+
// published type, so a bridge of a consumer can repoint the handle at the atom of
|
|
1590
|
+
// a new actor — and an assignment alone dropped the reference to the first
|
|
1591
|
+
// cleanup, which left the first subscription live for the life of the process.
|
|
1592
|
+
watcher.unwatch();
|
|
1593
|
+
cleanup = watchAtom(nextAtom, onRoute);
|
|
1589
1594
|
},
|
|
1590
1595
|
unwatch() {
|
|
1591
|
-
cleanup
|
|
1596
|
+
const release = cleanup;
|
|
1597
|
+
cleanup = noopCleanup;
|
|
1598
|
+
release();
|
|
1592
1599
|
},
|
|
1593
1600
|
};
|
|
1594
|
-
watcher.watch(
|
|
1601
|
+
watcher.watch(atom);
|
|
1595
1602
|
return watcher;
|
|
1596
1603
|
}
|
|
1597
1604
|
/**
|
|
@@ -1604,8 +1611,8 @@ function createRouteWatcher(signal, onRoute) {
|
|
|
1604
1611
|
* address bar for ever.
|
|
1605
1612
|
*/
|
|
1606
1613
|
function sameLocation(a, b) {
|
|
1607
|
-
const
|
|
1608
|
-
const
|
|
1614
|
+
const { pathname: aPath, query: aQuery, fragment: aFragment } = splitLocation(a);
|
|
1615
|
+
const { pathname: bPath, query: bQuery, fragment: bFragment } = splitLocation(b);
|
|
1609
1616
|
if (aPath !== bPath)
|
|
1610
1617
|
return false;
|
|
1611
1618
|
if (aFragment !== bFragment)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-bridge-base.js","sourceRoot":"","sources":["../src/router-bridge-base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router-bridge-base.js","sourceRoot":"","sources":["../src/router-bridge-base.ts"],"names":[],"mappings":"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"}
|
package/dist/router-sync.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CompileOptions } from "@xmachines/play-url";
|
|
1
2
|
import type { PlayRouteEvent } from "./types.js";
|
|
2
3
|
export interface RouteMatch {
|
|
3
4
|
to: string | null | undefined;
|
|
@@ -19,31 +20,6 @@ export interface RouterStateIdMap {
|
|
|
19
20
|
* Therefore the semantics of the match in the route map stay identical.
|
|
20
21
|
*/
|
|
21
22
|
export declare function matchRouteMap(pathname: string, routeMap: RouterStateIdMap, extractParams: (pathname: string, stateId: string) => Record<string, string>): RouteMatch;
|
|
22
|
-
/**
|
|
23
|
-
* Normalizes a pathname before a lookup in the route map.
|
|
24
|
-
*
|
|
25
|
-
* The function removes a query fragment and a hash fragment, it joins each duplicate
|
|
26
|
-
* slash into one, and it refuses a path of an improbable length, because such a path
|
|
27
|
-
* must never enter the route resolution.
|
|
28
|
-
*
|
|
29
|
-
* It returns `null` for a path of more than 2048 characters, which is malformed or
|
|
30
|
-
* hostile input. An adapter that passes around
|
|
31
|
-
* `RouterBridgeBase.syncActorFromRouter()`, for example `VueRouterBridge`, must call
|
|
32
|
-
* this function itself, and it must return at once on a `null` value. That adapter
|
|
33
|
-
* then gives the same guarantee of the defense in depth as the shared base class.
|
|
34
|
-
*
|
|
35
|
-
* @param pathname - The raw path string of a navigation event of the router.
|
|
36
|
-
* @returns The normalized path string, or `null` when the path is malformed or too long.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* import { sanitizePathname } from "@xmachines/play-router";
|
|
41
|
-
*
|
|
42
|
-
* const clean = sanitizePathname(to.path);
|
|
43
|
-
* if (clean === null) return; // refuse a malformed path
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export declare function sanitizePathname(pathname: string): string | null;
|
|
47
23
|
/**
|
|
48
24
|
* Reads the named path parameters of a URL, with the URLPattern API.
|
|
49
25
|
*
|
|
@@ -80,7 +56,7 @@ export declare function sanitizePathname(pathname: string): string | null;
|
|
|
80
56
|
* // → {} — the optional param is absent, and the object holds it not
|
|
81
57
|
* ```
|
|
82
58
|
*/
|
|
83
|
-
export declare function extractRouteParams(pathname: string, pattern: string): Record<string, string>;
|
|
59
|
+
export declare function extractRouteParams(pathname: string, pattern: string, options?: CompileOptions): Record<string, string>;
|
|
84
60
|
/**
|
|
85
61
|
* Parses a URL search string into the plain object that a `play.route` event
|
|
86
62
|
* needs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-sync.d.ts","sourceRoot":"","sources":["../src/router-sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router-sync.d.ts","sourceRoot":"","sources":["../src/router-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,cAAc,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,UAAU,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAChC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1E,UAAU,CAUZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,cAAc,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BxB;AAeD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBnE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,0BAA0B,GACjC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,GAAG,IAAI,CAsBpD"}
|
package/dist/router-sync.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCompiledPattern,
|
|
1
|
+
import { getCompiledPattern, parsePattern, sanitizePathname, } from "@xmachines/play-url";
|
|
2
2
|
/**
|
|
3
3
|
* Matches a clean pathname against a route map, and reads each param of the match.
|
|
4
4
|
*
|
|
@@ -15,42 +15,6 @@ export function matchRouteMap(pathname, routeMap, extractParams) {
|
|
|
15
15
|
params: extractParams(pathname, stateId),
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Normalizes a pathname before a lookup in the route map.
|
|
20
|
-
*
|
|
21
|
-
* The function removes a query fragment and a hash fragment, it joins each duplicate
|
|
22
|
-
* slash into one, and it refuses a path of an improbable length, because such a path
|
|
23
|
-
* must never enter the route resolution.
|
|
24
|
-
*
|
|
25
|
-
* It returns `null` for a path of more than 2048 characters, which is malformed or
|
|
26
|
-
* hostile input. An adapter that passes around
|
|
27
|
-
* `RouterBridgeBase.syncActorFromRouter()`, for example `VueRouterBridge`, must call
|
|
28
|
-
* this function itself, and it must return at once on a `null` value. That adapter
|
|
29
|
-
* then gives the same guarantee of the defense in depth as the shared base class.
|
|
30
|
-
*
|
|
31
|
-
* @param pathname - The raw path string of a navigation event of the router.
|
|
32
|
-
* @returns The normalized path string, or `null` when the path is malformed or too long.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* import { sanitizePathname } from "@xmachines/play-router";
|
|
37
|
-
*
|
|
38
|
-
* const clean = sanitizePathname(to.path);
|
|
39
|
-
* if (clean === null) return; // refuse a malformed path
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export function sanitizePathname(pathname) {
|
|
43
|
-
if (pathname.length > 2048)
|
|
44
|
-
return null;
|
|
45
|
-
// `slice` to the first separator. `split` allocates an array for a value that the
|
|
46
|
-
// code reads once, and its first element reads `string | undefined` although a split
|
|
47
|
-
// answers one element always.
|
|
48
|
-
const queryAt = pathname.indexOf("?");
|
|
49
|
-
const withoutQuery = queryAt === -1 ? pathname : pathname.slice(0, queryAt);
|
|
50
|
-
const hashAt = withoutQuery.indexOf("#");
|
|
51
|
-
const withoutHash = hashAt === -1 ? withoutQuery : withoutQuery.slice(0, hashAt);
|
|
52
|
-
return withoutHash.replace(/\/+/g, "/");
|
|
53
|
-
}
|
|
54
18
|
/**
|
|
55
19
|
* Reads the named path parameters of a URL, with the URLPattern API.
|
|
56
20
|
*
|
|
@@ -87,18 +51,21 @@ export function sanitizePathname(pathname) {
|
|
|
87
51
|
* // → {} — the optional param is absent, and the object holds it not
|
|
88
52
|
* ```
|
|
89
53
|
*/
|
|
90
|
-
export function extractRouteParams(pathname, pattern) {
|
|
91
|
-
|
|
54
|
+
export function extractRouteParams(pathname, pattern, options) {
|
|
55
|
+
// ONE parse answers both questions of this function: does the pattern need a match,
|
|
56
|
+
// and which name does each URLPattern group carry.
|
|
57
|
+
const parsed = parsePattern(pattern, options);
|
|
58
|
+
if (!parsed.parameterized)
|
|
92
59
|
return {};
|
|
93
60
|
// Compile the pattern with the SAME normalization as the match in RouteMap.
|
|
94
61
|
// Without it, URLPattern reads ":cat-id" as the group ":cat" and the literal "-id",
|
|
95
62
|
// and the read of the params then contradicts the map that matched the path.
|
|
96
|
-
const urlPattern = getCompiledPattern(pattern);
|
|
63
|
+
const urlPattern = getCompiledPattern(pattern, options);
|
|
97
64
|
const match = urlPattern.exec({ pathname });
|
|
98
65
|
if (!match?.pathname.groups)
|
|
99
66
|
return {};
|
|
100
67
|
// Map each normalized group name (":cat_id") back to its original param name ("cat-id").
|
|
101
|
-
const nameMap =
|
|
68
|
+
const nameMap = parsed.declaredNames;
|
|
102
69
|
// A null prototype for the accumulator, exactly as `cleanFrameworkParams` uses: a plain
|
|
103
70
|
// `{}` turns `params["__proto__"] = value` into a write of the PROTOTYPE setter, which
|
|
104
71
|
// drops the value in silence. A machine that declares `/:__proto__` then received `{}`
|