@tanstack/react-router 1.97.14 → 1.97.16

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.
Files changed (69) hide show
  1. package/dist/cjs/Match.cjs +8 -24
  2. package/dist/cjs/Match.cjs.map +1 -1
  3. package/dist/cjs/Matches.cjs +1 -1
  4. package/dist/cjs/Matches.cjs.map +1 -1
  5. package/dist/cjs/RouterProvider.cjs.map +1 -1
  6. package/dist/cjs/RouterProvider.d.cts +0 -1
  7. package/dist/cjs/ScriptOnce.cjs +1 -8
  8. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  9. package/dist/cjs/ScriptOnce.d.cts +1 -1
  10. package/dist/cjs/Transitioner.cjs +1 -2
  11. package/dist/cjs/Transitioner.cjs.map +1 -1
  12. package/dist/cjs/awaited.cjs +1 -22
  13. package/dist/cjs/awaited.cjs.map +1 -1
  14. package/dist/cjs/index.cjs +2 -7
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/index.d.cts +4 -6
  17. package/dist/cjs/router.cjs +11 -129
  18. package/dist/cjs/router.cjs.map +1 -1
  19. package/dist/cjs/router.d.cts +33 -93
  20. package/dist/cjs/routerContext.cjs.map +1 -1
  21. package/dist/cjs/routerContext.d.cts +7 -2
  22. package/dist/cjs/serializer.d.cts +15 -0
  23. package/dist/esm/Match.js +9 -25
  24. package/dist/esm/Match.js.map +1 -1
  25. package/dist/esm/Matches.js +1 -1
  26. package/dist/esm/Matches.js.map +1 -1
  27. package/dist/esm/RouterProvider.d.ts +0 -1
  28. package/dist/esm/RouterProvider.js.map +1 -1
  29. package/dist/esm/ScriptOnce.d.ts +1 -1
  30. package/dist/esm/ScriptOnce.js +1 -8
  31. package/dist/esm/ScriptOnce.js.map +1 -1
  32. package/dist/esm/Transitioner.js +1 -2
  33. package/dist/esm/Transitioner.js.map +1 -1
  34. package/dist/esm/awaited.js +1 -22
  35. package/dist/esm/awaited.js.map +1 -1
  36. package/dist/esm/index.d.ts +4 -6
  37. package/dist/esm/index.js +1 -6
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/router.d.ts +33 -93
  40. package/dist/esm/router.js +11 -129
  41. package/dist/esm/router.js.map +1 -1
  42. package/dist/esm/routerContext.d.ts +7 -2
  43. package/dist/esm/routerContext.js.map +1 -1
  44. package/dist/esm/serializer.d.ts +15 -0
  45. package/package.json +1 -1
  46. package/src/Match.tsx +4 -29
  47. package/src/Matches.tsx +1 -1
  48. package/src/RouterProvider.tsx +3 -3
  49. package/src/ScriptOnce.tsx +0 -8
  50. package/src/Transitioner.tsx +1 -1
  51. package/src/awaited.tsx +3 -25
  52. package/src/index.tsx +12 -34
  53. package/src/router.ts +44 -271
  54. package/src/routerContext.tsx +7 -1
  55. package/src/serializer.ts +24 -0
  56. package/dist/cjs/isServerSideError.cjs +0 -22
  57. package/dist/cjs/isServerSideError.cjs.map +0 -1
  58. package/dist/cjs/isServerSideError.d.cts +0 -5
  59. package/dist/cjs/transformer.cjs +0 -137
  60. package/dist/cjs/transformer.cjs.map +0 -1
  61. package/dist/cjs/transformer.d.cts +0 -16
  62. package/dist/esm/isServerSideError.d.ts +0 -5
  63. package/dist/esm/isServerSideError.js +0 -22
  64. package/dist/esm/isServerSideError.js.map +0 -1
  65. package/dist/esm/transformer.d.ts +0 -16
  66. package/dist/esm/transformer.js +0 -137
  67. package/dist/esm/transformer.js.map +0 -1
  68. package/src/isServerSideError.tsx +0 -23
  69. package/src/transformer.ts +0 -192
@@ -3,15 +3,12 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const history = require("@tanstack/history");
4
4
  const reactStore = require("@tanstack/react-store");
5
5
  const invariant = require("tiny-invariant");
6
- const warning = require("tiny-warning");
7
- const jsesc = require("jsesc");
8
6
  const root = require("./root.cjs");
9
7
  const searchParams = require("./searchParams.cjs");
10
8
  const utils = require("./utils.cjs");
