@trpc/server 10.0.0-proxy-alpha.63 → 10.0.0-proxy-alpha.66

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({
@@ -1,87 +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<{
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): {
25
+ /**
26
+ * These are just types, they can't be used
27
+ * @internal
28
+ */
50
29
  _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>>>;
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>>>;
54
33
  transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
55
34
  };
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;
60
- _output_in: unknown;
61
- _output_out: unknown;
62
- _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
63
- }, $TNewParams>) => import("./middleware").MiddlewareFunction<{
64
- _config: {
65
- ctx: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
66
- meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
67
- errorShape: ErrorFormatterShape<PickFirstDefined<TOptions["errorFormatter"], ErrorFormatter<TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>, DefaultErrorShape>>>;
68
- transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] extends DataTransformerOptions ? CombinedDataTransformer : DefaultDataTransformer : DefaultDataTransformer;
69
- };
70
- _ctx_in: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
71
- _ctx_out: TParams["ctx"] extends undefined ? {} : NonNullable<TParams["ctx"]>;
72
- _input_out: unknown;
73
- _input_in: unknown;
74
- _output_in: unknown;
75
- _output_out: unknown;
76
- _meta: PickFirstDefined<TParams["meta"] extends undefined ? {} : NonNullable<TParams["meta"]>, undefined>;
77
- }, $TNewParams>;
78
- /**
79
- * Create a router
80
- */
81
- 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;
82
- /**
83
- * Merge Routers
84
- */
85
- mergeRouters: typeof mergeRoutersGeneric;
86
- };
35
+ /**
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
96
+ */
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 {};
87
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;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
  */
@@ -11,10 +11,10 @@ declare type convertProcedureParams<TConfig extends RootConfig, TProcedure exten
11
11
  /**
12
12
  * @deprecated
13
13
  */
