@tanstack/start-client-core 1.114.4 → 1.114.5

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 (62) hide show
  1. package/dist/cjs/createIsomorphicFn.cjs +7 -0
  2. package/dist/cjs/createIsomorphicFn.cjs.map +1 -0
  3. package/dist/cjs/createIsomorphicFn.d.cts +12 -0
  4. package/dist/cjs/createMiddleware.cjs +34 -0
  5. package/dist/cjs/createMiddleware.cjs.map +1 -0
  6. package/dist/cjs/createMiddleware.d.cts +131 -0
  7. package/dist/cjs/createServerFn.cjs +227 -0
  8. package/dist/cjs/createServerFn.cjs.map +1 -0
  9. package/dist/cjs/createServerFn.d.cts +152 -0
  10. package/dist/cjs/envOnly.cjs +7 -0
  11. package/dist/cjs/envOnly.cjs.map +1 -0
  12. package/dist/cjs/envOnly.d.cts +4 -0
  13. package/dist/cjs/index.cjs +22 -0
  14. package/dist/cjs/index.cjs.map +1 -1
  15. package/dist/cjs/index.d.cts +8 -0
  16. package/dist/cjs/json.cjs +14 -0
  17. package/dist/cjs/json.cjs.map +1 -0
  18. package/dist/cjs/json.d.cts +2 -0
  19. package/dist/cjs/registerGlobalMiddleware.cjs +9 -0
  20. package/dist/cjs/registerGlobalMiddleware.cjs.map +1 -0
  21. package/dist/cjs/registerGlobalMiddleware.d.cts +5 -0
  22. package/dist/cjs/tests/createIsomorphicFn.test-d.d.cts +1 -0
  23. package/dist/cjs/tests/createServerMiddleware.test-d.d.cts +1 -0
  24. package/dist/cjs/tests/envOnly.test-d.d.cts +1 -0
  25. package/dist/cjs/tests/json.test.d.cts +1 -0
  26. package/dist/esm/createIsomorphicFn.d.ts +12 -0
  27. package/dist/esm/createIsomorphicFn.js +7 -0
  28. package/dist/esm/createIsomorphicFn.js.map +1 -0
  29. package/dist/esm/createMiddleware.d.ts +131 -0
  30. package/dist/esm/createMiddleware.js +34 -0
  31. package/dist/esm/createMiddleware.js.map +1 -0
  32. package/dist/esm/createServerFn.d.ts +152 -0
  33. package/dist/esm/createServerFn.js +206 -0
  34. package/dist/esm/createServerFn.js.map +1 -0
  35. package/dist/esm/envOnly.d.ts +4 -0
  36. package/dist/esm/envOnly.js +7 -0
  37. package/dist/esm/envOnly.js.map +1 -0
  38. package/dist/esm/index.d.ts +8 -0
  39. package/dist/esm/index.js +19 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/json.d.ts +2 -0
  42. package/dist/esm/json.js +14 -0
  43. package/dist/esm/json.js.map +1 -0
  44. package/dist/esm/registerGlobalMiddleware.d.ts +5 -0
  45. package/dist/esm/registerGlobalMiddleware.js +9 -0
  46. package/dist/esm/registerGlobalMiddleware.js.map +1 -0
  47. package/dist/esm/tests/createIsomorphicFn.test-d.d.ts +1 -0
  48. package/dist/esm/tests/createServerMiddleware.test-d.d.ts +1 -0
  49. package/dist/esm/tests/envOnly.test-d.d.ts +1 -0
  50. package/dist/esm/tests/json.test.d.ts +1 -0
  51. package/package.json +2 -1
  52. package/src/createIsomorphicFn.ts +36 -0
  53. package/src/createMiddleware.ts +595 -0
  54. package/src/createServerFn.ts +700 -0
  55. package/src/envOnly.ts +9 -0
  56. package/src/index.tsx +73 -0
  57. package/src/json.ts +15 -0
  58. package/src/registerGlobalMiddleware.ts +9 -0
  59. package/src/tests/createIsomorphicFn.test-d.ts +72 -0
  60. package/src/tests/createServerMiddleware.test-d.ts +611 -0
  61. package/src/tests/envOnly.test-d.ts +34 -0
  62. package/src/tests/json.test.ts +37 -0
package/src/index.tsx CHANGED
@@ -11,3 +11,76 @@ export {
11
11
  type ResolvePromiseState,
12
12
  hydrate,
13
13
  } from './ssr-client'