11
9
  const path = require("./path.cjs");
12
10
  const redirects = require("./redirects.cjs");
13
11
  const notFound = require("./not-found.cjs");
14
- const transformer = require("./transformer.cjs");
15
12
  const componentTypes = [
16
13
  "component",
17
14
  "errorComponent",
@@ -376,7 +373,7 @@ class Router {
376
373
  }) ?? {}
377
374
  };
378
375
  }
379
- } catch (e) {
376
+ } catch {
380
377
  }
381
378
  });
382
379
  search = validatedSearch;
@@ -425,7 +422,7 @@ class Router {
425
422
  ) ?? {}
426
423
  };
427
424
  return validatedSearch;
428
- } catch (e) {
425
+ } catch {
429
426
  }
430
427
  };
431
428
  middlewares.push(validate);
@@ -966,17 +963,7 @@ class Router {
966
963
  cause: preload ? "preload" : cause,
967
964
  matches
968
965
  };
969
- let beforeLoadContext = await ((_c = (_b = route.options).beforeLoad) == null ? void 0 : _c.call(_b, beforeLoadFnContext)) ?? {};
970
- if (this.serializeLoaderData) {
971
- beforeLoadContext = this.serializeLoaderData(
972
- "__beforeLoadContext",
973
- beforeLoadContext,
974
- {
975
- router: this,
976
- match: this.getMatch(matchId)
977
- }
978
- );
979
- }
966
+ const beforeLoadContext = await ((_c = (_b = route.options).beforeLoad) == null ? void 0 : _c.call(_b, beforeLoadFnContext)) ?? {};
980
967
  if (redirects.isRedirect(beforeLoadContext) || notFound.isNotFound(beforeLoadContext)) {
981
968
  handleSerialError(index, beforeLoadContext, "BEFORE_LOAD");
982
969
  }
@@ -1056,7 +1043,7 @@ class Router {
1056
1043
  preload: !!preload && !this.state.matches.find((d) => d.id === matchId)
1057
1044
  }));
1058
1045
  const runLoader = async () => {
1059
- var _a2, _b2, _c2, _d, _e, _f, _g, _h;
1046
+ var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i;
1060
1047
  try {
1061
1048
  const potentialPendingMinPromise = async () => {
1062
1049
  const latestMatch = this.getMatch(matchId);
@@ -1070,17 +1057,7 @@ class Router {
1070
1057
  ...prev,
1071
1058
  isFetching: "loader"
1072
1059
  }));
1073
- let loaderData = await ((_b2 = (_a2 = route.options).loader) == null ? void 0 : _b2.call(_a2, getLoaderContext()));
1074
- if (this.serializeLoaderData) {
1075
- loaderData = this.serializeLoaderData(
1076
- "loaderData",
1077
- loaderData,
1078
- {
1079
- router: this,
1080
- match: this.getMatch(matchId)
1081
- }
1082
- );
1083
- }
1060
+ const loaderData = await ((_b2 = (_a2 = route.options).loader) == null ? void 0 : _b2.call(_a2, getLoaderContext()));
1084
1061
  handleRedirectAndNotFound(
1085
1062
  this.getMatch(matchId),
1086
1063
  loaderData
@@ -1131,6 +1108,10 @@ class Router {
1131
1108
  isFetching: false
1132
1109
  }));
1133
1110
  }
1111
+ (_i = this.serverSsr) == null ? void 0 : _i.onMatchSettled({
1112
+ router: this,
1113
+ match: this.getMatch(matchId)
1114
+ });
1134
1115
  await route._componentsPromise;
