@pyreon/router 0.3.1 → 0.5.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.
@@ -140,18 +140,28 @@ function compileSegment(raw) {
140
140
  raw,
141
141
  isParam: true,
142
142
  isSplat: true,
143
+ isOptional: false,
144
+ paramName: raw.slice(1, -1)
145
+ };
146
+ if (raw.endsWith("?") && raw.startsWith(":")) return {
147
+ raw,
148
+ isParam: true,
149
+ isSplat: false,
150
+ isOptional: true,
143
151
  paramName: raw.slice(1, -1)
144
152
  };
145
153
  if (raw.startsWith(":")) return {
146
154
  raw,
147
155
  isParam: true,
148
156
  isSplat: false,
157
+ isOptional: false,
149
158
  paramName: raw.slice(1)
150
159
  };
151
160
  return {
152
161
  raw,
153
162
  isParam: false,
154
163
  isSplat: false,
164
+ isOptional: false,
155
165
  paramName: ""
156
166
  };
157
167
  }
@@ -183,14 +193,33 @@ function compileRoute(route) {
183
193
  firstSegment
184
194
  };
185
195
  }
196
+ /** Expand alias paths into additional compiled entries sharing the original RouteRecord */
197
+ function expandAliases(r, c) {
198
+ if (!r.alias) return [];
199
+ return (Array.isArray(r.alias) ? r.alias : [r.alias]).map(aliasPath => {
200
+ const {
201
+ alias: _,
202
+ ...withoutAlias
203
+ } = r;
204
+ const ac = compileRoute({
205
+ ...withoutAlias,
206
+ path: aliasPath
207
+ });
208
+ ac.children = c.children;
209
+ ac.route = r;
210
+ return ac;
211
+ });
212
+ }
186
213
  function compileRoutes(routes) {
187
214
  const cached = _compiledCache.get(routes);
188
215
  if (cached) return cached;
189
- const compiled = routes.map(r => {
216
+ const compiled = [];
217
+ for (const r of routes) {
190
218
  const c = compileRoute(r);
191
219
  if (r.children && r.children.length > 0) c.children = compileRoutes(r.children);
192
- return c;
193
- });
220
+ compiled.push(c);
221
+ compiled.push(...expandAliases(r, c));
222
+ }
194
223
  _compiledCache.set(routes, compiled);
195
224
  return compiled;
196
225
  }
