@tanstack/react-start-client 1.132.0-alpha.9 → 1.132.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.
@@ -1,4 +1 @@
1
- import { AnyRouter } from '@tanstack/router-core';
2
- export declare function StartClient(props: {
3
- router: AnyRouter;
4
- }): import("react/jsx-runtime").JSX.Element;
1
+ export declare function StartClient(): import("react/jsx-runtime").JSX.Element;
@@ -1,20 +1,16 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Await, RouterProvider } from "@tanstack/react-router";
3
- import { hydrate } from "@tanstack/start-client-core";
3
+ import { hydrateStart } from "@tanstack/start-client-core/client";
4
4
  let hydrationPromise;
5
- function StartClient(props) {
5
+ function StartClient() {
6
6
  if (!hydrationPromise) {
7
- if (!props.router.state.matches.length) {
8
- hydrationPromise = hydrate(props.router);
9
- } else {
10
- hydrationPromise = Promise.resolve();
11
- }
7
+ hydrationPromise = hydrateStart();
12
8
  }
13
9
  return /* @__PURE__ */ jsx(
14
10
  Await,
15
11
  {
16
12
  promise: hydrationPromise,
17
- children: () => /* @__PURE__ */ jsx(RouterProvider, { router: props.router })
13
+ children: (router) => /* @__PURE__ */ jsx(RouterProvider, { router })
18
14
  }
19
15
  );
20
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StartClient.js","sources":["../../src/StartClient.tsx"],"sourcesContent":["import { Await, RouterProvider } from '@tanstack/react-router'\nimport { hydrate } from '@tanstack/start-client-core'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nlet hydrationPromise: Promise<void | Array<Array<void>>> | undefined\n\nexport function StartClient(props: { router: AnyRouter }) {\n if (!hydrationPromise) {\n if (!props.router.state.matches.length) {\n hydrationPromise = hydrate(props.router)\n } else {\n hydrationPromise = Promise.resolve()\n }\n }\n return (\n <Await\n promise={hydrationPromise}\n children={() => <RouterProvider router={props.router} />}\n />\n )\n}\n"],"names":[],"mappings":";;;AAIA,IAAI;AAEG,SAAS,YAAY,OAA8B;AACxD,MAAI,CAAC,kBAAkB;AACrB,QAAI,CAAC,MAAM,OAAO,MAAM,QAAQ,QAAQ;AACtC,yBAAmB,QAAQ,MAAM,MAAM;AAAA,IACzC,OAAO;AACL,yBAAmB,QAAQ,QAAA;AAAA,IAC7B;AAAA,EACF;AACA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,UAAU,MAAM,oBAAC,gBAAA,EAAe,QAAQ,MAAM,OAAA,CAAQ;AAAA,IAAA;AAAA,EAAA;AAG5D;"}
1
+ {"version":3,"file":"StartClient.js","sources":["../../src/StartClient.tsx"],"sourcesContent":["import { Await, RouterProvider } from '@tanstack/react-router'\n\nimport { hydrateStart } from '@tanstack/start-client-core/client'\n\nimport type { AnyRouter } from '@tanstack/router-core'\n\nlet hydrationPromise: Promise<AnyRouter> | undefined\nexport function StartClient() {\n if (!hydrationPromise) {\n hydrationPromise = hydrateStart()\n }\n\n return (\n <Await\n promise={hydrationPromise}\n children={(router) => <RouterProvider router={router} />}\n />\n )\n}\n"],"names":[],"mappings":";;;AAMA,IAAI;AACG,SAAS,cAAc;AAC5B,MAAI,CAAC,kBAAkB;AACrB,uBAAmB,aAAA;AAAA,EACrB;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,UAAU,CAAC,WAAW,oBAAC,kBAAe,OAAA,CAAgB;AAAA,IAAA;AAAA,EAAA;AAG5D;"}
@@ -1,5 +1,3 @@
1
- export { mergeHeaders, createIsomorphicFn, createServerFn, createMiddleware, registerGlobalMiddleware, globalMiddleware, createServerOnlyFn, createClientOnlyFn, json, createClientRpc, } from '@tanstack/start-client-core';
2
- export { type DehydratedRouter, type IsomorphicFn, type ServerOnlyFn, type ClientOnlyFn, type IsomorphicFnBase, type CompiledFetcherFnOptions, type CompiledFetcherFn, type Fetcher, type OptionalFetcher, type RequiredFetcher, type RscStream, type FetcherData, type FetcherBaseOptions, type ServerFn, type ServerFnCtx, type ServerFnResponseType, type JsonResponse, type IntersectAllValidatorInputs, type IntersectAllValidatorOutputs, type FunctionMiddlewareServerFn, type AnyFunctionMiddleware, type FunctionMiddlewareOptions, type FunctionMiddlewareWithTypes, type FunctionMiddlewareValidator, type FunctionMiddlewareServer, type FunctionMiddlewareAfterClient, type FunctionMiddlewareAfterServer, type FunctionMiddleware, type FunctionMiddlewareClientFnOptions, type FunctionMiddlewareClientFnResult, type FunctionMiddlewareClientNextFn, type FunctionClientResultWithContext, type AssignAllClientContextBeforeNext, type AssignAllMiddleware, type AssignAllServerContext, type FunctionMiddlewareAfterValidator, type FunctionMiddlewareClientFn, type FunctionMiddlewareServerFnResult, type FunctionMiddlewareClient, type FunctionMiddlewareServerFnOptions, type FunctionMiddlewareServerNextFn, type FunctionServerResultWithContext, } from '@tanstack/start-client-core';
3
1
  export { StartClient } from './StartClient.js';
4
2
  export { renderRsc } from './renderRSC.js';
5
- export { useServerFn } from './useServerFn.js';
3
+ export { createClientRpc } from '@tanstack/start-client-core/client';
package/dist/esm/index.js CHANGED
@@ -1,20 +1,9 @@
1
- import { createClientOnlyFn, createClientRpc, createIsomorphicFn, createMiddleware, createServerFn, createServerOnlyFn, globalMiddleware, json, mergeHeaders, registerGlobalMiddleware } from "@tanstack/start-client-core";
2
1
  import { StartClient } from "./StartClient.js";
3
2
  import { renderRsc } from "./renderRSC.js";
4
- import { useServerFn } from "./useServerFn.js";
3
+ import { createClientRpc } from "@tanstack/start-client-core/client";
5
4
  export {
6
5
  StartClient,
7
- createClientOnlyFn,
8
6
  createClientRpc,
9
- createIsomorphicFn,
10
- createMiddleware,
11
- createServerFn,
12
- createServerOnlyFn,
13
- globalMiddleware,
14
- json,
15
- mergeHeaders,
16
- registerGlobalMiddleware,
17
- renderRsc,
18
- useServerFn
7
+ renderRsc
19
8
  };
20
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-start-client",
3
- "version": "1.132.0-alpha.9",
3
+ "version": "1.132.0",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -40,15 +40,15 @@
40
40
  "src"
41
41
  ],
42
42
  "engines": {
43
- "node": ">=12"
43
+ "node": ">=22.12.0"
44
44
  },
45
45
  "dependencies": {
46
46
  "cookie-es": "^1.2.2",
47
47
  "tiny-invariant": "^1.3.3",
48
48
  "tiny-warning": "^1.0.3",
49
- "@tanstack/react-router": "1.132.0-alpha.8",
50
- "@tanstack/router-core": "1.132.0-alpha.8",
51
- "@tanstack/start-client-core": "1.132.0-alpha.9"
49
+ "@tanstack/router-core": "1.132.0",
50
+ "@tanstack/start-client-core": "1.132.0",
51
+ "@tanstack/react-router": "1.132.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@testing-library/react": "^16.2.0",
@@ -1,21 +1,19 @@
1
1
  import { Await, RouterProvider } from '@tanstack/react-router'
2
- import { hydrate } from '@tanstack/start-client-core'
3
- import type { AnyRouter } from '@tanstack/router-core'
4
2
 
5
- let hydrationPromise: Promise<void | Array<Array<void>>> | undefined
3
+ import { hydrateStart } from '@tanstack/start-client-core/client'
4
+
5
+ import type { AnyRouter } from '@tanstack/router-core'
6
6
 
7
- export function StartClient(props: { router: AnyRouter }) {
7
+ let hydrationPromise: Promise<AnyRouter> | undefined
8
+ export function StartClient() {
8
9
  if (!hydrationPromise) {
9
- if (!props.router.state.matches.length) {
10
- hydrationPromise = hydrate(props.router)
11
- } else {
12
- hydrationPromise = Promise.resolve()
13
- }
10
+ hydrationPromise = hydrateStart()
14
11
  }
12
+
15
13
  return (
16
14
  <Await
17
15
  promise={hydrationPromise}
18
- children={() => <RouterProvider router={props.router} />}
16
+ children={(router) => <RouterProvider router={router} />}
19
17
  />
20
18
  )
21
19
  }
package/src/index.tsx CHANGED
@@ -1,59 +1,3 @@
1
- export {
2
- mergeHeaders,
3
- createIsomorphicFn,
4
- createServerFn,
5
- createMiddleware,
6
- registerGlobalMiddleware,
7
- globalMiddleware,
8
- createServerOnlyFn,
9
- createClientOnlyFn,
10
- json,
11
- createClientRpc,
12
- } from '@tanstack/start-client-core'
13
- export {
14
- type DehydratedRouter,
15
- type IsomorphicFn,
16
- type ServerOnlyFn,
17
- type ClientOnlyFn,
18
- type IsomorphicFnBase,
19
- type CompiledFetcherFnOptions,
20
- type CompiledFetcherFn,
21
- type Fetcher,
22
- type OptionalFetcher,
23
- type RequiredFetcher,
24
- type RscStream,
25
- type FetcherData,
26
- type FetcherBaseOptions,
27
- type ServerFn,
28
- type ServerFnCtx,
29
- type ServerFnResponseType,
30
- type JsonResponse,
31
- type IntersectAllValidatorInputs,
32
- type IntersectAllValidatorOutputs,
33
- type FunctionMiddlewareServerFn,
34
- type AnyFunctionMiddleware,
35
- type FunctionMiddlewareOptions,
36
- type FunctionMiddlewareWithTypes,
37
- type FunctionMiddlewareValidator,
38
- type FunctionMiddlewareServer,
39
- type FunctionMiddlewareAfterClient,
40
- type FunctionMiddlewareAfterServer,
41
- type FunctionMiddleware,
42
- type FunctionMiddlewareClientFnOptions,
43
- type FunctionMiddlewareClientFnResult,
44
- type FunctionMiddlewareClientNextFn,
45
- type FunctionClientResultWithContext,
46
- type AssignAllClientContextBeforeNext,
47
- type AssignAllMiddleware,
48
- type AssignAllServerContext,
49
- type FunctionMiddlewareAfterValidator,
50
- type FunctionMiddlewareClientFn,
51
- type FunctionMiddlewareServerFnResult,
52
- type FunctionMiddlewareClient,
53
- type FunctionMiddlewareServerFnOptions,
54
- type FunctionMiddlewareServerNextFn,
55
- type FunctionServerResultWithContext,
56
- } from '@tanstack/start-client-core'
57
1
  export { StartClient } from './StartClient'
58
2
  export { renderRsc } from './renderRSC'
59
- export { useServerFn } from './useServerFn'
3
+ export { createClientRpc } from '@tanstack/start-client-core/client'
@@ -1,7 +1,7 @@
1
1
  import { expectTypeOf, test } from 'vitest'
2
2
  import { createServerFn } from '@tanstack/start-client-core'
3
3
 
4
- test('createServerFn returns RSC', () => {
4
+ test.skip('createServerFn returns RSC', () => {
5
5
  const fn = createServerFn().handler(() => ({
6
6
  rscs: [
7
7
  <div key="0">I'm an RSC</div>,
@@ -1 +0,0 @@
1
- export declare function useServerFn<T extends (...deps: Array<any>) => Promise<any>>(serverFn: T): (...args: Parameters<T>) => ReturnType<T>;
@@ -1,28 +0,0 @@
1
- import * as React from "react";
2
- import { isRedirect } from "@tanstack/router-core";
3
- import { useRouter } from "@tanstack/react-router";
4
- function useServerFn(serverFn) {
5
- const router = useRouter();
6
- return React.useCallback(
7
- async (...args) => {
8
- try {
9
- const res = await serverFn(...args);
10
- if (isRedirect(res)) {
11
- throw res;
12
- }
13
- return res;
14
- } catch (err) {
15
- if (isRedirect(err)) {
16
- err.options._fromLocation = router.state.location;
17
- return router.navigate(router.resolveRedirect(err).options);
18
- }
19
- throw err;
20
- }
21
- },
22
- [router, serverFn]
23
- );
24
- }
25
- export {
26
- useServerFn
27
- };
28
- //# sourceMappingURL=useServerFn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useServerFn.js","sources":["../../src/useServerFn.ts"],"sourcesContent":["import * as React from 'react'\nimport { isRedirect } from '@tanstack/router-core'\nimport { useRouter } from '@tanstack/react-router'\n\nexport function useServerFn<T extends (...deps: Array<any>) => Promise<any>>(\n serverFn: T,\n): (...args: Parameters<T>) => ReturnType<T> {\n const router = useRouter()\n\n return React.useCallback(\n async (...args: Array<any>) => {\n try {\n const res = await serverFn(...args)\n\n if (isRedirect(res)) {\n throw res\n }\n\n return res\n } catch (err) {\n if (isRedirect(err)) {\n err.options._fromLocation = router.state.location\n return router.navigate(router.resolveRedirect(err).options)\n }\n\n throw err\n }\n },\n [router, serverFn],\n ) as any\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,YACd,UAC2C;AAC3C,QAAM,SAAS,UAAA;AAEf,SAAO,MAAM;AAAA,IACX,UAAU,SAAqB;AAC7B,UAAI;AACF,cAAM,MAAM,MAAM,SAAS,GAAG,IAAI;AAElC,YAAI,WAAW,GAAG,GAAG;AACnB,gBAAM;AAAA,QACR;AAEA,eAAO;AAAA,MACT,SAAS,KAAK;AACZ,YAAI,WAAW,GAAG,GAAG;AACnB,cAAI,QAAQ,gBAAgB,OAAO,MAAM;AACzC,iBAAO,OAAO,SAAS,OAAO,gBAAgB,GAAG,EAAE,OAAO;AAAA,QAC5D;AAEA,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,QAAQ;AAAA,EAAA;AAErB;"}
@@ -1,31 +0,0 @@
1
- import * as React from 'react'
2
- import { isRedirect } from '@tanstack/router-core'
3
- import { useRouter } from '@tanstack/react-router'
4
-
5
- export function useServerFn<T extends (...deps: Array<any>) => Promise<any>>(
6
- serverFn: T,
7
- ): (...args: Parameters<T>) => ReturnType<T> {
8
- const router = useRouter()
9
-
10
- return React.useCallback(
11
- async (...args: Array<any>) => {
12
- try {
13
- const res = await serverFn(...args)
14
-
15
- if (isRedirect(res)) {
16
- throw res
17
- }
18
-
19
- return res
20
- } catch (err) {
21
- if (isRedirect(err)) {
22
- err.options._fromLocation = router.state.location
23
- return router.navigate(router.resolveRedirect(err).options)
24
- }
25
-
26
- throw err
27
- }
28
- },
29
- [router, serverFn],
30
- ) as any
31
- }