@trpc/next 11.0.0-next-beta.248 → 11.0.0-next-beta.249

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,6 +1,7 @@
1
1
  import type { CreateTRPCClientOptions, TRPCLink } from '@trpc/client';
2
2
  import { TRPCClientError } from '@trpc/client';
3
- import type { AnyRouter, MaybePromise, ProcedureOptions, Simplify } from '@trpc/server/unstable-core-do-not-import';
3
+ import type { TransformerOptions } from '@trpc/client/unstable-internals';
4
+ import type { inferRootTypes, MaybePromise, ProcedureOptions, Simplify, TRPCInferrable, TypeError } from '@trpc/server/unstable-core-do-not-import';
4
5
  import type { TRPCActionHandler } from './server';
5
6
  import type { ActionHandlerDef } from './shared';
6
7
  type MutationArgs<TDef extends ActionHandlerDef> = TDef['input'] extends void ? [input?: undefined | void, opts?: ProcedureOptions] : [input: FormData | TDef['input'], opts?: ProcedureOptions];
@@ -29,11 +30,21 @@ interface UseTRPCActionLoadingResult<TDef extends ActionHandlerDef> extends UseT
29
30
  status: 'loading';
30
31
  }
31
32
  export type UseTRPCActionResult<TDef extends ActionHandlerDef> = UseTRPCActionErrorResult<TDef> | UseTRPCActionIdleResult<TDef> | UseTRPCActionLoadingResult<TDef> | UseTRPCActionSuccessResult<TDef>;
32
- export declare function experimental_serverActionLink<TRouter extends AnyRouter = AnyRouter>(): TRPCLink<TRouter>;
33
+ export declare function experimental_serverActionLink<TInferrable extends TRPCInferrable>(...args: TRPCInferrable extends TInferrable ? [
34
+ TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>
35
+ ] : inferRootTypes<TInferrable>['transformer'] extends true ? [
36
+ opts: TransformerOptions<{
37
+ transformer: true;
38
+ }>
39
+ ] : [
40
+ opts?: TransformerOptions<{
41
+ transformer: false;
42
+ }>
43
+ ]): TRPCLink<TInferrable>;
33
44
  interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
34
45
  onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
35
46
  onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
36
47
  }