14
- export declare type OldProcedureTag = {
14
+ export declare type LegacyV9ProcedureTag = {
15
15
  _old: true;
16
16
  };
17
- declare type MigrateProcedure<TConfig extends RootConfig, TProcedure extends AnyOldProcedure, TType extends ProcedureType> = TType extends 'query' ? QueryProcedure<convertProcedureParams<TConfig, TProcedure>> & OldProcedureTag : TType extends 'mutation' ? MutationProcedure<convertProcedureParams<TConfig, TProcedure>> & OldProcedureTag : TType extends 'subscription' ? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>> & OldProcedureTag : never;
17
+ declare type MigrateProcedure<TConfig extends RootConfig, TProcedure extends AnyOldProcedure, TType extends ProcedureType> = TType extends 'query' ? QueryProcedure<convertProcedureParams<TConfig, TProcedure>> & LegacyV9ProcedureTag : TType extends 'mutation' ? MutationProcedure<convertProcedureParams<TConfig, TProcedure>> & LegacyV9ProcedureTag : TType extends 'subscription' ? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>> & LegacyV9ProcedureTag : never;
18
18
  export declare type MigrateProcedureRecord<TConfig extends RootConfig, T extends ProcedureRecord<any>, TType extends ProcedureType> = {
19
19
  [K in keyof T]: MigrateProcedure<TConfig, T[K], TType>;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interop.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/deprecated/interop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interop.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/deprecated/interop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQxE,OAAO,EACL,iBAAiB,EAEjB,cAAc,EACd,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,MAAM,IAAI,SAAS,EACnB,SAAS,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,IAAI,YAAY,EACzB,MAAM,IAAI,SAAS,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,aAAK,eAAe,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5E,aAAK,sBAAsB,CACzB,OAAO,SAAS,UAAU,EAC1B,UAAU,SAAS,eAAe,IAChC,UAAU,SAAS,YAAY,CACjC,MAAM,aAAa,EACnB,MAAM,QAAQ,EACd,MAAM,KAAK,EACX,MAAM,MAAM,EACZ,MAAM,YAAY,EAClB,MAAM,OAAO,EACb,MAAM,cAAc,EACpB,MAAM,WAAW,CAClB,GACG,eAAe,CACb,OAAO,EACP,aAAa,EACb,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,OAAO,EACP,WAAW,EACX,KAAK,CACN,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,oBAAY,oBAAoB,GAAG;IACjC,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,aAAK,gBAAgB,CACnB,OAAO,SAAS,UAAU,EAC1B,UAAU,SAAS,eAAe,EAClC,KAAK,SAAS,aAAa,IACzB,KAAK,SAAS,OAAO,GACrB,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GACzD,oBAAoB,GACtB,KAAK,SAAS,UAAU,GACxB,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAC5D,oBAAoB,GACtB,KAAK,SAAS,cAAc,GAC5B,qBAAqB,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GAChE,oBAAoB,GACtB,KAAK,CAAC;AAEV,oBAAY,sBAAsB,CAChC,OAAO,SAAS,UAAU,EAC1B,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,EAC9B,KAAK,SAAS,aAAa,IACzB;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;CACvD,CAAC;AAEF,oBAAY,aAAa,CACvB,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzC,QAAQ,EACR,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,QAAQ,SAAS,eAAe,CAC9B,aAAa,EACb,QAAQ,EACR,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,EACD,UAAU,SAAS,eAAe,CAChC,aAAa,EACb,QAAQ,EACR,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,EACD,cAAc,SAAS,eAAe,CACpC,aAAa,EACb,QAAQ,EACR,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,CACR,EACD,WAAW,SAAS,cAAc,CAAC,GAAG,CAAC,IACrC,SAAS,CACX;IACE,MAAM,EAAE;QACN,OAAO,EAAE,sBAAsB,CAC7B,gBAAgB,CAAC;YACf,GAAG,EAAE,aAAa,CAAC;YACnB,UAAU,EAAE,WAAW,CAAC;YACxB,IAAI,EAAE,KAAK,CAAC;YACZ,WAAW,EAAE,uBAAuB,CAAC;SACtC,CAAC,EACF,QAAQ,EACR,OAAO,CACR,CAAC;QACF,SAAS,EAAE,sBAAsB,CAC/B,gBAAgB,CAAC;YACf,GAAG,EAAE,aAAa,CAAC;YACnB,UAAU,EAAE,WAAW,CAAC;YACxB,IAAI,EAAE,KAAK,CAAC;YACZ,WAAW,EAAE,uBAAuB,CAAC;SACtC,CAAC,EACF,UAAU,EACV,UAAU,CACX,CAAC;QACF,aAAa,EAAE,sBAAsB,CACnC,gBAAgB,CAAC;YACf,GAAG,EAAE,aAAa,CAAC;YACnB,UAAU,EAAE,WAAW,CAAC;YACxB,IAAI,EAAE,KAAK,CAAC;YACZ,WAAW,EAAE,uBAAuB,CAAC;SACtC,CAAC,EACF,cAAc,EACd,cAAc,CACf,CAAC;KACH,CAAC;CACH,GAAG,SAAS,CACX,aAAa,EACb,WAAW,EACX,KAAK,EACL,sBAAsB,CACpB,gBAAgB,CAAC;IACf,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,uBAAuB,CAAC;CACtC,CAAC,EACF,QAAQ,EACR,OAAO,CACR,GACC,sBAAsB,CACpB,gBAAgB,CAAC;IACf,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,uBAAuB,CAAC;CACtC,CAAC,EACF,UAAU,EACV,UAAU,CACX,GACD,sBAAsB,CACpB,gBAAgB,CAAC;IACf,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,uBAAuB,CAAC;CACtC,CAAC,EACF,cAAc,EACd,cAAc,CACf,CACJ,CACF,CAAC;AAEF,oBAAY,gBAAgB,CAAC,OAAO,SAAS,YAAY,IACvD,OAAO,SAAS,SAAS,CACvB,MAAM,aAAa,EACnB,MAAM,QAAQ,EACd,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,UAAU,EAChB,MAAM,cAAc,EACpB,MAAM,WAAW,CAClB,GACG,aAAa,CACX,aAAa,EACb,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,WAAW,CACZ,GACD,KAAK,CAAC;AA+BZ,wBAAgB,aAAa,CAAC,UAAU,SAAS,YAAY,EAC3D,SAAS,EAAE,UAAU,GACpB,gBAAgB,CAAC,UAAU,CAAC,CA+B9B"}
package/dist/index.js CHANGED
@@ -40,7 +40,26 @@ function mergeRoutersGeneric(...args) {
40
40
  return mergeRouters(...args);
41
41
  }
42
42
 
43
- function initTRPC() {
43
+ /**
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
+ }
58
+ }
59
+ /**
60
+ * Initialize tRPC - be done exactly once per backend
61
+ */ const initTRPC = new TRPCBuilder();
62
+ function createTRPCInner() {
44
63
  return function initTRPCInner(options) {
45
64
  const errorFormatter = options?.errorFormatter ?? router.defaultFormatter;
46
65
  const transformer = router.getDataTransformer(options?.transformer ?? router.defaultTransformer);
package/dist/index.mjs CHANGED
@@ -37,7 +37,26 @@ function mergeRoutersGeneric(...args) {
37
37
  return mergeRouters(...args);
38
38
  }
39
39
 
40
- function initTRPC() {
40
+ /**
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
+ }
55
+ }
56
+ /**
57
+ * Initialize tRPC - be done exactly once per backend
58
+ */ const initTRPC = new TRPCBuilder();
59
+ function createTRPCInner() {
41
60
  return function initTRPCInner(options) {
42
61
  const errorFormatter = options?.errorFormatter ?? defaultFormatter;
43
62
  const transformer = getDataTransformer(options?.transformer ?? defaultTransformer);
@@ -1,2 +1,3 @@
1
1
  export * from './createProxy';
2
+ export type { LegacyV9ProcedureTag } from '../deprecated/interop';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
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.63",
3
+ "version": "10.0.0-proxy-alpha.66",
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": "7eb10c98f1fe7385ab7a61d07fab49510294030b"
139
+ "gitHead": "b1e97d1d425cf07a758db92e279eecd20e9e5696"
140
140
  }
@@ -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
  */
@@ -56,7 +56,7 @@ type convertProcedureParams<
56
56
  /**
57
57
  * @deprecated
58
58
  */
59
- export type OldProcedureTag = {
59
+ export type LegacyV9ProcedureTag = {
60
60
  _old: true;
61
61
  };
62
62
 
@@ -66,13 +66,13 @@ type MigrateProcedure<
66
66
  TType extends ProcedureType,
67
67
  > = TType extends 'query'
68
68
  ? QueryProcedure<convertProcedureParams<TConfig, TProcedure>> &
69
- OldProcedureTag
69
+ LegacyV9ProcedureTag
70
70
  : TType extends 'mutation'
71
71
  ? MutationProcedure<convertProcedureParams<TConfig, TProcedure>> &
72
- OldProcedureTag
72
+ LegacyV9ProcedureTag
73
73
  : TType extends 'subscription'
74
74
  ? SubscriptionProcedure<convertProcedureParams<TConfig, TProcedure>> &
75
- OldProcedureTag
75
+ LegacyV9ProcedureTag
76
76
  : never;
77
77
 
78
78
  export type MigrateProcedureRecord<
@@ -1 +1,3 @@
1
1
  export * from './createProxy';
2
+
3
+ export type { LegacyV9ProcedureTag } from '../deprecated/interop';
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
  */