1135
1116
  } catch (err) {
1136
1117
  updateMatch(matchId, (prev) => ({
@@ -1371,104 +1352,6 @@ class Router {
1371
1352
  }
1372
1353
  return match;
1373
1354
  };
1374
- this.dehydrate = () => {
1375
- var _a;
1376
- const pickError = ((_a = this.options.errorSerializer) == null ? void 0 : _a.serialize) ?? defaultSerializeError;
1377
- return {
1378
- state: {
1379
- dehydratedMatches: this.state.matches.map((d) => {
1380
- return {
1381
- ...utils.pick(d, ["id", "status", "updatedAt"]),
1382
- // If an error occurs server-side during SSRing,
1383
- // send a small subset of the error to the client
1384
- error: d.error ? {
1385
- data: pickError(d.error),
1386
- __isServerError: true
1387
- } : void 0
1388
- // NOTE: We don't send the loader data here, because
1389
- // there is a potential that it needs to be streamed.
1390
- // Instead, we render it next to the route match in the HTML
1391
- // which gives us the potential to stream it via suspense.
1392
- };
1393
- })
1394
- },
1395
- manifest: this.manifest
1396
- };
1397
- };
1398
- this.hydrate = () => {
1399
- var _a, _b, _c;
1400
- let ctx;
1401
- if (typeof document !== "undefined") {
1402
- ctx = this.options.transformer.parse((_a = window.__TSR__) == null ? void 0 : _a.dehydrated);
1403
- }
1404
- invariant(
1405
- ctx,
1406
- "Expected to find a dehydrated data on window.__TSR__.dehydrated... but we did not. Please file an issue!"
1407
- );
1408
- this.dehydratedData = ctx.payload;
1409
- (_c = (_b = this.options).hydrate) == null ? void 0 : _c.call(_b, ctx.payload);
1410
- const dehydratedState = ctx.router.state;
1411
- const matches = this.matchRoutes(this.state.location).map((match) => {
1412
- const dehydratedMatch = dehydratedState.dehydratedMatches.find(
1413
- (d) => d.id === match.id
1414
- );
1415
- invariant(
1416
- dehydratedMatch,
1417
- `Could not find a client-side match for dehydrated match with id: ${match.id}!`
1418
- );
1419
- return {
1420
- ...match,
1421
- ...dehydratedMatch
1422
- };
1423
- });
1424
- this.__store.setState((s) => {
1425
- return {
1426
- ...s,
1427
- matches
1428
- };
1429
- });
1430
- this.manifest = ctx.router.manifest;
1431
- };
1432
- this.injectedHtml = [];
1433
- this.injectHtml = (html) => {
1434
- const cb = () => {
1435
- this.injectedHtml = this.injectedHtml.filter((d) => d !== cb);
1436
- return html;
1437
- };
1438
- this.injectedHtml.push(cb);
1439
- };
1440
- this.injectScript = (script, opts) => {
1441
- this.injectHtml(
1442
- `<script class='tsr-once'>${script}${process.env.NODE_ENV === "development" && ((opts == null ? void 0 : opts.logScript) ?? true) ? `; console.info(\`Injected From Server:
1443
- ${jsesc(script, { quotes: "backtick" })}\`)` : ""}; if (typeof __TSR__ !== 'undefined') __TSR__.cleanScripts()<\/script>`
1444
- );
1445
- };
1446
- this.streamedKeys = /* @__PURE__ */ new Set();
1447
- this.getStreamedValue = (key) => {
1448
- var _a;
1449
- if (this.isServer) {
1450
- return void 0;
1451
- }
1452
- const streamedValue = (_a = window.__TSR__) == null ? void 0 : _a.streamedValues[key];
1453
- if (!streamedValue) {
1454
- return;
1455
- }
1456
- if (!streamedValue.parsed) {
1457
- streamedValue.parsed = this.options.transformer.parse(streamedValue.value);
1458
- }
1459
- return streamedValue.parsed;
1460
- };
1461
- this.streamValue = (key, value) => {
1462
- var _a;
1463
- warning(
1464
- !this.streamedKeys.has(key),
1465
- "Key has already been streamed: " + key
1466
- );
1467
- this.streamedKeys.add(key);
1468
- this.injectScript(
1469
- `__TSR__.streamedValues['${key}'] = { value: ${(_a = this.serializer) == null ? void 0 : _a.call(this, this.options.transformer.stringify(value))}}`
1470
- );
1471
- };
1472
1355
  this._handleNotFound = (matches, err, {
1473
1356
  updateMatch = this.updateMatch
1474
1357
  } = {}) => {
@@ -1512,11 +1395,10 @@ ${jsesc(script, { quotes: "backtick" })}\`)` : ""}; if (typeof __TSR__ !== 'unde
1512
1395
  caseSensitive: options.caseSensitive ?? false,
1513
1396
  notFoundMode: options.notFoundMode ?? "fuzzy",
1514
1397
  stringifySearch: options.stringifySearch ?? searchParams.defaultStringifySearch,
1515
- parseSearch: options.parseSearch ?? searchParams.defaultParseSearch,
1516
- transformer: options.transformer ?? transformer.defaultTransformer
1398
+ parseSearch: options.parseSearch ?? searchParams.defaultParseSearch
1517
1399
  });
1518
1400
  if (typeof document !== "undefined") {
1519
- window.__TSR__ROUTER__ = this;
1401
+ window.__TSR_ROUTER__ = this;
1520
1402
  }
1521
1403
  }
1522
1404
  get state() {