@@ -203,6 +232,9 @@ function getFirstSegment(segments) {
203
232
  /** Build a FlattenedRoute from segments + metadata */
204
233
  function makeFlatEntry(segments, chain, meta, isWildcard) {
205
234
  const isStatic = !isWildcard && segments.every(s => !s.isParam);
235
+ const hasOptional = segments.some(s => s.isOptional);
236
+ let minSegs = segments.length;
237
+ if (hasOptional) while (minSegs > 0 && segments[minSegs - 1]?.isOptional) minSegs--;
206
238
  return {
207
239
  segments,
208
240
  segmentCount: segments.length,
@@ -212,7 +244,9 @@ function makeFlatEntry(segments, chain, meta, isWildcard) {
212
244
  meta,
213
245
  firstSegment: getFirstSegment(segments),
214
246
  hasSplat: segments.some(s => s.isSplat),
215
- isWildcard
247
+ isWildcard,
248
+ hasOptional,
249
+ minSegments: minSegs
216
250
  };
217
251
  }
218
252
  /**
@@ -304,22 +338,31 @@ function captureSplat(pathParts, from, pathLen) {
304
338
  }
305
339
  return remaining.join("/");
306
340
  }
341
+ /** Check whether a flattened route's segment count is compatible with the path length */
342
+ function isSegmentCountCompatible(f, pathLen) {
343
+ if (f.segmentCount === pathLen) return true;
344
+ if (f.hasSplat && pathLen >= f.segmentCount) return true;
345
+ if (f.hasOptional && pathLen >= f.minSegments && pathLen <= f.segmentCount) return true;
346
+ return false;
347
+ }
307
348
  /** Try to match a flattened route against path parts */
308
349
  function matchFlattened(f, pathParts, pathLen) {
309
- if (f.segmentCount !== pathLen) {
310
- if (!f.hasSplat || pathLen < f.segmentCount) return null;
311
- }
350
+ if (!isSegmentCountCompatible(f, pathLen)) return null;
312
351
  const params = {};
313
352
  const segments = f.segments;
314
353
  const count = f.segmentCount;
315
354
  for (let i = 0; i < count; i++) {
316
355
  const seg = segments[i];
317
356
  const pt = pathParts[i];
318
- if (!seg || pt === void 0) return null;
357
+ if (!seg) return null;
319
358
  if (seg.isSplat) {
320
359
  params[seg.paramName] = captureSplat(pathParts, i, pathLen);
321
360
  return params;
322
361
  }
362
+ if (pt === void 0) {
363
+ if (!seg.isOptional) return null;
364
+ continue;
365
+ }
323
366
  if (seg.isParam) params[seg.paramName] = decodeSafe(pt);else if (seg.raw !== pt) return null;
324
367
  }
325
368
  return params;
@@ -411,7 +454,11 @@ function mergeMeta(matched) {
411
454
  }
412
455
  /** Build a path string from a named route's pattern and params */
413
456
  function buildPath(pattern, params) {
414
- return pattern.replace(/:([^/]+)\*?/g, (match, key) => {
457
+ return pattern.replace(/\/:([^/]+)\?/g, (_match, key) => {
458
+ const val = params[key];
459
+ if (!val) return "";
460
+ return `/${encodeURIComponent(val)}`;
461
+ }).replace(/:([^/]+)\*?/g, (match, key) => {
415
462
  const val = params[key] ?? "";
416
463
  if (match.endsWith("*")) return val.split("/").map(encodeURIComponent).join("/");
417
464
  return encodeURIComponent(val);
@@ -486,6 +533,113 @@ function useRoute() {
486
533
  if (!router) throw new Error("[pyreon-router] No router installed. Wrap your app in <RouterProvider router={router}>.");
487
534
  return router.currentRoute;
488
535
  }
536
+ /**
537
+ * In-component guard: called before the component's route is left.
538
+ * Return `false` to cancel, a string to redirect, or `undefined`/`true` to proceed.
539
+ * Automatically removed on component unmount.
540
+ *
541
+ * @example
542
+ * onBeforeRouteLeave((to, from) => {
543
+ * if (hasUnsavedChanges()) return false
544
+ * })
545
+ */
546
+ function onBeforeRouteLeave(guard) {
547
+ const router = useContext(RouterContext) ?? _activeRouter;
548
+ if (!router) throw new Error("[pyreon-router] No router installed. Wrap your app in <RouterProvider router={router}>.");
549
+ const currentMatched = router.currentRoute().matched;
550
+ const wrappedGuard = (to, from) => {
551
+ if (!from.matched.some(r => currentMatched.includes(r))) return void 0;
552
+ return guard(to, from);
553
+ };
554
+ const remove = router.beforeEach(wrappedGuard);
555
+ onUnmount(() => remove());
556
+ return remove;
557
+ }
558
+ /**
559
+ * In-component guard: called when the route changes but the component is reused
560
+ * (e.g. `/user/1` → `/user/2`). Useful for reacting to param changes.
561
+ * Automatically removed on component unmount.
562
+ *
563
+ * @example
564
+ * onBeforeRouteUpdate((to, from) => {
565
+ * if (!isValidId(to.params.id)) return false
566
+ * })
567
+ */
568
+ function onBeforeRouteUpdate(guard) {
569
+ const router = useContext(RouterContext) ?? _activeRouter;
570
+ if (!router) throw new Error("[pyreon-router] No router installed. Wrap your app in <RouterProvider router={router}>.");
571
+ const currentMatched = router.currentRoute().matched;
572
+ const wrappedGuard = (to, from) => {
573
+ if (!to.matched.some(r => currentMatched.includes(r))) return void 0;
574
+ return guard(to, from);
575
+ };
576
+ const remove = router.beforeEach(wrappedGuard);
577
+ onUnmount(() => remove());
578
+ return remove;
579
+ }
580
+ /**
581
+ * Register a navigation blocker. The `fn` callback is called before each
582
+ * navigation — return `true` (or resolve to `true`) to block it.
583
+ *
584
+ * Automatically removed on component unmount if called during component setup.
585
+ * Also installs a `beforeunload` handler so the browser shows a confirmation
586
+ * dialog when the user tries to close the tab while a blocker is active.
587
+ *
588
+ * @example
589
+ * const blocker = useBlocker((to, from) => {
590
+ * return hasUnsavedChanges() && !confirm("Discard changes?")
591
+ * })
592
+ * // later: blocker.remove()
593
+ */
594
+ function useBlocker(fn) {
595
+ const router = useContext(RouterContext) ?? _activeRouter;
596
+ if (!router) throw new Error("[pyreon-router] No router installed. Wrap your app in <RouterProvider router={router}>.");
597
+ router._blockers.add(fn);
598
+ const beforeUnloadHandler = _isBrowser ? e => {
599
+ e.preventDefault();
600
+ } : null;
601
+ if (beforeUnloadHandler) window.addEventListener("beforeunload", beforeUnloadHandler);
602
+ const remove = () => {
603
+ router._blockers.delete(fn);
604
+ if (beforeUnloadHandler) window.removeEventListener("beforeunload", beforeUnloadHandler);
605
+ };
606
+ onUnmount(() => remove());
607
+ return {
608
+ remove
609
+ };
610
+ }
611
+ /**
612
+ * Reactive read/write access to the current route's query parameters.
613
+ *
614
+ * Returns `[get, set]` where `get` is a reactive signal producing the merged
615
+ * query object and `set` navigates to the current path with updated params.
616
+ *
617
+ * @example
618
+ * const [params, setParams] = useSearchParams({ page: "1", sort: "name" })
619
+ * params().page // "1" if not in URL
620
+ * setParams({ page: "2" }) // navigates to ?page=2&sort=name
621
+ */
622
+ function useSearchParams(defaults) {
623
+ const router = useContext(RouterContext) ?? _activeRouter;
624
+ if (!router) throw new Error("[pyreon-router] No router installed. Wrap your app in <RouterProvider router={router}>.");
625
+ const get = () => {
626
+ const query = router.currentRoute().query;
627
+ if (!defaults) return query;
628
+ return {
629
+ ...defaults,
630
+ ...query
631
+ };
632
+ };
633
+ const set = updates => {
634
+ const merged = {
635
+ ...get(),
636
+ ...updates
637
+ };
638
+ const path = router.currentRoute().path + stringifyQuery(merged);
639
+ return router.replace(path);
640
+ };
641
+ return [get, set];
642
+ }
489
643
  function createRouter(options) {
490
644
  const opts = Array.isArray(options) ? {
491
645
  routes: options
@@ -495,27 +649,29 @@ function createRouter(options) {
495
649
  mode = "hash",
496
650
  scrollBehavior,
497
651
  onError,
498
- maxCacheSize = 100
652
+ maxCacheSize = 100,
653
+ trailingSlash = "strip"
499
654
  } = opts;
655
+ const base = mode === "history" ? normalizeBase(opts.base ?? "") : "";
500
656
  const nameIndex = buildNameIndex(routes);
501
657
  const guards = [];
502
658
  const afterHooks = [];
503
659
  const scrollManager = new ScrollManager(scrollBehavior);
504
660
  let _navGen = 0;
505
661
  const getInitialLocation = () => {
506
- if (opts.url) return opts.url;
662
+ if (opts.url) return stripBase(opts.url, base);
507
663
  if (!_isBrowser) return "/";
508
- if (mode === "history") return window.location.pathname + window.location.search;
664
+ if (mode === "history") return stripBase(window.location.pathname, base) + window.location.search;
509
665
  const hash = window.location.hash;
510
666
  return hash.startsWith("#") ? hash.slice(1) || "/" : "/";
511
667
  };
512
668
  const getCurrentLocation = () => {
513
669
  if (!_isBrowser) return currentPath();
514
- if (mode === "history") return window.location.pathname + window.location.search;
670
+ if (mode === "history") return stripBase(window.location.pathname, base) + window.location.search;
515
671
  const hash = window.location.hash;
516
672
  return hash.startsWith("#") ? hash.slice(1) || "/" : "/";
517
673
  };
518
- const currentPath = signal(getInitialLocation());
674
+ const currentPath = signal(normalizeTrailingSlash(getInitialLocation(), trailingSlash));
519
675
  const currentRoute = computed(() => resolveRoute(currentPath(), routes));
520
676
  let _popstateHandler = null;
521
677
  let _hashchangeHandler = null;
@@ -581,7 +737,7 @@ function createRouter(options) {
581
737
  }
582
738
  function syncBrowserUrl(path, replace) {
583
739
  if (!_isBrowser) return;
584
- const url = mode === "history" ? path : `#${path}`;
740
+ const url = mode === "history" ? `${base}${path}` : `#${path}`;
585
741
  if (replace) window.history.replaceState(null, "", url);else window.history.pushState(null, "", url);
586
742
  }
587
743
  function resolveRedirect(to) {
@@ -596,27 +752,52 @@ function createRouter(options) {
596
752
  if (enterOutcome.action !== "continue") return enterOutcome;
597
753
  return runGlobalGuards(guards, to, from, gen);
598
754
  }
599
- async function runLoaders(to, gen, ac) {
600
- const loadableRecords = to.matched.filter(r => r.loader);
601
- if (loadableRecords.length === 0) return true;
755
+ async function runBlockingLoaders(records, to, gen, ac) {
602
756
  const loaderCtx = {
603
757
  params: to.params,
604
758
  query: to.query,
605
759
  signal: ac.signal
606
760
  };
607
- const results = await Promise.allSettled(loadableRecords.map(r => {
608
- if (!r.loader) return Promise.resolve(void 0);
609
- return r.loader(loaderCtx);
610
- }));
761
+ const results = await Promise.allSettled(records.map(r => r.loader ? r.loader(loaderCtx) : Promise.resolve(void 0)));
611
762
  if (gen !== _navGen) return false;
612
- for (let i = 0; i < loadableRecords.length; i++) {
763
+ for (let i = 0; i < records.length; i++) {
613
764
  const result = results[i];
614
- const record = loadableRecords[i];
765
+ const record = records[i];
615
766
  if (!result || !record) continue;
616
767
  if (!processLoaderResult(result, record, ac, to)) return false;
617
768
  }
618
769
  return true;
619
770
  }
771
+ /** Fire-and-forget background revalidation for stale-while-revalidate routes. */
772
+ function revalidateSwrLoaders(records, to, ac) {
773
+ const loaderCtx = {
774
+ params: to.params,
775
+ query: to.query,
776
+ signal: ac.signal
777
+ };
778
+ for (const r of records) {
779
+ if (!r.loader) continue;
780
+ r.loader(loaderCtx).then(data => {
781
+ if (!ac.signal.aborted) {
782
+ router._loaderData.set(r, data);
783
+ loadingSignal.update(n => n + 1);
784
+ loadingSignal.update(n => n - 1);
785
+ }
786
+ }).catch(() => {});
787
+ }
788
+ }
789
+ async function runLoaders(to, gen, ac) {
790
+ const loadableRecords = to.matched.filter(r => r.loader);
791
+ if (loadableRecords.length === 0) return true;
792
+ const blocking = [];
793
+ const swr = [];
794
+ for (const r of loadableRecords) if (r.staleWhileRevalidate && router._loaderData.has(r)) swr.push(r);else blocking.push(r);
795
+ if (blocking.length > 0) {
796
+ if (!(await runBlockingLoaders(blocking, to, gen, ac))) return false;
797
+ }
798
+ if (swr.length > 0) revalidateSwrLoaders(swr, to, ac);
799
+ return true;
800
+ }
620
801
  function commitNavigation(path, replace, to, from) {
621
802
  scrollManager.save(from.path);
622
803
  currentPath.set(path);
@@ -628,8 +809,16 @@ function createRouter(options) {
628
809
  } catch (_err) {}
629
810
  if (_isBrowser) queueMicrotask(() => scrollManager.restore(to, from));
630
811
  }
631
- async function navigate(path, replace, redirectDepth = 0) {
812
+ async function checkBlockers(to, from, gen) {
813
+ for (const blocker of router._blockers) {
814
+ const blocked = await blocker(to, from);
815
+ if (gen !== _navGen || blocked) return "cancel";
816
+ }
817
+ return "continue";
818
+ }
819
+ async function navigate(rawPath, replace, redirectDepth = 0) {
632
820
  if (redirectDepth > 10) return;
821
+ const path = normalizeTrailingSlash(rawPath, trailingSlash);
633
822
  const gen = ++_navGen;
634
823
  loadingSignal.update(n => n + 1);
635
824
  const to = resolveRoute(path, routes);
@@ -639,6 +828,10 @@ function createRouter(options) {
639
828
  loadingSignal.update(n => n - 1);
640
829
  return navigate(redirectTarget, replace, redirectDepth + 1);
641
830
  }
831
+ if ((await checkBlockers(to, from, gen)) !== "continue") {
832
+ loadingSignal.update(n => n - 1);
833
+ return;
834
+ }
642
835
  const guardOutcome = await runAllGuards(to, from, gen);
643
836
  if (guardOutcome.action !== "continue") {
644
837
  loadingSignal.update(n => n - 1);
@@ -655,9 +848,14 @@ function createRouter(options) {
655
848
  commitNavigation(path, replace, to, from);
656
849
  loadingSignal.update(n => n - 1);
657
850
  }
851
+ let _readyResolve = null;
852
+ const _readyPromise = new Promise(resolve => {
853
+ _readyResolve = resolve;
854
+ });
658
855
  const router = {
659
856
  routes,
660
857
  mode,
858
+ _base: base,
661
859
  currentRoute,
662
860
  _currentPath: currentPath,
663
861
  _currentRoute: currentRoute,
@@ -669,18 +867,28 @@ function createRouter(options) {
669
867
  _erroredChunks: /* @__PURE__ */new Set(),
670
868
  _loaderData: /* @__PURE__ */new Map(),
671
869
  _abortController: null,
870
+ _blockers: /* @__PURE__ */new Set(),
871
+ _readyResolve,
872
+ _readyPromise,
672
873
  _onError: onError,
673
874
  _maxCacheSize: maxCacheSize,
674
875
  async push(location) {
675
- if (typeof location === "string") return navigate(sanitizePath(location), false);
876
+ if (typeof location === "string") return navigate(sanitizePath(resolveRelativePath(location, currentPath())), false);
676
877
  return navigate(resolveNamedPath(location.name, location.params ?? {}, location.query ?? {}, nameIndex), false);
677
878
  },
678
- async replace(path) {
679
- return navigate(sanitizePath(path), true);
879
+ async replace(location) {
880
+ if (typeof location === "string") return navigate(sanitizePath(resolveRelativePath(location, currentPath())), true);
881
+ return navigate(resolveNamedPath(location.name, location.params ?? {}, location.query ?? {}, nameIndex), true);
680
882
  },
681
883
  back() {
682
884
  if (_isBrowser) window.history.back();
683
885
  },
886
+ forward() {
887
+ if (_isBrowser) window.history.forward();
888
+ },
889
+ go(delta) {
890
+ if (_isBrowser) window.history.go(delta);
891
+ },
684
892
  beforeEach(guard) {
685
893
  guards.push(guard);
686
894
  return () => {
@@ -696,6 +904,9 @@ function createRouter(options) {
696
904
  };
697
905
  },
698
906
  loading: () => loadingSignal() > 0,
907
+ isReady() {
908
+ return router._readyPromise;
909
+ },
699
910
  destroy() {
700
911
  if (_popstateHandler) {
701
912
  window.removeEventListener("popstate", _popstateHandler);
@@ -707,6 +918,7 @@ function createRouter(options) {
707
918
  }
708
919
  guards.length = 0;
709
920
  afterHooks.length = 0;
921
+ router._blockers.clear();
710
922
  componentCache.clear();
711
923
  router._loaderData.clear();
712
924
  router._abortController?.abort();
@@ -714,6 +926,12 @@ function createRouter(options) {
714
926
  },
715
927
  _resolve: rawPath => resolveRoute(rawPath, routes)
716
928
  };
929
+ queueMicrotask(() => {
930
+ if (router._readyResolve) {
931
+ router._readyResolve();
932
+ router._readyResolve = null;
933
+ }
934
+ });
717
935
  return router;
718
936
  }
719
937
  async function runGuard(guard, to, from) {
@@ -731,6 +949,44 @@ function resolveNamedPath(name, params, query, index) {
731
949
  if (qs) path += `?${qs}`;
732
950
  return path;
733
951
  }
952
+ /** Normalize a base path: ensure leading `/`, strip trailing `/`. */
953
+ function normalizeBase(raw) {
954
+ if (!raw) return "";
955
+ let b = raw;
956
+ if (!b.startsWith("/")) b = `/${b}`;
957
+ if (b.endsWith("/")) b = b.slice(0, -1);
958
+ return b;
959
+ }
960
+ /** Strip the base prefix from a full URL path. Returns the app-relative path. */
961
+ function stripBase(path, base) {
962
+ if (!base) return path;
963
+ if (path === base || path === `${base}/`) return "/";
964
+ if (path.startsWith(`${base}/`)) return path.slice(base.length);
965
+ return path;
966
+ }
967
+ /** Normalize trailing slash on a path according to the configured strategy. */
968
+ function normalizeTrailingSlash(path, strategy) {
969
+ if (strategy === "ignore" || path === "/") return path;
970
+ const qIdx = path.indexOf("?");
971
+ const hIdx = path.indexOf("#");
972
+ const endIdx = qIdx >= 0 ? qIdx : hIdx >= 0 ? hIdx : path.length;
973
+ const pathPart = path.slice(0, endIdx);
974
+ const suffix = path.slice(endIdx);
975
+ if (strategy === "strip") return pathPart.length > 1 && pathPart.endsWith("/") ? pathPart.slice(0, -1) + suffix : path;
976
+ return !pathPart.endsWith("/") ? `${pathPart}/${suffix}` : path;
977
+ }
978
+ /**
979
+ * Resolve a relative path (starting with `.` or `..`) against the current path.
980
+ * Non-relative paths are returned as-is.
981
+ */
982
+ function resolveRelativePath(to, from) {
983
+ if (!to.startsWith("./") && !to.startsWith("../") && to !== "." && to !== "..") return to;
984
+ const fromSegments = from.split("/").filter(Boolean);
985
+ fromSegments.pop();
986
+ const toSegments = to.split("/").filter(Boolean);
987
+ for (const seg of toSegments) if (seg === "..") fromSegments.pop();else if (seg !== ".") fromSegments.push(seg);
988
+ return `/${fromSegments.join("/")}`;
989
+ }
734
990
  /** Block unsafe navigation targets: javascript/data/vbscript URIs and absolute URLs. */
735
991
  function sanitizePath(path) {
736
992
  const trimmed = path.trim();
@@ -830,5 +1086,5 @@ function isStaleChunk(err) {
830
1086
  }
831
1087
 
832
1088
  //#endregion
833
- export { RouterContext, RouterLink, RouterProvider, RouterView, buildPath, createRouter, findRouteByName, hydrateLoaderData, lazy, parseQuery, parseQueryMulti, prefetchLoaderData, resolveRoute, serializeLoaderData, stringifyQuery, useLoaderData, useRoute, useRouter };
1089
+ export { RouterContext, RouterLink, RouterProvider, RouterView, buildPath, createRouter, findRouteByName, hydrateLoaderData, lazy, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, parseQueryMulti, prefetchLoaderData, resolveRoute, serializeLoaderData, stringifyQuery, useBlocker, useLoaderData, useRoute, useRouter, useSearchParams };
834
1090
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/loader.ts","../../src/match.ts","../../src/scroll.ts","../../src/types.ts","../../src/router.ts","../../src/components.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/loader.ts","../../src/match.ts","../../src/scroll.ts","../../src/types.ts","../../src/router.ts","../../src/components.tsx"],"mappings":"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"}