14
+ export {
15
+ createIsomorphicFn,
16
+ type IsomorphicFn,
17
+ type ServerOnlyFn,
18
+ type ClientOnlyFn,
19
+ type IsomorphicFnBase,
20
+ } from './createIsomorphicFn'
21
+ export { serverOnly, clientOnly } from './envOnly'
22
+ export { type JsonResponse } from './createServerFn'
23
+ export { json } from './json'
24
+ export {
25
+ createMiddleware,
26
+ type IntersectAllValidatorInputs,
27
+ type IntersectAllValidatorOutputs,
28
+ type MiddlewareServerFn,
29
+ type AnyMiddleware,
30
+ type MiddlewareOptions,
31
+ type MiddlewareWithTypes,
32
+ type MiddlewareValidator,
33
+ type MiddlewareServer,
34
+ type MiddlewareAfterClient,
35
+ type MiddlewareAfterMiddleware,
36
+ type MiddlewareAfterServer,
37
+ type Middleware,
38
+ type MiddlewareClientFnOptions,
39
+ type MiddlewareClientFnResult,
40
+ type MiddlewareClientNextFn,
41
+ type ClientResultWithContext,
42
+ type AssignAllClientContextBeforeNext,
43
+ type AssignAllMiddleware,
44
+ type AssignAllServerContext,
45
+ type MiddlewareAfterValidator,
46
+ type MiddlewareClientFn,
47
+ type MiddlewareServerFnResult,
48
+ type MiddlewareClient,
49
+ type MiddlewareServerFnOptions,
50
+ type MiddlewareServerNextFn,
51
+ type ServerResultWithContext,
52
+ } from './createMiddleware'
53
+ export {
54
+ registerGlobalMiddleware,
55
+ globalMiddleware,
56
+ } from './registerGlobalMiddleware'
57
+ export type {
58
+ ServerFn as FetchFn,
59
+ ServerFnCtx as FetchFnCtx,
60
+ CompiledFetcherFnOptions,
61
+ CompiledFetcherFn,
62
+ Fetcher,
63
+ RscStream,
64
+ FetcherData,
65
+ FetcherBaseOptions,
66
+ ServerFn,
67
+ ServerFnCtx,
68
+ ServerFnResponseType,
69
+ MiddlewareFn,
70
+ ServerFnMiddlewareOptions,
71
+ ServerFnMiddlewareResult,
72
+ ServerFnBuilder,
73
+ ServerFnType,
74
+ ServerFnBaseOptions,
75
+ NextFn,
76
+ Method,
77
+ StaticCachedResult,
78
+ } from './createServerFn'
79
+ export {
80
+ applyMiddleware,
81
+ execValidator,
82
+ serverFnBaseToMiddleware,
83
+ extractFormDataContext,
84
+ flattenMiddlewares,
85
+ serverFnStaticCache,
86
+ } from './createServerFn'
package/src/json.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { mergeHeaders } from './headers'
2
+ import type { JsonResponse } from './createServerFn'
3
+
4
+ export function json<TData>(
5
+ payload: TData,
6
+ init?: ResponseInit,
7
+ ): JsonResponse<TData> {
8
+ return new Response(JSON.stringify(payload), {
9
+ ...init,
10
+ headers: mergeHeaders(
11
+ { 'content-type': 'application/json' },
12
+ init?.headers,
13
+ ),
14
+ })
15
+ }
@@ -0,0 +1,9 @@
1
+ import type { AnyMiddleware } from './createMiddleware'
2
+
3
+ export const globalMiddleware: Array<AnyMiddleware> = []
4
+
5
+ export function registerGlobalMiddleware(options: {
6
+ middleware: Array<AnyMiddleware>
7
+ }) {
8
+ globalMiddleware.push(...options.middleware)
9
+ }
@@ -0,0 +1,72 @@
1
+ import { expectTypeOf, test } from 'vitest'
2
+ import { createIsomorphicFn } from '../createIsomorphicFn'
3
+
4
+ test('createIsomorphicFn with no implementations', () => {
5
+ const fn = createIsomorphicFn()
6
+
7
+ expectTypeOf(fn).toBeCallableWith()
8
+ expectTypeOf(fn).returns.toBeUndefined()
9
+
10
+ expectTypeOf(fn).toHaveProperty('server')
11
+ expectTypeOf(fn).toHaveProperty('client')
12
+ })
13
+
14
+ test('createIsomorphicFn with server implementation', () => {
15
+ const fn = createIsomorphicFn().server(() => 'data')
16
+
17
+ expectTypeOf(fn).toBeCallableWith()
18
+ expectTypeOf(fn).returns.toEqualTypeOf<string | undefined>()
19
+
20
+ expectTypeOf(fn).toHaveProperty('client')
21
+ expectTypeOf(fn).not.toHaveProperty('server')
22
+ })
23
+
24
+ test('createIsomorphicFn with client implementation', () => {
25
+ const fn = createIsomorphicFn().client(() => 'data')
26
+
27
+ expectTypeOf(fn).toBeCallableWith()
28
+ expectTypeOf(fn).returns.toEqualTypeOf<string | undefined>()
29
+
30
+ expectTypeOf(fn).toHaveProperty('server')
31
+ expectTypeOf(fn).not.toHaveProperty('client')
32
+ })
33
+
34
+ test('createIsomorphicFn with server and client implementation', () => {
35
+ const fn = createIsomorphicFn()
36
+ .server(() => 'data')
37
+ .client(() => 'data')
38
+
39
+ expectTypeOf(fn).toBeCallableWith()
40
+ expectTypeOf(fn).returns.toEqualTypeOf<string>()
41
+
42
+ expectTypeOf(fn).not.toHaveProperty('server')
43
+ expectTypeOf(fn).not.toHaveProperty('client')
44
+ })
45
+
46
+ test('createIsomorphicFn with varying returns', () => {
47
+ const fn = createIsomorphicFn()
48
+ .server(() => 'data')
49
+ .client(() => 1)
50
+ expectTypeOf(fn).toBeCallableWith()
51
+ expectTypeOf(fn).returns.toEqualTypeOf<string | number>()
52
+ })
53
+
54
+ test('createIsomorphicFn with arguments', () => {
55
+ const fn = createIsomorphicFn()
56
+ .server((a: number, b: string) => 'data')
57
+ .client((...args) => {
58
+ expectTypeOf(args).toEqualTypeOf<[number, string]>()
59
+ return 1
60
+ })
61
+ expectTypeOf(fn).toBeCallableWith(1, 'a')
62
+ expectTypeOf(fn).returns.toEqualTypeOf<string | number>()
63
+
64
+ const fn2 = createIsomorphicFn()
65
+ .client((a: number, b: string) => 'data')
66
+ .server((...args) => {
67
+ expectTypeOf(args).toEqualTypeOf<[number, string]>()
68
+ return 1
69
+ })
70
+ expectTypeOf(fn2).toBeCallableWith(1, 'a')
71
+ expectTypeOf(fn2).returns.toEqualTypeOf<string | number>()
72
+ })