@trpc/server 10.0.0-proxy-alpha.61 → 10.0.0-proxy-alpha.64

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.
package/README.md CHANGED
@@ -52,7 +52,7 @@ function createContext(opts: CreateHTTPContextOptions) {
52
52
  type Context = inferAsyncReturnType<typeof createContext>;
53
53
 
54
54
  // Initialize tRPC
55
- const t = initTRPC<{ ctx: Context }>()();
55
+ const t = initTRPC.context<Context>.create();
56
56
 
57
57
  // Create main router
58
58
  const appRouter = t.router({
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../router-77321794.js');
5
+ require('../../router-da6086c3.js');
6
6
  var TRPCError = require('../../TRPCError-fe9113e5.js');
7
7
  var resolveHTTPResponse = require('../../resolveHTTPResponse-d7a8a210.js');
8
8
  require('../../codes-1c24d919.js');
@@ -1,4 +1,4 @@
1
- import '../../router-f747db2b.mjs';
1
+ import '../../router-6b03ff5f.mjs';
2
2
  import { T as TRPCError } from '../../TRPCError-281ac25a.mjs';
3
3
  import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-1b339cff.mjs';
4
4
  import '../../codes-aaa7d554.mjs';
@@ -1,6 +1,7 @@
1
1
  export type { AnyRouter, ProcedureRecord, ProcedureRouterRecord, } from './router';
2
2
  export { callProcedure } from './router';
3
3
  export type { Procedure, ProcedureParams, ProcedureArgs, ProcedureOptions, } from './procedure';
4
+ export { createInputMiddleware, createOutputMiddleware } from './middleware';
4
5
  export { initTRPC } from './initTRPC';
5
6
  export * from './types';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -1,95 +1,105 @@
1
1
  import { mergeRoutersGeneric } from './internals/__generated__/mergeRoutersGeneric';
2
2
  import { DefaultErrorShape, ErrorFormatter, ErrorFormatterShape } from '../error/formatter';
3
3
  import { CombinedDataTransformer, DataTransformerOptions, DefaultDataTransformer } from '../transformer';
4
- import { InitGenerics, InitOptions } from './internals/config';
4
+ import { CreateInitGenerics, InitGenerics, InitOptions } from './internals/config';
5
5
  import { PickFirstDefined, ValidateShape } from './internals/utils';
6
- export declare function initTRPC<TParams extends Partial<InitGenerics> = {}>(): <TOptions extends Partial<InitOptions<{
7
- ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
8
- meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
9
- }>>>(options?: ValidateShape<TOptions, Partial<InitOptions<{
10
- ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
11
- meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
12
- }>>> | undefined) => {
13
- /**
14
- * These are just types, they can't be used
15
- * @internal
16
- */
17
- _config: {
18
- ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
19
- meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
20
- errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
21
- transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
22
- };
23
- /**
24
- * Builder object for creating procedures
25
- */
26
- procedure: import("./internals/procedureBuilder").ProcedureBuilder<{
27
- _config: {
28
- ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
29
- meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
30
- errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
31
- transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
32
- };
33
- _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
34
- _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
35
- _input_in: typeof import("./internals/utils").unsetMarker;
36
- _input_out: typeof import("./internals/utils").unsetMarker;
37
- _output_in: typeof import("./internals/utils").unsetMarker;
38
- _output_out: typeof import("./internals/utils").unsetMarker;
39
- _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
40
- }>;
41
- /**
42
- * Create reusable middlewares
43
- */
44
- middleware: <$TNewParams extends import("./procedure").ProcedureParams<{
45
- transformer: CombinedDataTransformer;
46
- errorShape: DefaultErrorShape;
47
- ctx: Record<string, unknown>;
48
- meta: Record<string, unknown>;
49
- }, unknown, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: import("./middleware").MiddlewareFunction<{
50
- _config: {
51
- ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
52
- meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
53
- errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
54
- transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
55
- };
56
- _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
57
- _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
58
- _input_out: unknown;
59
- _input_in: unknown;
6
+ declare type PartialInitGenerics = Partial<InitGenerics>;
7
+ declare type CreateInitGenericsFromPartial<T extends PartialInitGenerics> = CreateInitGenerics<{
8
+ ctx: T['ctx'] extends InitGenerics['ctx'] ? T['ctx'] : {};
9
+ meta: T['meta'] extends InitGenerics['meta'] ? T['meta'] : {};
10
+ }>;
11
+ /**
12
+ * TODO: This can be improved:
13
+ * - We should be able to chain `.meta()`/`.context()` only once
14
+ * - Simplify typings
15
+ * - Doesn't need to be a class but it doesn't really hurt either
16
+ */
17
+ declare class TRPCBuilder<TParams extends Partial<InitGenerics> = {}> {
18
+ context<TNewContext extends InitGenerics['ctx']>(): TRPCBuilder<{ [TKey in "ctx" | keyof TParams]: TKey extends "ctx" ? {
19
+ ctx: TNewContext;
20
+ }[TKey] : TKey extends keyof TParams ? TParams[TKey] : never; }>;
21
+ meta<TNewMeta extends InitGenerics['meta']>(): TRPCBuilder<{ [TKey in "meta" | keyof TParams]: TKey extends "meta" ? {
22
+ meta: TNewMeta;
23
+ }[TKey] : TKey extends keyof TParams ? TParams[TKey] : never; }>;
24
+ create<TOptions extends Partial<InitOptions<CreateInitGenericsFromPartial<TParams>>>>(options?: ValidateShape<TOptions, Partial<InitOptions<CreateInitGenericsFromPartial<TParams>>>> | undefined): {
60
25
  /**
61
26
  * These are just types, they can't be used
62
27
  * @internal
63
28
  */
64
- _output_in: unknown;
65
- _output_out: unknown;
66
- _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
67
- }, $TNewParams>) => import("./middleware").MiddlewareFunction<{
68
29
  _config: {
69
- ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
70
- meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
71
- errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
30
+ ctx: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
31
+ meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
32
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, DefaultErrorShape>>>;
72
33
  transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
73
34
  };
74
- _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
75
- _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
76
- _input_out: unknown;
77
- _input_in: unknown;
78
35
  /**
79
- * These are just types, they can't be used
80
- * @internal
36
+ * Builder object for creating procedures
37
+ */
38
+ procedure: import("./internals/procedureBuilder").ProcedureBuilder<{
39
+ _config: {
40
+ ctx: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
41
+ meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
42
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, DefaultErrorShape>>>;
43
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
44
+ };
45
+ _ctx_in: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
46
+ _ctx_out: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
47
+ _input_in: typeof import("./internals/utils").unsetMarker;
48
+ _input_out: typeof import("./internals/utils").unsetMarker;
49
+ _output_in: typeof import("./internals/utils").unsetMarker;
50
+ _output_out: typeof import("./internals/utils").unsetMarker;
51
+ _meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
52
+ }>;
53
+ /**
54
+ * Create reusable middlewares
55
+ */
56
+ middleware: <$TNewParams extends import("./procedure").ProcedureParams<{
57
+ transformer: CombinedDataTransformer;
58
+ errorShape: DefaultErrorShape;
59
+ ctx: Record<string, unknown>;
60
+ meta: Record<string, unknown>;
61
+ }, unknown, unknown, unknown, unknown, unknown, unknown, unknown>>(fn: import("./middleware").MiddlewareFunction<{
62
+ _config: {
63
+ ctx: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
64
+ meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
65
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, DefaultErrorShape>>>;
66
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
67
+ };
68
+ _ctx_in: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
69
+ _ctx_out: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
70
+ _input_out: unknown;
71
+ _input_in: unknown;
72
+ _output_in: unknown;
73
+ _output_out: unknown;
74
+ _meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
75
+ }, $TNewParams>) => import("./middleware").MiddlewareFunction<{
76
+ _config: {
77
+ ctx: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
78
+ meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
79
+ errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, DefaultErrorShape>>>;
80
+ transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
81
+ };
82
+ _ctx_in: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
83
+ _ctx_out: TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {};
84
+ _input_out: unknown;
85
+ _input_in: unknown;
86
+ _output_in: unknown;
87
+ _output_out: unknown;
88
+ _meta: TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {};
89
+ }, $TNewParams>;
90
+ /**
91
+ * Create a router
92
+ */
93
+ router: <TProcRouterRecord extends import("./router").ProcedureRouterRecord>(opts: TProcRouterRecord) => import("./router").Router<import("./router").RouterDef<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends Record<string, unknown> ? TParams["ctx"] : {}, DefaultErrorShape>>>, TParams["meta"] extends Record<string, unknown> ? TParams["meta"] : {}, TProcRouterRecord>> & TProcRouterRecord;
94
+ /**
95
+ * Merge Routers
81
96
  */
82
- _output_in: unknown;
83
- _output_out: unknown;
84
- _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
85
- }, $TNewParams>;
86
- /**
87
- * Create a router
88
- */
89
- router: <TProcRouterRecord extends import("./router").ProcedureRouterRecord>(opts: TProcRouterRecord) => import("./router").Router<import("./router").RouterDef<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>, PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>, TProcRouterRecord>> & TProcRouterRecord;
90
- /**
91
- * Merge Routers
92
- */
93
- mergeRouters: typeof mergeRoutersGeneric;
94
- };
97
+ mergeRouters: typeof mergeRoutersGeneric;
98
+ };
99
+ }
100
+ /**
101
+ * Initialize tRPC - be done exactly once per backend
102
+ */
103
+ export declare const initTRPC: TRPCBuilder<{}>;
104
+ export {};
95
105
  //# sourceMappingURL=initTRPC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initTRPC.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/initTRPC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,YAAY,EACZ,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIpE,wBAAgB,QAAQ,CAAC,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE;SAE1D,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;UAClE,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC;;SADtE,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC;UAClE,OAAO,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC;;IAuCzE;;;OAGG;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;IAEH;;OAEG;;;;;;;;;;;;;;;;;QAXH;;;WAGG;;;;;;;;;;;;;;;QAHH;;;WAGG;;;;;IAUH;;OAEG;;IAKH;;OAEG;;EAIR"}
1
+ {"version":3,"file":"initTRPC.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/initTRPC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAElB,YAAY,EACZ,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIpE,aAAK,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEjD,aAAK,6BAA6B,CAAC,CAAC,SAAS,mBAAmB,IAC9D,kBAAkB,CAAC;IACjB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;CAC/D,CAAC,CAAC;AAEL;;;;;GAKG;AAEH,cAAM,WAAW,CAAC,OAAO,SAAS,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE;IAC1D,OAAO,CAAC,WAAW,SAAS,YAAY,CAAC,KAAK,CAAC;aACQ,WAAW;;IAElE,IAAI,CAAC,QAAQ,SAAS,YAAY,CAAC,MAAM,CAAC;cACc,QAAQ;;IAEhE,MAAM,CACJ,QAAQ,SAAS,OAAO,CACtB,WAAW,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CACpD,EAED,OAAO,CAAC,EACJ,aAAa,CACX,QAAQ,EACR,OAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAC7D,GACD,SAAS;QAkDX;;;WAGG;;;;;;;QAEH;;WAEG;;;;;;;;;;;;;;;;QAEH;;WAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAEH;;WAEG;;QAKH;;WAEG;;;CApER;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,iBAAoB,CAAC"}
@@ -21,7 +21,7 @@ export interface InitOptions<T extends InitGenerics> {
21
21
  */
22
22
  export declare type CreateInitGenerics<T extends InitGenerics> = T;
23
23
  /**
24
- * The config that is resolved after both calls of `initTRPC()` has been called
24
+ * The config that is resolved after `initTRPC.create()` has been called
25
25
  * Combination of `InitTOptions` + `InitGenerics`
26
26
  * @internal
27
27
  */
@@ -4,7 +4,6 @@ import { Parser, inferParser } from '../parser';
4
4
  import { MutationProcedure, ProcedureParams, QueryProcedure, SubscriptionProcedure } from '../procedure';
5
5
  import { ProcedureType } from '../types';
6
6
  import { RootConfig } from './config';
7
- import { ParseFn } from './getParseFn';
8
7
  import { ResolveOptions } from './utils';
9
8
  import { DefaultValue as FallbackValue, Overwrite, UnsetMarker } from './utils';
10
9
  declare type CreateProcedureReturnInput<TPrev extends ProcedureParams, TNext extends ProcedureParams> = ProcedureBuilder<{
@@ -108,8 +107,6 @@ export declare function createBuilder<TConfig extends RootConfig>(initDef?: AnyP
108
107
  _output_out: UnsetMarker;
109
108
  _meta: TConfig['meta'];
110
109
  }>;
111
- export declare function createInputMiddleware<T>(parse: ParseFn<T>): ProcedureBuilderMiddleware;
112
- export declare function createOutputMiddleware<T>(parse: ParseFn<T>): ProcedureBuilderMiddleware;
113
110
  /**
114
111
  * @internal
115
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../../../packages/server/src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,iBAAiB,EAEjB,eAAe,EACf,cAAc,EACd,qBAAqB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAc,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAoB,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhF,aAAK,0BAA0B,CAC7B,KAAK,SAAS,eAAe,EAC7B,KAAK,SAAS,eAAe,IAC3B,gBAAgB,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH,aAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhF,aAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC;AAExC,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,eAAe;IAC/D;;OAEG;IACH,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC3B,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,SAAS,WAAW,GAC7C,QAAQ,GACR,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5D,OAAO,CAAC,YAAY,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,QAAQ,GACR,YAAY,CAAC,gDAAgD,CAAC,GAChE,YAAY,CAAC,gDAAgD,CAAC,GACjE,gBAAgB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9B,SAAS,EAAE,kBAAkB,CAC3B,OAAO,CAAC,WAAW,CAAC,EACpB,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAC5B,CAAC;QACF,UAAU,EAAE,kBAAkB,CAC5B,OAAO,CAAC,YAAY,CAAC,EACrB,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAC7B,CAAC;QACF,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;KACrC,CAAC,CAAC;IACH;;OAEG;IACH,MAAM,CAAC,QAAQ,SAAS,MAAM,EAC5B,MAAM,EAAE,QAAQ,GACf,gBAAgB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;KAC3C,CAAC,CAAC;IACH;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD;;OAEG;IACH,GAAG,CAAC,QAAQ,SAAS,eAAe,EAClC,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,GACxC,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD;;;OAGG;IACH,eAAe,CAAC,qBAAqB,SAAS,mBAAmB,EAC/D,IAAI,EAAE,qBAAqB,GAC1B,qBAAqB,SAAS,gBAAgB,CAAC,MAAM,QAAQ,CAAC,GAC7D,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC7C,KAAK,CAAC;IACV;;OAEG;IACH,KAAK,CAAC,QAAQ,EACZ,QAAQ,EAAE,CACR,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAC1B,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,GAChE,WAAW,SAAS,OAAO,CAAC,aAAa,CAAC,GACzC,cAAc,CACZ,SAAS,CACP,OAAO,EACP;QACE,UAAU,EAAE,QAAQ,CAAC;QACrB,WAAW,EAAE,QAAQ,CAAC;KACvB,CACF,CACF,GACD,cAAc,CAAC,OAAO,CAAC,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EACf,QAAQ,EAAE,CACR,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAC1B,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,GAChE,WAAW,SAAS,OAAO,CAAC,aAAa,CAAC,GACzC,iBAAiB,CACf,SAAS,CACP,OAAO,EACP;QACE,UAAU,EAAE,QAAQ,CAAC;QACrB,WAAW,EAAE,QAAQ,CAAC;KACvB,CACF,CACF,GACD,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE/B;;OAEG;IACH,YAAY,CAAC,QAAQ,EACnB,QAAQ,EAAE,CACR,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAC1B,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC,GAChE,WAAW,SAAS,OAAO,CAAC,aAAa,CAAC,GACzC,qBAAqB,CACnB,SAAS,CACP,OAAO,EACP;QACE,UAAU,EAAE,QAAQ,CAAC;QACrB,WAAW,EAAE,QAAQ,CAAC;KACvB,CACF,CACF,GACD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnC;;OAEG;IACH,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,WAAW,EAAE,0BAA0B,EAAE,CAAC;QAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,aAAK,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACjD,oBAAY,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEjE,oBAAY,0BAA0B,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtE,oBAAY,wBAAwB,GAAG,CACrC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,KACtB,OAAO,CAAC,OAAO,CAAC,CAAC;AAgBtB,wBAAgB,aAAa,CAAC,OAAO,SAAS,UAAU,EACtD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,gBAAgB,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACxB,CAAC,CAsDD;AAMD,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,0BAA0B,CAwB5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,0BAA0B,CAqB5B;AAwBD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;CACrB"}
1
+ {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../../../packages/server/src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { RootConfig } from './internals/config';
2
+ import { ParseFn } from './internals/getParseFn';
3
+ import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
2
4
  import { MiddlewareMarker } from './internals/utils';
3
5
  import { ProcedureParams } from './procedure';
4
6
  import { ProcedureType } from './types';
@@ -33,29 +35,32 @@ export declare type MiddlewareResult<TParams extends ProcedureParams> = Middlewa
33
35
  /**
34
36
  * @internal
35
37
  */
36
- export declare type MiddlewareFunction<TParams extends ProcedureParams, TParamsAfter extends ProcedureParams> = (opts: {
37
- ctx: TParams['_ctx_out'];
38
- type: ProcedureType;
39
- path: string;
40
- input: TParams['_input_out'];
41
- rawInput: unknown;
42
- meta: TParams['_meta'];
43
- next: {
44
- (): Promise<MiddlewareResult<TParams>>;
45
- <$TContext>(opts: {
46
- ctx: $TContext;
47
- }): Promise<MiddlewareResult<{
48
- _config: any;
49
- _ctx_in: TParams['_ctx_in'];
50
- _ctx_out: $TContext;
51
- _input_in: TParams['_input_in'];
52
- _input_out: TParams['_input_out'];
53
- _output_in: TParams['_output_in'];
54
- _output_out: TParams['_output_out'];
55
- _meta: TParams['_meta'];
56
- }>>;
57
- };
58
- }) => Promise<MiddlewareResult<TParamsAfter>>;
38
+ export declare type MiddlewareFunction<TParams extends ProcedureParams, TParamsAfter extends ProcedureParams> = {
39
+ (opts: {
40
+ ctx: TParams['_ctx_out'];
41
+ type: ProcedureType;
42
+ path: string;
43
+ input: TParams['_input_out'];
44
+ rawInput: unknown;
45
+ meta: TParams['_meta'];
46
+ next: {
47
+ (): Promise<MiddlewareResult<TParams>>;
48
+ <$TContext>(opts: {
49
+ ctx: $TContext;
50
+ }): Promise<MiddlewareResult<{
51
+ _config: any;
52
+ _ctx_in: TParams['_ctx_in'];
53
+ _ctx_out: $TContext;
54
+ _input_in: TParams['_input_in'];
55
+ _input_out: TParams['_input_out'];
56
+ _output_in: TParams['_output_in'];
57
+ _output_out: TParams['_output_out'];
58
+ _meta: TParams['_meta'];
59
+ }>>;
60
+ };
61
+ }): Promise<MiddlewareResult<TParamsAfter>>;
62
+ _type?: string | undefined;
63
+ };
59
64
  /**
60
65
  * @internal
61
66
  */
@@ -83,5 +88,14 @@ export declare function createMiddlewareFactory<TConfig extends RootConfig>(): <
83
88
  _output_out: unknown;
84
89
  _meta: TConfig['meta'];
85
90
  }, $TNewParams>;
91
+ /**
92
+ * @internal
93
+ * Please note, `trpc-openapi` uses this function.
94
+ */
95
+ export declare function createInputMiddleware<T>(parse: ParseFn<T>): ProcedureBuilderMiddleware;
96
+ /**
97
+ * @internal
98
+ */
99
+ export declare function createOutputMiddleware<T>(parse: ParseFn<T>): ProcedureBuilderMiddleware;
86
100
  export {};
87
101
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED;;GAEG;AACH,UAAU,kBAAkB,CAAC,QAAQ,SAAS,eAAe,CAC3D,SAAQ,oBAAoB;IAC5B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,OAAO,CAAC;CAEf;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,QAAQ,SAAS,eAAe,CAC9D,SAAQ,oBAAoB;IAC5B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,KAAK,CAAC;CAEd;AAED;;GAEG;AACH,oBAAY,gBAAgB,CAAC,OAAO,SAAS,eAAe,IACxD,kBAAkB,CAAC,OAAO,CAAC,GAC3B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAEnC;;GAEG;AACH,oBAAY,kBAAkB,CAC5B,OAAO,SAAS,eAAe,EAC/B,YAAY,SAAS,eAAe,IAClC,CAAC,IAAI,EAAE;IACT,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,EAAE;QACJ,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,CAAC,SAAS,EAAE,IAAI,EAAE;YAAE,GAAG,EAAE,SAAS,CAAA;SAAE,GAAG,OAAO,CAC5C,gBAAgB,CAAC;YACf,OAAO,EAAE,GAAG,CAAC;YACb,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5B,QAAQ,EAAE,SAAS,CAAC;YACpB,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAChC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YACpC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACzB,CAAC,CACH,CAAC;KACH,CAAC;CACH,KAAK,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAE9C;;GAEG;AAEH,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,UAAU;;;;;;aAIjD,OAAO;aACP,OAAO,CAAC,KAAK,CAAC;cACb,OAAO,CAAC,KAAK,CAAC;gBACZ,OAAO;eACR,OAAO;gBACN,OAAO;iBACN,OAAO;WACb,OAAO,CAAC,MAAM,CAAC;;aAPb,OAAO;aACP,OAAO,CAAC,KAAK,CAAC;cACb,OAAO,CAAC,KAAK,CAAC;gBACZ,OAAO;eACR,OAAO;gBACN,OAAO;iBACN,OAAO;WACb,OAAO,CAAC,MAAM,CAAC;gBAO7B"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/core/middleware.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var resolveHTTPResponse = require('./resolveHTTPResponse-d7a8a210.js');
6
- var router = require('./router-77321794.js');
6
+ var router = require('./router-da6086c3.js');
7
7
  var TRPCError = require('./TRPCError-fe9113e5.js');
8
8
  require('./transformTRPCResponse-11ac69cc.js');
9
9
  require('./codes-1c24d919.js');
@@ -41,15 +41,25 @@ function mergeRoutersGeneric(...args) {
41
41
  }
42
42
 
43
43
  /**
44
- * @internal
45
- */ // FIXME this should use RootConfig
46
- function createMiddlewareFactory() {
47
- return function createMiddleware(fn) {
48
- return fn;
49
- };
44
+ * TODO: This can be improved:
45
+ * - We should be able to chain `.meta()`/`.context()` only once
46
+ * - Simplify typings
47
+ * - Doesn't need to be a class but it doesn't really hurt either
48
+ */ class TRPCBuilder {
49
+ context() {
50
+ return new TRPCBuilder();
51
+ }
52
+ meta() {
53
+ return new TRPCBuilder();
54
+ }
55
+ create(options) {
56
+ return createTRPCInner()(options);
57
+ }
50
58
  }
51
-
52
- function initTRPC() {
59
+ /**
60
+ * Initialize tRPC - be done exactly once per backend
61
+ */ const initTRPC = new TRPCBuilder();
62
+ function createTRPCInner() {
53
63
  return function initTRPCInner(options) {
54
64
  const errorFormatter = options?.errorFormatter ?? router.defaultFormatter;
55
65
  const transformer = router.getDataTransformer(options?.transformer ?? router.defaultTransformer);
@@ -69,7 +79,7 @@ function initTRPC() {
69
79
  */ procedure: router.createBuilder(),
70
80
  /**
71
81
  * Create reusable middlewares
72
- */ middleware: createMiddlewareFactory(),
82
+ */ middleware: router.createMiddlewareFactory(),
73
83
  /**
74
84
  * Create a router
75
85
  */ router: router.createRouterFactory({
@@ -86,6 +96,8 @@ function initTRPC() {
86
96
  exports.assertNotBrowser = resolveHTTPResponse.assertNotBrowser;
87
97
  exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
88
98
  exports.callProcedure = router.callProcedure;
99
+ exports.createInputMiddleware = router.createInputMiddleware;
100
+ exports.createOutputMiddleware = router.createOutputMiddleware;
89
101
  exports.defaultTransformer = router.defaultTransformer;
90
102
  exports.getDataTransformer = router.getDataTransformer;
91
103
  exports.procedureTypes = router.procedureTypes;
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-1b339cff.mjs';
2
- import { m as mergeWithoutOverrides, d as defaultFormatter, a as defaultTransformer, c as createRouterFactory, g as getDataTransformer, b as createBuilder } from './router-f747db2b.mjs';
3
- export { e as callProcedure, a as defaultTransformer, g as getDataTransformer, p as procedureTypes, r as router } from './router-f747db2b.mjs';
2
+ import { m as mergeWithoutOverrides, d as defaultFormatter, a as defaultTransformer, c as createRouterFactory, g as getDataTransformer, b as createBuilder, e as createMiddlewareFactory } from './router-6b03ff5f.mjs';
3
+ export { f as callProcedure, h as createInputMiddleware, i as createOutputMiddleware, a as defaultTransformer, g as getDataTransformer, p as procedureTypes, r as router } from './router-6b03ff5f.mjs';
4
4
  export { T as TRPCError } from './TRPCError-281ac25a.mjs';
5
5
  import './transformTRPCResponse-c8138d5f.mjs';
6
6
  import './codes-aaa7d554.mjs';
@@ -38,15 +38,25 @@ function mergeRoutersGeneric(...args) {
38
38
  }
39
39
 
40
40
  /**
41
- * @internal
42
- */ // FIXME this should use RootConfig
43
- function createMiddlewareFactory() {
44
- return function createMiddleware(fn) {
45
- return fn;
46
- };
41
+ * TODO: This can be improved:
42
+ * - We should be able to chain `.meta()`/`.context()` only once
43
+ * - Simplify typings
44
+ * - Doesn't need to be a class but it doesn't really hurt either
45
+ */ class TRPCBuilder {
46
+ context() {
47
+ return new TRPCBuilder();
48
+ }
49
+ meta() {
50
+ return new TRPCBuilder();
51
+ }
52
+ create(options) {
53
+ return createTRPCInner()(options);
54
+ }
47
55
  }
48
-
49
- function initTRPC() {
56
+ /**
57
+ * Initialize tRPC - be done exactly once per backend
58
+ */ const initTRPC = new TRPCBuilder();
59
+ function createTRPCInner() {
50
60
  return function initTRPCInner(options) {
51
61
  const errorFormatter = options?.errorFormatter ?? defaultFormatter;
52
62
  const transformer = getDataTransformer(options?.transformer ?? defaultTransformer);
@@ -260,6 +260,71 @@ function getParseFn(procedureParser) {
260
260
  return newObj;
261
261
  }
262
262
 
263
+ /**
264
+ * @internal
265
+ */ // FIXME this should use RootConfig
266
+ function createMiddlewareFactory() {
267
+ return function createMiddleware(fn) {
268
+ return fn;
269
+ };
270
+ }
271
+ function isPlainObject(obj) {
272
+ return obj && typeof obj === 'object' && !Array.isArray(obj);
273
+ }
274
+ /**
275
+ * @internal
276
+ * Please note, `trpc-openapi` uses this function.
277
+ */ function createInputMiddleware(parse) {
278
+ const inputMiddleware = async ({ next , rawInput , input , })=>{
279
+ let parsedInput;
280
+ try {
281
+ parsedInput = await parse(rawInput);
282
+ } catch (cause) {
283
+ throw new TRPCError({
284
+ code: 'BAD_REQUEST',
285
+ cause: getCauseFromUnknown(cause)
286
+ });
287
+ }
288
+ // Multiple input parsers
289
+ const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
290
+ ...input,
291
+ ...parsedInput
292
+ } : parsedInput;
293
+ // TODO fix this typing?
294
+ return next({
295
+ input: combinedInput
296
+ });
297
+ };
298
+ inputMiddleware._type = 'input';
299
+ return inputMiddleware;
300
+ }
301
+ /**
302
+ * @internal
303
+ */ function createOutputMiddleware(parse) {
304
+ const outputMiddleware = async ({ next })=>{
305
+ const result = await next();
306
+ if (!result.ok) {
307
+ // pass through failures without validating
308
+ return result;
309
+ }
310
+ try {
311
+ const data = await parse(result.data);
312
+ return {
313
+ ...result,
314
+ data
315
+ };
316
+ } catch (cause) {
317
+ throw new TRPCError({
318
+ message: 'Output validation failed',
319
+ code: 'INTERNAL_SERVER_ERROR',
320
+ cause: getCauseFromUnknown(cause)
321
+ });
322
+ }
323
+ };
324
+ outputMiddleware._type = 'output';
325
+ return outputMiddleware;
326
+ }
327
+
263
328
  /**
264
329
  * @internal
265
330
  */ const middlewareMarker = 'middlewareMarker';
@@ -341,53 +406,6 @@ function createBuilder(initDef) {
341
406
  }
342
407
  };
343
408
  }
344
- function isPlainObject(obj) {
345
- return obj && typeof obj === 'object' && !Array.isArray(obj);
346
- }
347
- function createInputMiddleware(parse) {
348
- return async function inputMiddleware({ next , rawInput , input }) {
349
- let parsedInput;
350
- try {
351
- parsedInput = await parse(rawInput);
352
- } catch (cause) {
353
- throw new TRPCError({
354
- code: 'BAD_REQUEST',
355
- cause: getCauseFromUnknown(cause)
356
- });
357
- }
358
- // Multiple input parsers
359
- const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
360
- ...input,
361
- ...parsedInput
362
- } : parsedInput;
363
- // TODO fix this typing?
364
- return next({
365
- input: combinedInput
366
- });
367
- };
368
- }
369
- function createOutputMiddleware(parse) {
370
- return async function outputMiddleware({ next }) {
371
- const result = await next();
372
- if (!result.ok) {
373
- // pass through failures without validating
374
- return result;
375
- }
376
- try {
377
- const data = await parse(result.data);
378
- return {
379
- ...result,
380
- data
381
- };
382
- } catch (cause) {
383
- throw new TRPCError({
384
- message: 'Output validation failed',
385
- code: 'INTERNAL_SERVER_ERROR',
386
- cause: getCauseFromUnknown(cause)
387
- });
388
- }
389
- };
390
- }
391
409
  function createResolver(_def, resolver) {
392
410
  const finalBuilder = createNewBuilder(_def, {
393
411
  resolver,
@@ -890,4 +908,4 @@ function safeObject(...args) {
890
908
  return new Router();
891
909
  }
892
910
 
893
- export { defaultTransformer as a, createBuilder as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getDataTransformer$1 as g, mergeWithoutOverrides as m, procedureTypes as p, router as r };
911
+ export { defaultTransformer as a, createBuilder as b, createRouterFactory as c, defaultFormatter as d, createMiddlewareFactory as e, callProcedure as f, getDataTransformer$1 as g, createInputMiddleware as h, createOutputMiddleware as i, mergeWithoutOverrides as m, procedureTypes as p, router as r };
@@ -262,6 +262,71 @@ function getParseFn(procedureParser) {
262
262
  return newObj;
263
263
  }
264
264
 
265
+ /**
266
+ * @internal
267
+ */ // FIXME this should use RootConfig
268
+ function createMiddlewareFactory() {
269
+ return function createMiddleware(fn) {
270
+ return fn;
271
+ };
272
+ }
273
+ function isPlainObject(obj) {
274
+ return obj && typeof obj === 'object' && !Array.isArray(obj);
275
+ }
276
+ /**
277
+ * @internal
278
+ * Please note, `trpc-openapi` uses this function.
279
+ */ function createInputMiddleware(parse) {
280
+ const inputMiddleware = async ({ next , rawInput , input , })=>{
281
+ let parsedInput;
282
+ try {
283
+ parsedInput = await parse(rawInput);
284
+ } catch (cause) {
285
+ throw new TRPCError.TRPCError({
286
+ code: 'BAD_REQUEST',
287
+ cause: TRPCError.getCauseFromUnknown(cause)
288
+ });
289
+ }
290
+ // Multiple input parsers
291
+ const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
292
+ ...input,
293
+ ...parsedInput
294
+ } : parsedInput;
295
+ // TODO fix this typing?
296
+ return next({
297
+ input: combinedInput
298
+ });
299
+ };
300
+ inputMiddleware._type = 'input';
301
+ return inputMiddleware;
302
+ }
303
+ /**
304
+ * @internal
305
+ */ function createOutputMiddleware(parse) {
306
+ const outputMiddleware = async ({ next })=>{
307
+ const result = await next();
308
+ if (!result.ok) {
309
+ // pass through failures without validating
310
+ return result;
311
+ }
312
+ try {
313
+ const data = await parse(result.data);
314
+ return {
315
+ ...result,
316
+ data
317
+ };
318
+ } catch (cause) {
319
+ throw new TRPCError.TRPCError({
320
+ message: 'Output validation failed',
321
+ code: 'INTERNAL_SERVER_ERROR',
322
+ cause: TRPCError.getCauseFromUnknown(cause)
323
+ });
324
+ }
325
+ };
326
+ outputMiddleware._type = 'output';
327
+ return outputMiddleware;
328
+ }
329
+
265
330
  /**
266
331
  * @internal
267
332
  */ const middlewareMarker = 'middlewareMarker';
@@ -343,53 +408,6 @@ function createBuilder(initDef) {
343
408
  }
344
409
  };
345
410
  }
346
- function isPlainObject(obj) {
347
- return obj && typeof obj === 'object' && !Array.isArray(obj);
348
- }
349
- function createInputMiddleware(parse) {
350
- return async function inputMiddleware({ next , rawInput , input }) {
351
- let parsedInput;
352
- try {
353
- parsedInput = await parse(rawInput);
354
- } catch (cause) {
355
- throw new TRPCError.TRPCError({
356
- code: 'BAD_REQUEST',
357
- cause: TRPCError.getCauseFromUnknown(cause)
358
- });
359
- }
360
- // Multiple input parsers
361
- const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
362
- ...input,
363
- ...parsedInput
364
- } : parsedInput;
365
- // TODO fix this typing?
366
- return next({
367
- input: combinedInput
368
- });
369
- };
370
- }
371
- function createOutputMiddleware(parse) {
372
- return async function outputMiddleware({ next }) {
373
- const result = await next();
374
- if (!result.ok) {
375
- // pass through failures without validating
376
- return result;
377
- }
378
- try {
379
- const data = await parse(result.data);
380
- return {
381
- ...result,
382
- data
383
- };
384
- } catch (cause) {
385
- throw new TRPCError.TRPCError({
386
- message: 'Output validation failed',
387
- code: 'INTERNAL_SERVER_ERROR',
388
- cause: TRPCError.getCauseFromUnknown(cause)
389
- });
390
- }
391
- };
392
- }
393
411
  function createResolver(_def, resolver) {
394
412
  const finalBuilder = createNewBuilder(_def, {
395
413
  resolver,
@@ -894,6 +912,9 @@ function safeObject(...args) {
894
912
 
895
913
  exports.callProcedure = callProcedure;
896
914
  exports.createBuilder = createBuilder;
915
+ exports.createInputMiddleware = createInputMiddleware;
916
+ exports.createMiddlewareFactory = createMiddlewareFactory;
917
+ exports.createOutputMiddleware = createOutputMiddleware;
897
918
  exports.createRouterFactory = createRouterFactory;
898
919
  exports.defaultFormatter = defaultFormatter;
899
920
  exports.defaultTransformer = defaultTransformer;
package/dist/types.d.ts CHANGED
@@ -26,6 +26,12 @@ export declare type Maybe<T> = T | undefined | null;
26
26
  * @internal
27
27
  */
28
28
  export declare type ThenArg<T> = T extends PromiseLike<infer U> ? ThenArg<U> : T;
29
+ /**
30
+ * @internal
31
+ */
32
+ export declare type Simplify<T> = {
33
+ [KeyType in keyof T]: T[KeyType];
34
+ };
29
35
  /**
30
36
  * @public
31
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAEpE;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;KACxC,IAAI,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,MAAM,CAAC,GAC7C,CAAC,CAAC,IAAI,CAAC,GACP,IAAI,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,IAAI,CAAC,GACP,KAAK;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,oBAAY,QAAQ,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,SAAS,MAAM,IACpB;KACD,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAEpD;;GAEG;AACH,oBAAY,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAExD;;GAEG;AACH,oBAAY,oBAAoB,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,IACtE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjC,aAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;KACpC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK;CACpD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEpE;;GAEG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI;KACxB,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK;CACxD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,oBAAY,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAEpE;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;KACxC,IAAI,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,MAAM,CAAC,GAC7C,CAAC,CAAC,IAAI,CAAC,GACP,IAAI,SAAS,MAAM,CAAC,GACpB,CAAC,CAAC,IAAI,CAAC,GACP,KAAK;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,oBAAY,QAAQ,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,SAAS,MAAM,IACpB;KACD,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,CAAC;AAE/D;;GAEG;AACH,oBAAY,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAEpD;;GAEG;AACH,oBAAY,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAExD;;GAEG;AACH,oBAAY,oBAAoB,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,IACtE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjC,aAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI;KACpC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK;CACpD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEpE;;GAEG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI;KACxB,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK;CACxD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,oBAAY,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.0.0-proxy-alpha.61",
3
+ "version": "10.0.0-proxy-alpha.64",
4
4
  "description": "tRPC Server",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -136,5 +136,5 @@
136
136
  "yup": "^0.32.8",
137
137
  "zod": "^3.0.0"
138
138
  },
139
- "gitHead": "2cfc6617c7ed6532a1870391824def1a4e8130ba"
139
+ "gitHead": "0a159a6c4224920090105f6e60a2e6172a750d46"
140
140
  }
package/src/core/index.ts CHANGED
@@ -10,6 +10,7 @@ export type {
10
10
  ProcedureArgs,
11
11
  ProcedureOptions,
12
12
  } from './procedure';
13
+ export { createInputMiddleware, createOutputMiddleware } from './middleware';
13
14
 
14
15
  export { initTRPC } from './initTRPC';
15
16
  export * from './types';
@@ -12,6 +12,7 @@ import {
12
12
  defaultTransformer,
13
13
  getDataTransformer,
14
14
  } from '../transformer';
15
+ import { FlatOverwrite } from '../types';
15
16
  import {
16
17
  CreateInitGenerics,
17
18
  CreateRootConfig,
@@ -23,14 +24,54 @@ import { PickFirstDefined, ValidateShape } from './internals/utils';
23
24
  import { createMiddlewareFactory } from './middleware';
24
25
  import { createRouterFactory } from './router';
25
26
 
26
- export function initTRPC<TParams extends Partial<InitGenerics> = {}>() {
27
- type $Generics = CreateInitGenerics<{
28
- ctx: TParams['ctx'] extends undefined ? {} : NonNullable<TParams['ctx']>;
29
- meta: TParams['meta'] extends undefined ? {} : NonNullable<TParams['meta']>;
27
+ type PartialInitGenerics = Partial<InitGenerics>;
28
+
29
+ type CreateInitGenericsFromPartial<T extends PartialInitGenerics> =
30
+ CreateInitGenerics<{
31
+ ctx: T['ctx'] extends InitGenerics['ctx'] ? T['ctx'] : {};
32
+ meta: T['meta'] extends InitGenerics['meta'] ? T['meta'] : {};
30
33
  }>;
31
34
 
35
+ /**
36
+ * TODO: This can be improved:
37
+ * - We should be able to chain `.meta()`/`.context()` only once
38
+ * - Simplify typings
39
+ * - Doesn't need to be a class but it doesn't really hurt either
40
+ */
41
+
42
+ class TRPCBuilder<TParams extends Partial<InitGenerics> = {}> {
43
+ context<TNewContext extends InitGenerics['ctx']>() {
44
+ return new TRPCBuilder<FlatOverwrite<TParams, { ctx: TNewContext }>>();
45
+ }
46
+ meta<TNewMeta extends InitGenerics['meta']>() {
47
+ return new TRPCBuilder<FlatOverwrite<TParams, { meta: TNewMeta }>>();
48
+ }
49
+ create<
50
+ TOptions extends Partial<
51
+ InitOptions<CreateInitGenericsFromPartial<TParams>>
52
+ >,
53
+ >(
54
+ options?:
55
+ | ValidateShape<
56
+ TOptions,
57
+ Partial<InitOptions<CreateInitGenericsFromPartial<TParams>>>
58
+ >
59
+ | undefined,
60
+ ) {
61
+ return createTRPCInner<TParams>()<TOptions>(options);
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Initialize tRPC - be done exactly once per backend
67
+ */
68
+ export const initTRPC = new TRPCBuilder();
69
+
70
+ function createTRPCInner<TParams extends Partial<InitGenerics>>() {
71
+ type $Generics = CreateInitGenericsFromPartial<TParams>;
72
+
32
73
  type $Context = $Generics['ctx'];
33
- type $Meta = PickFirstDefined<$Generics['meta'], undefined>;
74
+ type $Meta = $Generics['meta'];
34
75
  type $Options = Partial<InitOptions<$Generics>>;
35
76
 
36
77
  return function initTRPCInner<TOptions extends $Options>(
@@ -27,7 +27,7 @@ export interface InitOptions<T extends InitGenerics> {
27
27
  export type CreateInitGenerics<T extends InitGenerics> = T;
28
28
 
29
29
  /**
30
- * The config that is resolved after both calls of `initTRPC()` has been called
30
+ * The config that is resolved after `initTRPC.create()` has been called
31
31
  * Combination of `InitTOptions` + `InitGenerics`
32
32
  * @internal
33
33
  */
@@ -1,10 +1,12 @@
1
1
  import { TRPCError } from '../../error/TRPCError';
2
- import {
3
- getCauseFromUnknown,
4
- getTRPCErrorFromUnknown,
5
- } from '../../error/utils';
2
+ import { getTRPCErrorFromUnknown } from '../../error/utils';
6
3
  import { FlatOverwrite, MaybePromise } from '../../types';
7
- import { MiddlewareFunction, MiddlewareResult } from '../middleware';
4
+ import {
5
+ MiddlewareFunction,
6
+ MiddlewareResult,
7
+ createInputMiddleware,
8
+ createOutputMiddleware,
9
+ } from '../middleware';
8
10
  import { Parser, inferParser } from '../parser';
9
11
  import {
10
12
  MutationProcedure,
@@ -15,7 +17,7 @@ import {
15
17
  } from '../procedure';
16
18
  import { ProcedureType } from '../types';
17
19
  import { RootConfig } from './config';
18
- import { ParseFn, getParseFn } from './getParseFn';
20
+ import { getParseFn } from './getParseFn';
19
21
  import { mergeWithoutOverrides } from './mergeWithoutOverrides';
20
22
  import { ResolveOptions, middlewareMarker } from './utils';
21
23
  import { DefaultValue as FallbackValue, Overwrite, UnsetMarker } from './utils';
@@ -261,63 +263,6 @@ export function createBuilder<TConfig extends RootConfig>(
261
263
  };
262
264
  }
263
265
 
264
- function isPlainObject(obj: unknown) {
265
- return obj && typeof obj === 'object' && !Array.isArray(obj);
266
- }
267
-
268
- export function createInputMiddleware<T>(
269
- parse: ParseFn<T>,
270
- ): ProcedureBuilderMiddleware {
271
- return async function inputMiddleware({ next, rawInput, input }) {
272
- let parsedInput: ReturnType<typeof parse>;
273
- try {
274
- parsedInput = await parse(rawInput);
275
- } catch (cause) {
276
- throw new TRPCError({
277
- code: 'BAD_REQUEST',
278
- cause: getCauseFromUnknown(cause),
279
- });
280
- }
281
-
282
- // Multiple input parsers
283
- const combinedInput =
284
- isPlainObject(input) && isPlainObject(parsedInput)
285
- ? {
286
- ...input,
287
- ...parsedInput,
288
- }
289
- : parsedInput;
290
-
291
- // TODO fix this typing?
292
- return next({ input: combinedInput } as any);
293
- };
294
- }
295
-
296
- export function createOutputMiddleware<T>(
297
- parse: ParseFn<T>,
298
- ): ProcedureBuilderMiddleware {
299
- return async function outputMiddleware({ next }) {
300
- const result = await next();
301
- if (!result.ok) {
302
- // pass through failures without validating
303
- return result;
304
- }
305
- try {
306
- const data = await parse(result.data);
307
- return {
308
- ...result,
309
- data,
310
- };
311
- } catch (cause) {
312
- throw new TRPCError({
313
- message: 'Output validation failed',
314
- code: 'INTERNAL_SERVER_ERROR',
315
- cause: getCauseFromUnknown(cause),
316
- });
317
- }
318
- };
319
- }
320
-
321
266
  function createResolver(
322
267
  _def: AnyProcedureBuilderDef,
323
268
  resolver: (opts: ResolveOptions<any>) => MaybePromise<any>,
@@ -1,4 +1,8 @@
1
+ import { TRPCError } from '../error/TRPCError';
2
+ import { getCauseFromUnknown } from '../error/utils';
1
3
  import { RootConfig } from './internals/config';
4
+ import { ParseFn } from './internals/getParseFn';
5
+ import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
2
6
  import { MiddlewareMarker } from './internals/utils';
3
7
  import { ProcedureParams } from './procedure';
4
8
  import { ProcedureType } from './types';
@@ -47,29 +51,32 @@ export type MiddlewareResult<TParams extends ProcedureParams> =
47
51
  export type MiddlewareFunction<
48
52
  TParams extends ProcedureParams,
49
53
  TParamsAfter extends ProcedureParams,
50
- > = (opts: {
51
- ctx: TParams['_ctx_out'];
52
- type: ProcedureType;
53
- path: string;
54
- input: TParams['_input_out'];
55
- rawInput: unknown;
56
- meta: TParams['_meta'];
57
- next: {
58
- (): Promise<MiddlewareResult<TParams>>;
59
- <$TContext>(opts: { ctx: $TContext }): Promise<
60
- MiddlewareResult<{
61
- _config: any;
62
- _ctx_in: TParams['_ctx_in'];
63
- _ctx_out: $TContext;
64
- _input_in: TParams['_input_in'];
65
- _input_out: TParams['_input_out'];
66
- _output_in: TParams['_output_in'];
67
- _output_out: TParams['_output_out'];
68
- _meta: TParams['_meta'];
69
- }>
70
- >;
71
- };
72
- }) => Promise<MiddlewareResult<TParamsAfter>>;
54
+ > = {
55
+ (opts: {
56
+ ctx: TParams['_ctx_out'];
57
+ type: ProcedureType;
58
+ path: string;
59
+ input: TParams['_input_out'];
60
+ rawInput: unknown;
61
+ meta: TParams['_meta'];
62
+ next: {
63
+ (): Promise<MiddlewareResult<TParams>>;
64
+ <$TContext>(opts: { ctx: $TContext }): Promise<
65
+ MiddlewareResult<{
66
+ _config: any;
67
+ _ctx_in: TParams['_ctx_in'];
68
+ _ctx_out: $TContext;
69
+ _input_in: TParams['_input_in'];
70
+ _input_out: TParams['_input_out'];
71
+ _output_in: TParams['_output_in'];
72
+ _output_out: TParams['_output_out'];
73
+ _meta: TParams['_meta'];
74
+ }>
75
+ >;
76
+ };
77
+ }): Promise<MiddlewareResult<TParamsAfter>>;
78
+ _type?: string | undefined;
79
+ };
73
80
 
74
81
  /**
75
82
  * @internal
@@ -94,3 +101,71 @@ export function createMiddlewareFactory<TConfig extends RootConfig>() {
94
101
  return fn;
95
102
  };
96
103
  }
104
+
105
+ function isPlainObject(obj: unknown) {
106
+ return obj && typeof obj === 'object' && !Array.isArray(obj);
107
+ }
108
+
109
+ /**
110
+ * @internal
111
+ * Please note, `trpc-openapi` uses this function.
112
+ */
113
+ export function createInputMiddleware<T>(parse: ParseFn<T>) {
114
+ const inputMiddleware: ProcedureBuilderMiddleware = async ({
115
+ next,
116
+ rawInput,
117
+ input,
118
+ }) => {
119
+ let parsedInput: ReturnType<typeof parse>;
120
+ try {
121
+ parsedInput = await parse(rawInput);
122
+ } catch (cause) {
123
+ throw new TRPCError({
124
+ code: 'BAD_REQUEST',
125
+ cause: getCauseFromUnknown(cause),
126
+ });
127
+ }
128
+
129
+ // Multiple input parsers
130
+ const combinedInput =
131
+ isPlainObject(input) && isPlainObject(parsedInput)
132
+ ? {
133
+ ...input,
134
+ ...parsedInput,
135
+ }
136
+ : parsedInput;
137
+
138
+ // TODO fix this typing?
139
+ return next({ input: combinedInput } as any);
140
+ };
141
+ inputMiddleware._type = 'input';
142
+ return inputMiddleware;
143
+ }
144
+
145
+ /**
146
+ * @internal
147
+ */
148
+ export function createOutputMiddleware<T>(parse: ParseFn<T>) {
149
+ const outputMiddleware: ProcedureBuilderMiddleware = async ({ next }) => {
150
+ const result = await next();
151
+ if (!result.ok) {
152
+ // pass through failures without validating
153
+ return result;
154
+ }
155
+ try {
156
+ const data = await parse(result.data);
157
+ return {
158
+ ...result,
159
+ data,
160
+ };
161
+ } catch (cause) {
162
+ throw new TRPCError({
163
+ message: 'Output validation failed',
164
+ code: 'INTERNAL_SERVER_ERROR',
165
+ cause: getCauseFromUnknown(cause),
166
+ });
167
+ }
168
+ };
169
+ outputMiddleware._type = 'output';
170
+ return outputMiddleware;
171
+ }
@@ -2,11 +2,11 @@ import { CombinedDataTransformer, ProcedureParams, ProcedureType } from '..';
2
2
  import { CreateRootConfig, RootConfig } from '../core/internals/config';
3
3
  import { getParseFnOrPassThrough } from '../core/internals/getParseFn';
4
4
  import { mergeWithoutOverrides } from '../core/internals/mergeWithoutOverrides';
5
+ import { createBuilder } from '../core/internals/procedureBuilder';
5
6
  import {
6
- createBuilder,
7
7
  createInputMiddleware,
8
8
  createOutputMiddleware,
9
- } from '../core/internals/procedureBuilder';
9
+ } from '../core/middleware';
10
10
  import {
11
11
  MutationProcedure,
12
12
  Procedure as NewProcedure,
package/src/types.ts CHANGED
@@ -41,6 +41,11 @@ export type Maybe<T> = T | undefined | null;
41
41
  */
42
42
  export type ThenArg<T> = T extends PromiseLike<infer U> ? ThenArg<U> : T;
43
43
 
44
+ /**
45
+ * @internal
46
+ */
47
+ export type Simplify<T> = { [KeyType in keyof T]: T[KeyType] };
48
+
44
49
  /**
45
50
  * @public
46
51
  */