37
- export declare function experimental_createActionHook<TRouter extends AnyRouter>(opts: CreateTRPCClientOptions<TRouter>): <TDef extends ActionHandlerDef>(handler: TRPCActionHandler<TDef>, useActionOpts?: UseTRPCActionOptions<Simplify<TDef>> | undefined) => UseTRPCActionResult<TDef>;
48
+ export declare function experimental_createActionHook<TInferrable extends TRPCInferrable>(opts: TRPCInferrable extends TInferrable ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'> : CreateTRPCClientOptions<TInferrable>): <TDef extends ActionHandlerDef>(handler: TRPCActionHandler<TDef>, useActionOpts?: UseTRPCActionOptions<Simplify<TDef>> | undefined) => UseTRPCActionResult<TDef>;
38
49
  export {};
39
50
  //# sourceMappingURL=create-action-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-action-hook.d.ts","sourceRoot":"","sources":["../../src/app-dir/create-action-hook.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,QAAQ,EAET,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2B,eAAe,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACT,MAAM,0CAA0C,CAAC;AAGlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD,KAAK,YAAY,CAAC,IAAI,SAAS,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,GACzE,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,GACnD,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAE/D,UAAU,uBAAuB,CAAC,IAAI,SAAS,gBAAgB;IAC7D,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;CACvE;AAED,UAAU,0BAA0B,CAAC,IAAI,SAAS,gBAAgB,CAChE,SAAQ,uBAAuB,CAAC,IAAI,CAAC;IACrC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,UAAU,wBAAwB,CAAC,IAAI,SAAS,gBAAgB,CAC9D,SAAQ,uBAAuB,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,uBAAuB,CAAC,IAAI,SAAS,gBAAgB,CAC7D,SAAQ,uBAAuB,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,0BAA0B,CAAC,IAAI,SAAS,gBAAgB,CAChE,SAAQ,uBAAuB,CAAC,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;CACnB;AAGD,MAAM,MAAM,mBAAmB,CAAC,IAAI,SAAS,gBAAgB,IACzD,wBAAwB,CAAC,IAAI,CAAC,GAC9B,uBAAuB,CAAC,IAAI,CAAC,GAC7B,0BAA0B,CAAC,IAAI,CAAC,GAChC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAOrC,wBAAgB,6BAA6B,CAC3C,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,CA6BrB;AAED,UAAU,oBAAoB,CAAC,IAAI,SAAS,gBAAgB;IAC1D,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/E;AAGD,wBAAgB,6BAA6B,CAAC,OAAO,SAAS,SAAS,EACrE,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,oKA6FvC"}
1
+ {"version":3,"file":"create-action-hook.d.ts","sourceRoot":"","sources":["../../src/app-dir/create-action-hook.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  var client = require('@trpc/client');
4
+ var unstableInternals = require('@trpc/client/unstable-internals');
4
5
  var observable = require('@trpc/server/observable');
5
6
  var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
6
7
  var React = require('react');
7
8
  var shared = require('./shared.js');
8
9
 
9
10
  // ts-prune-ignore-next
10
- function experimental_serverActionLink() {
11
- return (runtime)=>({ op })=>observable.observable((observer)=>{
11
+ function experimental_serverActionLink(...args) {
12
+ const [opts] = args;
13
+ const transformer = unstableInternals.getTransformer(opts?.transformer);
14
+ return ()=>({ op })=>observable.observable((observer)=>{
12
15
  const context = op.context;
13
- context._action(shared.isFormData(op.input) ? op.input : runtime.transformer.serialize(op.input)).then((data)=>{
14
- const transformed = unstableCoreDoNotImport.transformResult(data, runtime.transformer);
16
+ context._action(shared.isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data)=>{
17
+ const transformed = unstableCoreDoNotImport.transformResult(data, transformer.output);
15
18
  if (!transformed.ok) {
16
19
  observer.error(client.TRPCClientError.from(transformed.error, {}));
17
20
  return;
@@ -1,15 +1,18 @@
1
1
  import { TRPCClientError, createTRPCUntypedClient } from '@trpc/client';
2
+ import { getTransformer } from '@trpc/client/unstable-internals';
2
3
  import { observable } from '@trpc/server/observable';
3
4
  import { transformResult } from '@trpc/server/unstable-core-do-not-import';
4
5
  import { useRef, useState, useEffect, useCallback, useMemo } from 'react';
5
6
  import { isFormData } from './shared.mjs';
6
7
 
7
8
  // ts-prune-ignore-next
8
- function experimental_serverActionLink() {
9
- return (runtime)=>({ op })=>observable((observer)=>{
9
+ function experimental_serverActionLink(...args) {
10
+ const [opts] = args;
11
+ const transformer = getTransformer(opts?.transformer);
12
+ return ()=>({ op })=>observable((observer)=>{
10
13
  const context = op.context;
11
- context._action(isFormData(op.input) ? op.input : runtime.transformer.serialize(op.input)).then((data)=>{
12
- const transformed = transformResult(data, runtime.transformer);
14
+ context._action(isFormData(op.input) ? op.input : transformer.input.serialize(op.input)).then((data)=>{
15
+ const transformed = transformResult(data, transformer.output);
13
16
  if (!transformed.ok) {
14
17
  observer.error(TRPCClientError.from(transformed.error, {}));
15
18
  return;
@@ -1,11 +1,12 @@
1
1
  import type { TRPCLink } from '@trpc/client';
2
- import type { AnyRouter, inferRouterContext } from '@trpc/server/unstable-core-do-not-import';
2
+ import { type TransformerOptions } from '@trpc/client/unstable-internals';
3
+ import type { AnyRouter, inferRootTypes, inferRouterContext } from '@trpc/server/unstable-core-do-not-import';
3
4
  type NextCacheLinkOptions<TRouter extends AnyRouter> = {
4
5
  router: TRouter;
5
6
  createContext: () => Promise<inferRouterContext<TRouter>>;
6
7
  /** how many seconds the cache should hold before revalidating */
7
8
  revalidate?: number | false;
8
- };
9
+ } & TransformerOptions<inferRootTypes<TRouter>>;
9
10
  export declare function experimental_nextCacheLink<TRouter extends AnyRouter>(opts: NextCacheLinkOptions<TRouter>): TRPCLink<TRouter>;
10
11
  export {};
11
12
  //# sourceMappingURL=nextCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nextCache.d.ts","sourceRoot":"","sources":["../../../src/app-dir/links/nextCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,0CAA0C,CAAC;AAKlD,KAAK,oBAAoB,CAAC,OAAO,SAAS,SAAS,IAAI;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC7B,CAAC;AAGF,wBAAgB,0BAA0B,CAAC,OAAO,SAAS,SAAS,EAClE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAClC,QAAQ,CAAC,OAAO,CAAC,CAyDnB"}
1
+ {"version":3,"file":"nextCache.d.ts","sourceRoot":"","sources":["../../../src/app-dir/links/nextCache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EACnB,MAAM,0CAA0C,CAAC;AAKlD,KAAK,oBAAoB,CAAC,OAAO,SAAS,SAAS,IAAI;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAC7B,GAAG,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAGhD,wBAAgB,0BAA0B,CAAC,OAAO,SAAS,SAAS,EAClE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAClC,QAAQ,CAAC,OAAO,CAAC,CA0DnB"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var client = require('@trpc/client');
4
+ var unstableInternals = require('@trpc/client/unstable-internals');
4
5
  var observable = require('@trpc/server/observable');
5
6
  var unstableCoreDoNotImport = require('@trpc/server/unstable-core-do-not-import');
6
7
  var cache = require('next/cache');
@@ -9,7 +10,8 @@ var shared = require('../shared.js');
9
10
  // import "server-only";
10
11
  // ts-prune-ignore-next
11
12
  function experimental_nextCacheLink(opts) {
12
- return (runtime)=>({ op })=>observable.observable((observer)=>{
13
+ const transformer = unstableInternals.getTransformer(opts.transformer);
14
+ return ()=>({ op })=>observable.observable((observer)=>{
13
15
  const { path , input , type , context } = op;
14
16
  const cacheTag = shared.generateCacheTag(path, input);
15
17
  // Let per-request revalidate override global revalidate
@@ -28,7 +30,7 @@ function experimental_nextCacheLink(opts) {
28
30
  type
29
31
  });
30
32
  // We need to serialize cause the cache only accepts JSON
31
- return runtime.transformer.serialize(procedureResult);
33
+ return transformer.input.serialize(procedureResult);
32
34
  };
33
35
  if (type === 'query') {
34
36
  return cache.unstable_cache(callProc, path.split('.'), {
@@ -43,7 +45,7 @@ function experimental_nextCacheLink(opts) {
43
45
  observer.error(client.TRPCClientError.from(cause));
44
46
  });
45
47
  promise.then((data)=>{
46
- const transformedResult = runtime.transformer.deserialize(data);
48
+ const transformedResult = transformer.output.deserialize(data);
47
49
  observer.next({
48
50
  result: {
49
51
  data: transformedResult
@@ -1,4 +1,5 @@
1
1
  import { TRPCClientError } from '@trpc/client';
2
+ import { getTransformer } from '@trpc/client/unstable-internals';
2
3
  import { observable } from '@trpc/server/observable';
3
4
  import { callProcedure } from '@trpc/server/unstable-core-do-not-import';
4
5
  import { unstable_cache } from 'next/cache';
@@ -7,7 +8,8 @@ import { generateCacheTag } from '../shared.mjs';
7
8
  // import "server-only";
8
9
  // ts-prune-ignore-next
9
10
  function experimental_nextCacheLink(opts) {
10
- return (runtime)=>({ op })=>observable((observer)=>{
11
+ const transformer = getTransformer(opts.transformer);
12
+ return ()=>({ op })=>observable((observer)=>{
11
13
  const { path , input , type , context } = op;
12
14
  const cacheTag = generateCacheTag(path, input);
13
15
  // Let per-request revalidate override global revalidate
@@ -26,7 +28,7 @@ function experimental_nextCacheLink(opts) {
26
28
  type
27
29
  });
28
30
  // We need to serialize cause the cache only accepts JSON
29
- return runtime.transformer.serialize(procedureResult);
31
+ return transformer.input.serialize(procedureResult);
30
32
  };
31
33
  if (type === 'query') {
32
34
  return unstable_cache(callProc, path.split('.'), {
@@ -41,7 +43,7 @@ function experimental_nextCacheLink(opts) {
41
43
  observer.error(TRPCClientError.from(cause));
42
44
  });
43
45
  promise.then((data)=>{
44
- const transformedResult = runtime.transformer.deserialize(data);
46
+ const transformedResult = transformer.output.deserialize(data);
45
47
  observer.next({
46
48
  result: {
47
49
  data: transformedResult
@@ -1,15 +1,15 @@
1
1
  import type { HTTPBatchLinkOptions, HTTPLinkOptions, TRPCLink } from '@trpc/client';
2
- import type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';
2
+ import type { AnyRootTypes, AnyRouter } from '@trpc/server/unstable-core-do-not-import';
3
3
  interface NextLinkBaseOptions {
4
4
  revalidate?: number | false;
5
5
  batch?: boolean;
6
6
  }
7
- interface NextLinkSingleOptions extends NextLinkBaseOptions, Omit<HTTPLinkOptions, 'fetch'> {
7
+ type NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {
8
8
  batch?: false;
9
- }
10
- interface NextLinkBatchOptions extends NextLinkBaseOptions, Omit<HTTPBatchLinkOptions, 'fetch'> {
9
+ };
10
+ type NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {
11
11
  batch: true;
12
- }
13
- export declare function experimental_nextHttpLink<TRouter extends AnyRouter>(opts: NextLinkSingleOptions | NextLinkBatchOptions): TRPCLink<TRouter>;
12
+ };
13
+ export declare function experimental_nextHttpLink<TRouter extends AnyRouter>(opts: NextLinkSingleOptions<TRouter['_def']['_config']['$types']> | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
14
14
  export {};
15
15
  //# sourceMappingURL=nextHttp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nextHttp.d.ts","sourceRoot":"","sources":["../../../src/app-dir/links/nextHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACT,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAG1E,UAAU,mBAAmB;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,qBACR,SAAQ,mBAAmB,EACzB,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,UAAU,oBACR,SAAQ,mBAAmB,EACzB,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACrC,KAAK,EAAE,IAAI,CAAC;CACb;AAGD,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,SAAS,EACjE,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,GACjD,QAAQ,CAAC,OAAO,CAAC,CAyCnB"}
1
+ {"version":3,"file":"nextHttp.d.ts","sourceRoot":"","sources":["../../../src/app-dir/links/nextHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACT,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACV,MAAM,0CAA0C,CAAC;AAGlD,UAAU,mBAAmB;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,qBAAqB,CAAC,KAAK,SAAS,YAAY,IAAI,mBAAmB,GAC1E,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEJ,KAAK,oBAAoB,CAAC,KAAK,SAAS,YAAY,IAAI,mBAAmB,GACzE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG;IAC3C,KAAK,EAAE,IAAI,CAAC;CACb,CAAC;AAGJ,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,SAAS,EACjE,IAAI,EACA,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC3D,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC7D,QAAQ,CAAC,OAAO,CAAC,CAyCnB"}
@@ -1,4 +1,4 @@
1
- import type { AnyProcedure, AnyRootTypes, AnyRouter, inferProcedureInput, MaybePromise, RootConfig, Simplify, TRPCResponse } from '@trpc/server/unstable-core-do-not-import';
1
+ import type { AnyProcedure, AnyRootTypes, AnyRouter, inferProcedureInput, inferRootTypes, MaybePromise, RootConfig, Simplify, TRPCResponse } from '@trpc/server/unstable-core-do-not-import';
2
2
  import type { ActionHandlerDef, CreateTRPCNextAppRouterOptions, inferActionDef } from './shared';
3
3
  import type { NextAppDirDecorateRouterRecord } from './types';
4
4
  export declare function experimental_createTRPCNextAppDirServer<TRouter extends AnyRouter>(opts: CreateTRPCNextAppRouterOptions<TRouter>): NextAppDirDecorateRouterRecord<TRouter["_def"]["_config"]["$types"], TRouter["_def"]["record"]>;
@@ -9,7 +9,7 @@ export type TRPCActionHandler<TDef extends ActionHandlerDef> = (input: FormData
9
9
  export declare function experimental_createServerActionHandler<TInstance extends {
10
10
  _config: RootConfig<AnyRootTypes>;
11
11
  }>(t: TInstance, opts: {
12
- createContext: () => MaybePromise<TInstance['_config']['$types']['ctx']>;
12
+ createContext: () => MaybePromise<inferRootTypes<TInstance>['ctx']>;
13
13
  /**
14
14
  * Transform form data to a `Record` before passing it to the procedure
15
15
  * @default true
@@ -18,7 +18,7 @@ export declare function experimental_createServerActionHandler<TInstance extends
18
18
  }): <TProc extends AnyProcedure>(proc: TProc) => TRPCActionHandler<{
19
19
  input: inferProcedureInput<TProc>;
20
20
  output: TProc["_def"]["_output_out"];
21
- errorShape: TInstance["_config"]["$types"]["errorShape"];
21
+ errorShape: inferRootTypes<TInstance>["errorShape"];
22
22
  }>;
23
23
  export declare function experimental_revalidateEndpoint(req: Request): Promise<Response>;
24
24
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/app-dir/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACb,MAAM,0CAA0C,CAAC;AAWlD,OAAO,KAAK,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAG9D,wBAAgB,uCAAuC,CACrD,OAAO,SAAS,SAAS,EACzB,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,mGA2B9C;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,gBAAgB,IAAI,CAC7D,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAC5B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAE/D,wBAAgB,sCAAsC,CACpD,SAAS,SAAS;IAChB,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACnC,EAED,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;;;;GAoEF;AAGD,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,OAAO,qBAiBjE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/app-dir/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACb,MAAM,0CAA0C,CAAC;AAWlD,OAAO,KAAK,EACV,gBAAgB,EAChB,8BAA8B,EAC9B,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAG9D,wBAAgB,uCAAuC,CACrD,OAAO,SAAS,SAAS,EACzB,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAC,mGA2B9C;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,gBAAgB,IAAI,CAC7D,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAC5B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAE/D,wBAAgB,sCAAsC,CACpD,SAAS,SAAS;IAChB,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACnC,EAED,CAAC,EAAE,SAAS,EACZ,IAAI,EAAE;IACJ,aAAa,EAAE,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;;;;GAoEF;AAGD,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,OAAO,qBAiBjE"}
@@ -1,12 +1,12 @@
1
1
  {
2
- "bundleSize": 22209,
3
- "bundleOrigSize": 32981,
4
- "bundleReduction": 32.66,
2
+ "bundleSize": 22745,
3
+ "bundleOrigSize": 34887,
4
+ "bundleReduction": 34.8,
5
5
  "modules": [
6
6
  {
7
7
  "id": "/src/withTRPC.tsx",
8
- "size": 7848,
9
- "origSize": 9372,
8
+ "size": 8219,
9
+ "origSize": 9921,
10
10
  "renderedExports": [
11
11
  "withTRPC"
12
12
  ],
@@ -15,13 +15,13 @@
15
15
  "/src/index.ts",
16
16
  "/src/createTRPCNext.tsx"
17
17
  ],
18
- "percent": 35.34,
19
- "reduction": 16.26
18
+ "percent": 36.14,
19
+ "reduction": 17.16
20
20
  },
21
21
  {
22
22
  "id": "/src/app-dir/server.ts",
23
23
  "size": 3822,
24
- "origSize": 4908,
24
+ "origSize": 4911,
25
25
  "renderedExports": [
26
26
  "experimental_createTRPCNextAppDirServer",
27
27
  "experimental_createServerActionHandler",
@@ -29,13 +29,13 @@
29
29
  ],
30
30
  "removedExports": [],
31
31
  "dependents": [],
32
- "percent": 17.21,
33
- "reduction": 22.13
32
+ "percent": 16.8,
33
+ "reduction": 22.17
34
34
  },
35
35
  {
36
36
  "id": "/src/app-dir/create-action-hook.tsx",
37
- "size": 3337,
38
- "origSize": 5785,
37
+ "size": 3436,
38
+ "origSize": 6740,
39
39
  "renderedExports": [
40
40
  "experimental_serverActionLink",
41
41
  "experimental_createActionHook"
@@ -44,20 +44,20 @@
44
44
  "dependents": [
45
45
  "/src/app-dir/client.ts"
46
46
  ],
47
- "percent": 15.03,
48
- "reduction": 42.32
47
+ "percent": 15.11,
48
+ "reduction": 49.02
49
49
  },
50
50
  {
51
51
  "id": "/src/app-dir/links/nextCache.ts",
52
- "size": 2505,
53
- "origSize": 2834,
52
+ "size": 2571,
53
+ "origSize": 3040,
54
54
  "renderedExports": [
55
55
  "experimental_nextCacheLink"
56
56
  ],
57
57
  "removedExports": [],
58
58
  "dependents": [],
59
- "percent": 11.28,
60
- "reduction": 11.61
59
+ "percent": 11.3,
60
+ "reduction": 15.43
61
61
  },
62
62
  {
63
63
  "id": "/src/app-dir/client.ts",
@@ -68,20 +68,20 @@
68
68
  ],
69
69
  "removedExports": [],
70
70
  "dependents": [],
71
- "percent": 5.76,
71
+ "percent": 5.62,
72
72
  "reduction": 32.47
73
73
  },
74
74
  {
75
75
  "id": "/src/app-dir/links/nextHttp.ts",
76
76
  "size": 1192,
77
- "origSize": 1780,
77
+ "origSize": 1973,
78
78
  "renderedExports": [
79
79
  "experimental_nextHttpLink"
80
80
  ],
81
81
  "removedExports": [],
82
82
  "dependents": [],
83
- "percent": 5.37,
84
- "reduction": 33.03
83
+ "percent": 5.24,
84
+ "reduction": 39.58
85
85
  },
86
86
  {
87
87
  "id": "/src/createTRPCNext.tsx",
@@ -94,7 +94,7 @@
94
94
  "dependents": [
95
95
  "/src/index.ts"
96
96
  ],
97
- "percent": 4.83,
97
+ "percent": 4.72,
98
98
  "reduction": 60.23
99
99
  },
100
100
  {
@@ -108,7 +108,7 @@
108
108
  "dependents": [
109
109
  "/src/app-dir/server.ts"
110
110
  ],
111
- "percent": 3.68,
111
+ "percent": 3.6,
112
112
  "reduction": 0.97
113
113
  },
114
114
  {
@@ -124,11 +124,11 @@
124
124
  ],
125
125
  "dependents": [
126
126
  "/src/app-dir/server.ts",
127
- "/src/app-dir/links/nextHttp.ts",
128
127
  "/src/app-dir/links/nextCache.ts",
128
+ "/src/app-dir/links/nextHttp.ts",
129
129
  "/src/app-dir/create-action-hook.tsx"
130
130
  ],
131
- "percent": 1.51,
131
+ "percent": 1.47,
132
132
  "reduction": 88.13
133
133
  },
134
134
  {
@@ -1,17 +1,18 @@
1
1
  import type { CreateTRPCClientOptions } from '@trpc/client';
2
+ import { type TransformerOptions } from '@trpc/client/unstable-internals';
2
3
  import type { TRPCClientError } from '@trpc/react-query';
3
4
  import type { CreateTRPCReactOptions, CreateTRPCReactQueryClientConfig } from '@trpc/react-query/shared';
4
- import type { AnyRouter, ResponseMeta } from '@trpc/server/unstable-core-do-not-import';
5
+ import type { AnyRouter, inferRootTypes, ResponseMeta } from '@trpc/server/unstable-core-do-not-import';
5
6
  import type { NextComponentType, NextPageContext } from 'next/dist/shared/lib/utils';
6
7
  export type WithTRPCConfig<TRouter extends AnyRouter> = CreateTRPCClientOptions<TRouter> & CreateTRPCReactQueryClientConfig & {
7
8
  abortOnUnmount?: boolean;
8
9
  };
9
- interface WithTRPCOptions<TRouter extends AnyRouter> extends CreateTRPCReactOptions<TRouter> {
10
+ type WithTRPCOptions<TRouter extends AnyRouter> = CreateTRPCReactOptions<TRouter> & {
10
11
  config: (info: {
11
12
  ctx?: NextPageContext;
12
13
  }) => WithTRPCConfig<TRouter>;
13
- }
14
- export interface WithTRPCSSROptions<TRouter extends AnyRouter> extends WithTRPCOptions<TRouter> {
14
+ } & TransformerOptions<inferRootTypes<TRouter>>;
15
+ export type WithTRPCSSROptions<TRouter extends AnyRouter> = WithTRPCOptions<TRouter> & {
15
16
  ssr: true | ((opts: {
16
17
  ctx: NextPageContext;
17
18
  }) => boolean | Promise<boolean>);
@@ -19,10 +20,10 @@ export interface WithTRPCSSROptions<TRouter extends AnyRouter> extends WithTRPCO
19
20
  ctx: NextPageContext;
20
21
  clientErrors: TRPCClientError<TRouter>[];
21
22
  }) => ResponseMeta;
22
- }
23
- export interface WithTRPCNoSSROptions<TRouter extends AnyRouter> extends WithTRPCOptions<TRouter> {
23
+ };
24
+ export type WithTRPCNoSSROptions<TRouter extends AnyRouter> = WithTRPCOptions<TRouter> & {
24
25
  ssr?: false;
25
- }
26
+ };
26
27
  export declare function withTRPC<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): (AppOrPage: NextComponentType<any, any, any>) => NextComponentType;
27
28
  export {};
28
29
  //# sourceMappingURL=withTRPC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withTRPC.d.ts","sourceRoot":"","sources":["../src/withTRPC.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,uBAAuB,EAAqB,MAAM,cAAc,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,SAAS,EAGT,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AA0BpC,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,SAAS,IAClD,uBAAuB,CAAC,OAAO,CAAC,GAC9B,gCAAgC,GAAG;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,UAAU,eAAe,CAAC,OAAO,SAAS,SAAS,CACjD,SAAQ,sBAAsB,CAAC,OAAO,CAAC;IACvC,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,eAAe,CAAA;KAAE,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,SAAS,CAC3D,SAAQ,eAAe,CAAC,OAAO,CAAC;IAChC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,eAAe,CAAC;QACrB,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;KAC1C,KAAK,YAAY,CAAC;CACpB;AACD,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,SAAS,CAC7D,SAAQ,eAAe,CAAC,OAAO,CAAC;IAChC,GAAG,CAAC,EAAE,KAAK,CAAC;CACb;AAED,wBAAgB,QAAQ,CACtB,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,GAAG,eAAe,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAU9C,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,iBAAiB,CAqMxE"}
1
+ {"version":3,"file":"withTRPC.d.ts","sourceRoot":"","sources":["../src/withTRPC.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,uBAAuB,EAAqB,MAAM,cAAc,CAAC;AAG/E,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EAEd,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAGV,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AA0BpC,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,SAAS,IAClD,uBAAuB,CAAC,OAAO,CAAC,GAC9B,gCAAgC,GAAG;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,KAAK,eAAe,CAAC,OAAO,SAAS,SAAS,IAC5C,sBAAsB,CAAC,OAAO,CAAC,GAAG;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,eAAe,CAAA;KAAE,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;CACtE,GAAG,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAElD,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,SAAS,IACtD,eAAe,CAAC,OAAO,CAAC,GAAG;IACzB,GAAG,EACC,IAAI,GACJ,CAAC,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACrE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,eAAe,CAAC;QACrB,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;KAC1C,KAAK,YAAY,CAAC;CACpB,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,SAAS,IACxD,eAAe,CAAC,OAAO,CAAC,GAAG;IACzB,GAAG,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEJ,wBAAgB,QAAQ,CACtB,OAAO,SAAS,SAAS,EACzB,WAAW,SAAS,eAAe,GAAG,eAAe,EACrD,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAa9C,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,iBAAiB,CA2MxE"}
package/dist/withTRPC.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var reactQuery = require('@tanstack/react-query');
4
4
  var client = require('@trpc/client');
5
+ var unstableInternals = require('@trpc/client/unstable-internals');
5
6
  var shared = require('@trpc/react-query/shared');
6
7
  var React = require('react');
7
8
 
@@ -25,6 +26,7 @@ function transformQueryOrMutationCacheErrors(result) {
25
26
  }
26
27
  function withTRPC(opts) {
27
28
  const { config: getClientConfig } = opts;
29
+ const transformer = unstableInternals.getTransformer(opts.transformer);
28
30
  return (AppOrPage)=>{
29
31
  const trpc = shared.createRootHooks(opts);
30
32
  const WithTRPC = (props)=>{
@@ -45,7 +47,17 @@ function withTRPC(opts) {
45
47
  });
46
48
  const { queryClient , trpcClient , ssrState , ssrContext } = prepassProps;
47
49
  // allow normal components to be wrapped, not just app/pages
48
- const hydratedState = trpc.useDehydratedState(trpcClient, props.pageProps?.trpcState);
50
+ const trpcState = props.pageProps?.trpcState;
51
+ const hydratedState = React.useMemo(()=>{
52
+ if (!trpcState) {
53
+ return trpcState;
54
+ }
55
+ return transformer.input.deserialize(trpcState);
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ }, [
58
+ trpcState,
59
+ trpcClient
60
+ ]);
49
61
  return /*#__PURE__*/ React.createElement(trpc.Provider, {
50
62
  abortOnUnmount: prepassProps.abortOnUnmount ?? false,
51
63
  client: trpcClient,
@@ -145,7 +157,7 @@ function withTRPC(opts) {
145
157
  mutations: dehydratedCache.mutations.map(transformQueryOrMutationCacheErrors)
146
158
  };
147
159
  // dehydrate query client's state and add it to the props
148
- pageProps['trpcState'] = trpcClient.runtime.combinedTransformer.output.serialize(dehydratedCacheWithErrors);
160
+ pageProps['trpcState'] = transformer.input.serialize(dehydratedCacheWithErrors);
149
161
  const appTreeProps = getAppTreeProps(pageProps);
150
162
  if ('responseMeta' in opts) {
151
163
  const meta = opts.responseMeta?.({
package/dist/withTRPC.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { dehydrate, QueryClientProvider, HydrationBoundary } from '@tanstack/react-query';
2
2
  import { createTRPCUntypedClient } from '@trpc/client';
3
+ import { getTransformer } from '@trpc/client/unstable-internals';
3
4
  import { createRootHooks, getQueryClient } from '@trpc/react-query/shared';
4
5
  import React, { createElement, useState } from 'react';
5
6
 
@@ -23,6 +24,7 @@ function transformQueryOrMutationCacheErrors(result) {
23
24
  }
24
25
  function withTRPC(opts) {
25
26
  const { config: getClientConfig } = opts;
27
+ const transformer = getTransformer(opts.transformer);
26
28
  return (AppOrPage)=>{
27
29
  const trpc = createRootHooks(opts);
28
30
  const WithTRPC = (props)=>{
@@ -43,7 +45,17 @@ function withTRPC(opts) {
43
45
  });
44
46
  const { queryClient , trpcClient , ssrState , ssrContext } = prepassProps;
45
47
  // allow normal components to be wrapped, not just app/pages
46
- const hydratedState = trpc.useDehydratedState(trpcClient, props.pageProps?.trpcState);
48
+ const trpcState = props.pageProps?.trpcState;
49
+ const hydratedState = React.useMemo(()=>{
50
+ if (!trpcState) {
51
+ return trpcState;
52
+ }
53
+ return transformer.input.deserialize(trpcState);
54
+ // eslint-disable-next-line react-hooks/exhaustive-deps
55
+ }, [
56
+ trpcState,
57
+ trpcClient
58
+ ]);
47
59
  return /*#__PURE__*/ React.createElement(trpc.Provider, {
48
60
  abortOnUnmount: prepassProps.abortOnUnmount ?? false,
49
61
  client: trpcClient,
@@ -143,7 +155,7 @@ function withTRPC(opts) {
143
155
  mutations: dehydratedCache.mutations.map(transformQueryOrMutationCacheErrors)
144
156
  };
145
157
  // dehydrate query client's state and add it to the props
146
- pageProps['trpcState'] = trpcClient.runtime.combinedTransformer.output.serialize(dehydratedCacheWithErrors);
158
+ pageProps['trpcState'] = transformer.input.serialize(dehydratedCacheWithErrors);
147
159
  const appTreeProps = getAppTreeProps(pageProps);
148
160
  if ('responseMeta' in opts) {
149
161
  const meta = opts.responseMeta?.({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/next",
3
- "version": "11.0.0-next-beta.248+05798dd78",
3
+ "version": "11.0.0-next-beta.249+53c90b2f6",
4
4
  "description": "The tRPC Next.js library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -67,9 +67,9 @@
67
67
  ],
68
68
  "peerDependencies": {
69
69
  "@tanstack/react-query": "^5.0.0",
70
- "@trpc/client": "11.0.0-next-beta.248+05798dd78",
71
- "@trpc/react-query": "11.0.0-next-beta.248+05798dd78",
72
- "@trpc/server": "11.0.0-next-beta.248+05798dd78",
70
+ "@trpc/client": "11.0.0-next-beta.249+53c90b2f6",
71
+ "@trpc/react-query": "11.0.0-next-beta.249+53c90b2f6",
72
+ "@trpc/server": "11.0.0-next-beta.249+53c90b2f6",
73
73
  "next": "*",
74
74
  "react": ">=16.8.0",
75
75
  "react-dom": ">=16.8.0"
@@ -84,9 +84,9 @@
84
84
  },
85
85
  "devDependencies": {
86
86
  "@tanstack/react-query": "^5.0.0",
87
- "@trpc/client": "11.0.0-next-beta.248+05798dd78",
88
- "@trpc/react-query": "11.0.0-next-beta.248+05798dd78",
89
- "@trpc/server": "11.0.0-next-beta.248+05798dd78",
87
+ "@trpc/client": "11.0.0-next-beta.249+53c90b2f6",
88
+ "@trpc/react-query": "11.0.0-next-beta.249+53c90b2f6",
89
+ "@trpc/server": "11.0.0-next-beta.249+53c90b2f6",
90
90
  "@types/express": "^4.17.17",
91
91
  "@types/node": "^20.10.0",
92
92
  "@types/react": "^18.2.33",
@@ -106,5 +106,5 @@
106
106
  "funding": [
107
107
  "https://trpc.io/sponsor"
108
108
  ],
109
- "gitHead": "05798dd78fd304612172fcccb622559954a0f578"
109
+ "gitHead": "53c90b2f66f002e3797a043899f0c9fe34dededb"
110
110
  }
@@ -4,12 +4,19 @@ import type {
4
4
  TRPCRequestOptions,
5
5
  } from '@trpc/client';
6
6
  import { createTRPCUntypedClient, TRPCClientError } from '@trpc/client';
7
+ import type {
8
+ CoercedTransformerParameters,
9
+ TransformerOptions,
10
+ } from '@trpc/client/unstable-internals';
11
+ import { getTransformer } from '@trpc/client/unstable-internals';
7
12
  import { observable } from '@trpc/server/observable';
8
13
  import type {
9
- AnyRouter,
14
+ inferRootTypes,
10
15
  MaybePromise,
11
16
  ProcedureOptions,
12
17
  Simplify,
18
+ TRPCInferrable,
19
+ TypeError,
13
20
  } from '@trpc/server/unstable-core-do-not-import';
14
21
  import { transformResult } from '@trpc/server/unstable-core-do-not-import';
15
22
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
@@ -67,9 +74,27 @@ type ActionContext = {
67
74
 
68
75
  // ts-prune-ignore-next
69
76
  export function experimental_serverActionLink<
70
- TRouter extends AnyRouter = AnyRouter,
71
- >(): TRPCLink<TRouter> {
72
- return (runtime) =>
77
+ TInferrable extends TRPCInferrable,
78
+ >(
79
+ ...args: TRPCInferrable extends TInferrable
80
+ ? [
81
+ TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()` or experimental_serverActionLink<HERE>()'>,
82
+ ]
83
+ : inferRootTypes<TInferrable>['transformer'] extends true
84
+ ? [
85
+ opts: TransformerOptions<{
86
+ transformer: true;
87
+ }>,
88
+ ]
89
+ : [
90
+ opts?: TransformerOptions<{
91
+ transformer: false;
92
+ }>,
93
+ ]
94
+ ): TRPCLink<TInferrable> {
95
+ const [opts] = args as [CoercedTransformerParameters];
96
+ const transformer = getTransformer(opts?.transformer);
97
+ return () =>
73
98
  ({ op }) =>
74
99
  observable((observer) => {
75
100
  const context = op.context as ActionContext;
@@ -78,10 +103,10 @@ export function experimental_serverActionLink<
78
103
  ._action(
79
104
  isFormData(op.input)
80
105
  ? op.input
81
- : runtime.transformer.serialize(op.input),
106
+ : transformer.input.serialize(op.input),
82
107
  )
83
108
  .then((data) => {
84
- const transformed = transformResult(data, runtime.transformer);
109
+ const transformed = transformResult(data, transformer.output);
85
110
 
86
111
  if (!transformed.ok) {
87
112
  observer.error(TRPCClientError.from(transformed.error, {}));
@@ -103,15 +128,20 @@ interface UseTRPCActionOptions<TDef extends ActionHandlerDef> {
103
128
  onSuccess?: (result: TDef['output']) => MaybePromise<void> | void;
104
129
  onError?: (result: TRPCClientError<TDef['errorShape']>) => MaybePromise<void>;
105
130
  }
106
-
107
131
  // ts-prune-ignore-next
108
- export function experimental_createActionHook<TRouter extends AnyRouter>(
109
- opts: CreateTRPCClientOptions<TRouter>,
132
+ export function experimental_createActionHook<
133
+ TInferrable extends TRPCInferrable,
134
+ >(
135
+ opts: TRPCInferrable extends TInferrable
136
+ ? TypeError<'Generic parameter missing in `experimental_createActionHook<HERE>()`'>
137
+ : CreateTRPCClientOptions<TInferrable>,
110
138
  ) {
111
139
  type ActionContext = {
112
140
  _action: (...args: any[]) => Promise<any>;
113
141
  };
114
- const client = createTRPCUntypedClient(opts);
142
+ const client = createTRPCUntypedClient(
143
+ opts as Exclude<typeof opts, TypeError<any>>,
144
+ );
115
145
  return function useAction<TDef extends ActionHandlerDef>(
116
146
  handler: TRPCActionHandler<TDef>,
117
147
  useActionOpts?: UseTRPCActionOptions<Simplify<TDef>>,
@@ -2,9 +2,14 @@
2
2
 
3
3
  import type { TRPCLink } from '@trpc/client';
4
4
  import { TRPCClientError } from '@trpc/client';
5
+ import {
6
+ getTransformer,
7
+ type TransformerOptions,
8
+ } from '@trpc/client/unstable-internals';
5
9
  import { observable } from '@trpc/server/observable';
6
10
  import type {
7
11
  AnyRouter,
12
+ inferRootTypes,
8
13
  inferRouterContext,
9
14
  } from '@trpc/server/unstable-core-do-not-import';
10
15
  import { callProcedure } from '@trpc/server/unstable-core-do-not-import';
@@ -16,13 +21,14 @@ type NextCacheLinkOptions<TRouter extends AnyRouter> = {
16
21
  createContext: () => Promise<inferRouterContext<TRouter>>;
17
22
  /** how many seconds the cache should hold before revalidating */
18
23
  revalidate?: number | false;
19
- };
24
+ } & TransformerOptions<inferRootTypes<TRouter>>;
20
25
 
21
26
  // ts-prune-ignore-next
22
27
  export function experimental_nextCacheLink<TRouter extends AnyRouter>(
23
28
  opts: NextCacheLinkOptions<TRouter>,
24
29
  ): TRPCLink<TRouter> {
25
- return (runtime) =>
30
+ const transformer = getTransformer(opts.transformer);
31
+ return () =>
26
32
  ({ op }) =>
27
33
  observable((observer) => {
28
34
  const { path, input, type, context } = op;
@@ -52,7 +58,7 @@ export function experimental_nextCacheLink<TRouter extends AnyRouter>(
52
58
  });
53
59
 
54
60
  // We need to serialize cause the cache only accepts JSON
55
- return runtime.transformer.serialize(procedureResult);
61
+ return transformer.input.serialize(procedureResult);
56
62
  };
57
63
 
58
64
  if (type === 'query') {
@@ -70,7 +76,7 @@ export function experimental_nextCacheLink<TRouter extends AnyRouter>(
70
76
 
71
77
  promise
72
78
  .then((data) => {
73
- const transformedResult = runtime.transformer.deserialize(data);
79
+ const transformedResult = transformer.output.deserialize(data);
74
80
  observer.next({ result: { data: transformedResult } });
75
81
  observer.complete();
76
82
  })
@@ -4,7 +4,10 @@ import type {
4
4
  TRPCLink,
5
5
  } from '@trpc/client';
6
6
  import { httpBatchLink, httpLink } from '@trpc/client';
7
- import type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';
7
+ import type {
8
+ AnyRootTypes,
9
+ AnyRouter,
10
+ } from '@trpc/server/unstable-core-do-not-import';
8
11
  import { generateCacheTag } from '../shared';
9
12
 
10
13
  interface NextLinkBaseOptions {
@@ -12,21 +15,21 @@ interface NextLinkBaseOptions {
12
15
  batch?: boolean;
13
16
  }
14
17
 
15
- interface NextLinkSingleOptions
16
- extends NextLinkBaseOptions,
17
- Omit<HTTPLinkOptions, 'fetch'> {
18
- batch?: false;
19
- }
18
+ type NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &
19
+ Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {
20
+ batch?: false;
21
+ };
20
22
 
21
- interface NextLinkBatchOptions
22
- extends NextLinkBaseOptions,
23
- Omit<HTTPBatchLinkOptions, 'fetch'> {
24
- batch: true;
25
- }
23
+ type NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &
24
+ Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {
25
+ batch: true;
26
+ };
26
27
 
27
28
  // ts-prune-ignore-next
28
29
  export function experimental_nextHttpLink<TRouter extends AnyRouter>(
29
- opts: NextLinkSingleOptions | NextLinkBatchOptions,
30
+ opts:
31
+ | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>
32
+ | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>,
30
33
  ): TRPCLink<TRouter> {
31
34
  return (runtime) => {
32
35
  return (ctx) => {
@@ -42,7 +45,7 @@ export function experimental_nextHttpLink<TRouter extends AnyRouter>(
42
45
 
43
46
  const revalidate = requestRevalidate ?? opts.revalidate ?? false;
44
47
 
45
- const _fetch: NonNullable<HTTPLinkOptions['fetch']> = (
48
+ const _fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']> = (
46
49
  url,
47
50
  fetchOpts,
48
51
  ) => {
@@ -57,11 +60,11 @@ export function experimental_nextHttpLink<TRouter extends AnyRouter>(
57
60
  };
58
61
  const link = opts.batch
59
62
  ? httpBatchLink({
60
- ...opts,
63
+ ...(opts as any),
61
64
  fetch: _fetch,
62
65
  })
63
66
  : httpLink({
64
- ...opts,
67
+ ...(opts as any),
65
68
  fetch: _fetch,
66
69
  });
67
70
 
@@ -8,6 +8,7 @@ import type {
8
8
  AnyRootTypes,
9
9
  AnyRouter,
10
10
  inferProcedureInput,
11
+ inferRootTypes,
11
12
  MaybePromise,
12
13
  RootConfig,
13
14
  Simplify,
@@ -77,7 +78,7 @@ export function experimental_createServerActionHandler<
77
78
  >(
78
79
  t: TInstance,
79
80
  opts: {
80
- createContext: () => MaybePromise<TInstance['_config']['$types']['ctx']>;
81
+ createContext: () => MaybePromise<inferRootTypes<TInstance>['ctx']>;
81
82
  /**
82
83
  * Transform form data to a `Record` before passing it to the procedure
83
84
  * @default true
@@ -94,12 +95,12 @@ export function experimental_createServerActionHandler<
94
95
  return function createServerAction<TProc extends AnyProcedure>(
95
96
  proc: TProc,
96
97
  ): TRPCActionHandler<
97
- Simplify<inferActionDef<TInstance['_config']['$types'], TProc>>
98
+ Simplify<inferActionDef<inferRootTypes<TInstance>, TProc>>
98
99
  > {
99
100
  return async function actionHandler(
100
101
  rawInput: FormData | inferProcedureInput<TProc>,
101
102
  ) {
102
- const ctx: TInstance['_config']['$types']['ctx'] | undefined = undefined;
103
+ const ctx: inferRootTypes<TInstance>['ctx'] | undefined = undefined;
103
104
  try {
104
105
  const ctx = await createContext();
105
106
  if (normalizeFormData && isFormData(rawInput)) {
package/src/withTRPC.tsx CHANGED
@@ -10,6 +10,11 @@ import {
10
10
  } from '@tanstack/react-query';
11
11
  import type { CreateTRPCClientOptions, TRPCUntypedClient } from '@trpc/client';
12
12
  import { createTRPCUntypedClient } from '@trpc/client';
13
+ import type { CoercedTransformerParameters } from '@trpc/client/unstable-internals';
14
+ import {
15
+ getTransformer,
16
+ type TransformerOptions,
17
+ } from '@trpc/client/unstable-internals';
13
18
  import type { TRPCClientError, TRPCClientErrorLike } from '@trpc/react-query';
14
19
  import type {
15
20
  CreateTRPCReactOptions,
@@ -19,6 +24,7 @@ import { createRootHooks, getQueryClient } from '@trpc/react-query/shared';
19
24
  import type {
20
25
  AnyRouter,
21
26
  Dict,
27
+ inferRootTypes,
22
28
  Maybe,
23
29
  ResponseMeta,
24
30
  } from '@trpc/server/unstable-core-do-not-import';
@@ -59,29 +65,35 @@ export type WithTRPCConfig<TRouter extends AnyRouter> =
59
65
  abortOnUnmount?: boolean;
60
66
  };
61
67
 
62
- interface WithTRPCOptions<TRouter extends AnyRouter>
63
- extends CreateTRPCReactOptions<TRouter> {
64
- config: (info: { ctx?: NextPageContext }) => WithTRPCConfig<TRouter>;
65
- }
68
+ type WithTRPCOptions<TRouter extends AnyRouter> =
69
+ CreateTRPCReactOptions<TRouter> & {
70
+ config: (info: { ctx?: NextPageContext }) => WithTRPCConfig<TRouter>;
71
+ } & TransformerOptions<inferRootTypes<TRouter>>;
66
72
 
67
- export interface WithTRPCSSROptions<TRouter extends AnyRouter>
68
- extends WithTRPCOptions<TRouter> {
69
- ssr: true | ((opts: { ctx: NextPageContext }) => boolean | Promise<boolean>);
70
- responseMeta?: (opts: {
71
- ctx: NextPageContext;
72
- clientErrors: TRPCClientError<TRouter>[];
73
- }) => ResponseMeta;
74
- }
75
- export interface WithTRPCNoSSROptions<TRouter extends AnyRouter>
76
- extends WithTRPCOptions<TRouter> {
77
- ssr?: false;
78
- }
73
+ export type WithTRPCSSROptions<TRouter extends AnyRouter> =
74
+ WithTRPCOptions<TRouter> & {
75
+ ssr:
76
+ | true
77
+ | ((opts: { ctx: NextPageContext }) => boolean | Promise<boolean>);
78
+ responseMeta?: (opts: {
79
+ ctx: NextPageContext;
80
+ clientErrors: TRPCClientError<TRouter>[];
81
+ }) => ResponseMeta;
82
+ };
83
+
84
+ export type WithTRPCNoSSROptions<TRouter extends AnyRouter> =
85
+ WithTRPCOptions<TRouter> & {
86
+ ssr?: false;
87
+ };
79
88
 
80
89
  export function withTRPC<
81
90
  TRouter extends AnyRouter,
82
91
  TSSRContext extends NextPageContext = NextPageContext,
83
92
  >(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>) {
84
93
  const { config: getClientConfig } = opts;
94
+ const transformer = getTransformer(
95
+ (opts as CoercedTransformerParameters).transformer,
96
+ );
85
97
 
86
98
  type TRPCPrepassProps = {
87
99
  config: WithTRPCConfig<TRouter>;
@@ -106,6 +118,7 @@ export function withTRPC<
106
118
  const config = getClientConfig({});
107
119
  const queryClient = getQueryClient(config);
108
120
  const trpcClient = trpc.createClient(config);
121
+
109
122
  return {
110
123
  abortOnUnmount: config.abortOnUnmount,
111
124
  queryClient,
@@ -118,10 +131,16 @@ export function withTRPC<
118
131
  const { queryClient, trpcClient, ssrState, ssrContext } = prepassProps;
119
132
 
120
133
  // allow normal components to be wrapped, not just app/pages
121
- const hydratedState = trpc.useDehydratedState(
122
- trpcClient,
123
- props.pageProps?.trpcState,
124
- );
134
+ const trpcState = props.pageProps?.trpcState;
135
+
136
+ const hydratedState: DehydratedState | undefined = React.useMemo(() => {
137
+ if (!trpcState) {
138
+ return trpcState;
139
+ }
140
+
141
+ return transformer.input.deserialize(trpcState);
142
+ // eslint-disable-next-line react-hooks/exhaustive-deps
143
+ }, [trpcState, trpcClient]);
125
144
 
126
145
  return (
127
146
  <trpc.Provider
@@ -245,10 +264,9 @@ export function withTRPC<
245
264
  };
246
265
 
247
266
  // dehydrate query client's state and add it to the props
248
- pageProps['trpcState'] =
249
- trpcClient.runtime.combinedTransformer.output.serialize(
250
- dehydratedCacheWithErrors,
251
- );
267
+ pageProps['trpcState'] = transformer.input.serialize(
268
+ dehydratedCacheWithErrors,
269
+ );
252
270
 
253
271
  const appTreeProps = getAppTreeProps(pageProps);
254
272