@trpc/server 10.0.0-alpha.20 → 10.0.0-alpha.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +90 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +90 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +86 -0
  6. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +4 -4
  7. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +4 -4
  8. package/adapters/express/dist/trpc-server-adapters-express.esm.js +4 -4
  9. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +5 -5
  10. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +5 -5
  11. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +5 -5
  12. package/adapters/fastify/index.js +1 -1
  13. package/adapters/fetch/index.d.ts +1 -0
  14. package/adapters/fetch/index.js +1 -0
  15. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
  16. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
  17. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
  18. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
  19. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
  20. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
  21. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +4 -4
  22. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +4 -4
  23. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +4 -4
  24. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +2 -2
  25. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +2 -2
  26. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +2 -2
  27. package/dist/TRPCError-7971540a.mjs +65 -0
  28. package/dist/{transformTRPCResponse-43a869de.js → TRPCError-ddec3395.js} +18 -59
  29. package/dist/TRPCError.d.ts +3 -3
  30. package/dist/TRPCError.d.ts.map +1 -1
  31. package/dist/adapters/express.js +5 -5
  32. package/dist/adapters/express.mjs +5 -5
  33. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  34. package/dist/adapters/fastify/index.js +7 -8
  35. package/dist/adapters/fastify/index.mjs +6 -7
  36. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  37. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  38. package/dist/adapters/fetch/index.d.ts +3 -0
  39. package/dist/adapters/fetch/index.d.ts.map +1 -0
  40. package/dist/adapters/fetch/index.js +69 -0
  41. package/dist/adapters/fetch/index.mjs +65 -0
  42. package/dist/adapters/fetch/index.ts.js +1 -0
  43. package/dist/adapters/fetch/types.d.ts +21 -0
  44. package/dist/adapters/fetch/types.d.ts.map +1 -0
  45. package/dist/adapters/next.d.ts.map +1 -1
  46. package/dist/adapters/next.js +9 -10
  47. package/dist/adapters/next.mjs +8 -9
  48. package/dist/adapters/node-http/index.js +5 -5
  49. package/dist/adapters/node-http/index.mjs +5 -5
  50. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  51. package/dist/adapters/node-http/types.d.ts +9 -7
  52. package/dist/adapters/node-http/types.d.ts.map +1 -1
  53. package/dist/adapters/standalone.d.ts.map +1 -1
  54. package/dist/adapters/standalone.js +11 -8
  55. package/dist/adapters/standalone.mjs +11 -7
  56. package/dist/adapters/ws.d.ts +4 -4
  57. package/dist/adapters/ws.d.ts.map +1 -1
  58. package/dist/adapters/ws.js +117 -80
  59. package/dist/adapters/ws.mjs +112 -75
  60. package/dist/assertNotBrowser.d.ts.map +1 -1
  61. package/dist/{codes-7a3d4f65.mjs → envelopes-1deb2fa7.mjs} +19 -1
  62. package/dist/{codes-7f46544e.js → envelopes-a953b930.js} +18 -0
  63. package/dist/http/index.d.ts +1 -1
  64. package/dist/http/internals/getHTTPStatusCode.d.ts +1 -0
  65. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  66. package/dist/http/internals/types.d.ts +5 -4
  67. package/dist/http/internals/types.d.ts.map +1 -1
  68. package/dist/http/resolveHTTPResponse.d.ts +1 -1
  69. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  70. package/dist/http/{ResponseMeta.d.ts → responseMeta.d.ts} +1 -1
  71. package/dist/http/responseMeta.d.ts.map +1 -0
  72. package/dist/index.d.ts +0 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +45 -54
  75. package/dist/index.mjs +40 -47
  76. package/dist/internals/{BaseHandlerOptions.d.ts → baseHandlerOptions.d.ts} +2 -2
  77. package/dist/internals/{BaseHandlerOptions.d.ts.map → baseHandlerOptions.d.ts.map} +1 -1
  78. package/dist/internals/callProcedure.d.ts +2 -2
  79. package/dist/internals/callProcedure.d.ts.map +1 -1
  80. package/dist/internals/errors.d.ts +1 -0
  81. package/dist/internals/errors.d.ts.map +1 -1
  82. package/dist/internals/middlewares.d.ts +5 -2
  83. package/dist/internals/middlewares.d.ts.map +1 -1
  84. package/dist/internals/{OnErrorFunction.d.ts → onErrorFunction.d.ts} +1 -1
  85. package/dist/internals/{OnErrorFunction.d.ts.map → onErrorFunction.d.ts.map} +1 -1
  86. package/dist/internals/procedure.d.ts +20 -14
  87. package/dist/internals/procedure.d.ts.map +1 -1
  88. package/dist/internals/transformTRPCResponse.d.ts +4 -2
  89. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  90. package/dist/{nodeHTTPRequestHandler-5fccb3bb.mjs → nodeHTTPRequestHandler-1cdb6383.mjs} +2 -3
  91. package/dist/{nodeHTTPRequestHandler-7d71ac09.js → nodeHTTPRequestHandler-848f07b5.js} +4 -5
  92. package/dist/observable/index.d.ts +5 -0
  93. package/dist/observable/index.d.ts.map +1 -0
  94. package/dist/observable/index.js +204 -0
  95. package/dist/observable/index.mjs +195 -0
  96. package/dist/observable/index.ts.js +1 -0
  97. package/dist/observable/internals/identity.d.ts +2 -0
  98. package/dist/observable/internals/identity.d.ts.map +1 -0
  99. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  100. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  101. package/dist/observable/internals/pipe.d.ts +4 -0
  102. package/dist/observable/internals/pipe.d.ts.map +1 -0
  103. package/dist/observable/observable.d.ts +5 -0
  104. package/dist/observable/observable.d.ts.map +1 -0
  105. package/dist/observable/operators/index.d.ts +4 -0
  106. package/dist/observable/operators/index.d.ts.map +1 -0
  107. package/dist/observable/operators/map.d.ts +3 -0
  108. package/dist/observable/operators/map.d.ts.map +1 -0
  109. package/dist/observable/operators/share.d.ts +6 -0
  110. package/dist/observable/operators/share.d.ts.map +1 -0
  111. package/dist/observable/operators/tap.d.ts +3 -0
  112. package/dist/observable/operators/tap.d.ts.map +1 -0
  113. package/dist/observable/types.d.ts +29 -0
  114. package/dist/observable/types.d.ts.map +1 -0
  115. package/dist/observable-137ea1bd.mjs +105 -0
  116. package/dist/observable-3aa4d911.js +108 -0
  117. package/dist/{resolveHTTPResponse-3292a84a.mjs → resolveHTTPResponse-54a79e6c.mjs} +18 -23
  118. package/dist/{resolveHTTPResponse-c3777a47.js → resolveHTTPResponse-ec3dccaa.js} +24 -29
  119. package/dist/router.d.ts +31 -27
  120. package/dist/router.d.ts.map +1 -1
  121. package/dist/rpc/codes.d.ts +2 -0
  122. package/dist/rpc/codes.d.ts.map +1 -1
  123. package/dist/rpc/envelopes.d.ts +61 -39
  124. package/dist/rpc/envelopes.d.ts.map +1 -1
  125. package/dist/rpc/index.js +7 -3
  126. package/dist/rpc/index.mjs +1 -1
  127. package/dist/subscription.d.ts +3 -52
  128. package/dist/subscription.d.ts.map +1 -1
  129. package/dist/subscription.js +44 -0
  130. package/dist/subscription.mjs +40 -0
  131. package/dist/subscription.ts.js +1 -0
  132. package/dist/transformTRPCResponse-333bed6c.js +56 -0
  133. package/dist/transformTRPCResponse-e0cba527.mjs +53 -0
  134. package/dist/types.d.ts +8 -0
  135. package/dist/types.d.ts.map +1 -1
  136. package/observable/index.d.ts +1 -0
  137. package/observable/index.js +1 -0
  138. package/package.json +30 -8
  139. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  140. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  141. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  142. package/src/TRPCError.ts +2 -2
  143. package/src/adapters/fastify/fastifyRequestHandler.ts +0 -1
  144. package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
  145. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  146. package/src/adapters/fetch/index.ts +2 -0
  147. package/src/adapters/fetch/types.ts +28 -0
  148. package/src/adapters/next.ts +3 -5
  149. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +0 -1
  150. package/src/adapters/node-http/types.ts +9 -7
  151. package/src/adapters/standalone.ts +10 -3
  152. package/src/adapters/ws.ts +115 -77
  153. package/src/assertNotBrowser.ts +1 -0
  154. package/src/http/index.ts +1 -1
  155. package/src/http/internals/getHTTPStatusCode.ts +1 -0
  156. package/src/http/internals/types.ts +5 -6
  157. package/src/http/resolveHTTPResponse.ts +20 -24
  158. package/src/http/{ResponseMeta.ts → responseMeta.ts} +0 -0
  159. package/src/index.ts +0 -1
  160. package/src/internals/{BaseHandlerOptions.ts → baseHandlerOptions.ts} +1 -1
  161. package/src/internals/callProcedure.ts +6 -3
  162. package/src/internals/errors.ts +20 -4
  163. package/src/internals/middlewares.ts +6 -2
  164. package/src/internals/{OnErrorFunction.ts → onErrorFunction.ts} +0 -0
  165. package/src/internals/procedure.ts +102 -42
  166. package/src/internals/transformTRPCResponse.ts +20 -15
  167. package/src/observable/index.ts +4 -0
  168. package/src/observable/internals/identity.ts +3 -0
  169. package/src/observable/internals/observableToPromise.ts +49 -0
  170. package/src/observable/internals/pipe.ts +22 -0
  171. package/src/observable/observable.test.ts +101 -0
  172. package/src/observable/observable.ts +75 -0
  173. package/src/observable/operators/index.ts +3 -0
  174. package/src/observable/operators/map.test.ts +92 -0
  175. package/src/observable/operators/map.ts +25 -0
  176. package/src/observable/operators/share.test.ts +60 -0
  177. package/src/observable/operators/share.ts +67 -0
  178. package/src/observable/operators/tap.ts +26 -0
  179. package/src/observable/types.ts +69 -0
  180. package/src/router.ts +96 -37
  181. package/src/rpc/codes.ts +1 -0
  182. package/src/rpc/envelopes.ts +87 -68
  183. package/src/subscription.ts +5 -123
  184. package/src/types.ts +7 -0
  185. package/dist/http/ResponseMeta.d.ts.map +0 -1
  186. package/dist/internals/wrapCallSafe.d.ts +0 -16
  187. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  188. package/dist/subscription-0d8a48ec.mjs +0 -133
  189. package/dist/subscription-41611bc2.js +0 -136
  190. package/dist/transformTRPCResponse-ff424ff4.mjs +0 -105
  191. package/src/internals/wrapCallSafe.ts +0 -19
  192. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  193. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  194. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  195. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  196. package/ws/dist/trpc-server-ws.esm.js +0 -11
  197. package/ws/index.d.ts +0 -1
  198. package/ws/index.js +0 -1
@@ -1,135 +1,17 @@
1
- import { EventEmitter } from 'events';
2
1
  import { getErrorFromUnknown } from './internals/errors';
2
+ import { Observable, Observer, observable } from './observable';
3
3
 
4
- interface SubscriptionEvents<TOutput> {
5
- data: (data: TOutput) => void;
6
- destroy: () => void;
7
- error: (error: Error) => void;
8
- }
9
- declare interface SubscriptionEventEmitter<TOutput> {
10
- on<U extends keyof SubscriptionEvents<TOutput>>(
11
- event: U,
12
- listener: SubscriptionEvents<TOutput>[U],
13
- ): this;
14
-
15
- once<U extends keyof SubscriptionEvents<TOutput>>(
16
- event: U,
17
- listener: SubscriptionEvents<TOutput>[U],
18
- ): this;
19
-
20
- emit<U extends keyof SubscriptionEvents<TOutput>>(
21
- event: U,
22
- ...args: Parameters<SubscriptionEvents<TOutput>[U]>
23
- ): boolean;
24
- }
25
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
- class SubscriptionEventEmitter<TOutput> extends EventEmitter {}
27
-
28
- type UnsubscribeFn = () => void;
29
- type EmitFn<TOutput> = (data: TOutput) => void;
30
-
31
- export type SubscriptionEmit<TOutput> = {
32
- data: EmitFn<TOutput>;
33
- error: EmitFn<Error>;
34
- };
35
- export type SubscriptionCallback<TOutput> = (
36
- emit: SubscriptionEmit<TOutput>,
37
- ) => UnsubscribeFn | Promise<UnsubscribeFn>;
38
-
39
- /**
40
- * @beta
41
- */
42
- export class Subscription<TOutput = unknown> {
43
- private readonly events: SubscriptionEventEmitter<TOutput>;
44
- private callback;
45
- private isDestroyed: boolean;
46
-
47
- constructor(callback: SubscriptionCallback<TOutput>) {
48
- this.isDestroyed = false;
49
- this.events = new SubscriptionEventEmitter<TOutput>();
50
- this.callback = callback;
51
- }
52
-
53
- public destroy() {
54
- if (this.isDestroyed) {
55
- return;
56
- }
57
- // debug('Subscription.destroy()', reason);
58
- this.isDestroyed = true;
59
- this.events.emit('destroy');
60
- this.events.removeAllListeners();
61
- }
62
-
63
- public async start() {
64
- /* istanbul ignore next */
65
- if (this.isDestroyed) {
66
- throw new Error('Called start() on a destroyed subscription');
67
- }
68
- try {
69
- const emit: SubscriptionEmit<TOutput> = {
70
- error: (err) => this.emitError(err),
71
- data: (data) => this.emitOutput(data),
72
- };
73
- const cancel = await this.callback(emit);
74
- if (
75
- this.isDestroyed
76
- /* istanbul ignore next */
77
- ) {
78
- cancel();
79
- } else {
80
- this.events.on('destroy', cancel);
81
- }
82
- } catch (
83
- cause
84
- /* istanbul ignore next */
85
- ) {
86
- this.emitError(getErrorFromUnknown(cause));
87
- }
88
- }
89
-
90
- /* istanbul ignore next */
91
- /**
92
- * @deprecated This method is just here to help with `inferSubscriptionOutput` which I can't get working without it
93
- */
94
- public output(): TOutput {
95
- throw new Error('Not in use');
96
- }
97
-
98
- /**
99
- * Emit data
100
- */
101
- emitOutput(data: TOutput) {
102
- this.events.emit('data', data);
103
- }
104
- /**
105
- * Emit error
106
- */
107
- emitError(err: Error) {
108
- this.events.emit('error', err);
109
- }
110
-
111
- on(...args: Parameters<SubscriptionEventEmitter<TOutput>['on']>) {
112
- return this.events.on(...args);
113
- }
114
- off(...args: Parameters<SubscriptionEventEmitter<TOutput>['off']>) {
115
- return this.events.off(...args);
116
- }
117
- }
118
-
119
- /**
120
- * @alpha Might be removed
121
- */
122
4
  export function subscriptionPullFactory<TOutput>(opts: {
123
5
  /**
124
6
  * The interval of how often the function should run
125
7
  */
126
8
  intervalMs: number;
127
- pull(emit: SubscriptionEmit<TOutput>): void | Promise<void>;
128
- }): Subscription<TOutput> {
9
+ pull(emit: Observer<TOutput, unknown>): void | Promise<void>;
10
+ }): Observable<TOutput, unknown> {
129
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
12
  let timer: any;
131
13
  let stopped = false;
132
- async function _pull(emit: SubscriptionEmit<TOutput>) {
14
+ async function _pull(emit: Observer<TOutput, unknown>) {
133
15
  /* istanbul ignore next */
134
16
  if (stopped) {
135
17
  return;
@@ -146,7 +28,7 @@ export function subscriptionPullFactory<TOutput>(opts: {
146
28
  }
147
29
  }
148
30
 
149
- return new Subscription<TOutput>((emit) => {
31
+ return observable<TOutput>((emit) => {
150
32
  _pull(emit).catch((err) => emit.error(getErrorFromUnknown(err)));
151
33
  return () => {
152
34
  clearTimeout(timer);
package/src/types.ts CHANGED
@@ -46,3 +46,10 @@ export type ThenArg<T> = T extends PromiseLike<infer U> ? ThenArg<U> : T;
46
46
  * @public
47
47
  */
48
48
  export type Dict<T> = Record<string, T | undefined>;
49
+
50
+ /**
51
+ * @internal
52
+ * Creates a "lower-priority" type inference.
53
+ * https://github.com/microsoft/TypeScript/issues/14829#issuecomment-322267089
54
+ */
55
+ export type InferLast<T> = T & { [K in keyof T]: T[K] };
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResponseMeta.d.ts","sourceRoot":"","sources":["../../src/http/ResponseMeta.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
@@ -1,16 +0,0 @@
1
- declare type AsyncFn<T> = () => Promise<T> | T;
2
- /**
3
- * Wrap a function in a safe wrapper that never throws
4
- * Returns a discriminated union
5
- */
6
- export declare function wrapCallSafe<T>(fn: AsyncFn<T>): Promise<{
7
- ok: true;
8
- data: T;
9
- error?: undefined;
10
- } | {
11
- ok: false;
12
- error: unknown;
13
- data?: undefined;
14
- }>;
15
- export {};
16
- //# sourceMappingURL=wrapCallSafe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrapCallSafe.d.ts","sourceRoot":"","sources":["../../src/internals/wrapCallSafe.ts"],"names":[],"mappings":"AAAA,aAAK,OAAO,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;;;;GAanD"}
@@ -1,133 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { g as getErrorFromUnknown } from './transformTRPCResponse-ff424ff4.mjs';
3
-
4
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
- class SubscriptionEventEmitter extends EventEmitter {}
6
-
7
- /**
8
- * @beta
9
- */
10
- class Subscription {
11
- constructor(callback) {
12
- this.events = void 0;
13
- this.callback = void 0;
14
- this.isDestroyed = void 0;
15
- this.isDestroyed = false;
16
- this.events = new SubscriptionEventEmitter();
17
- this.callback = callback;
18
- }
19
-
20
- destroy() {
21
- if (this.isDestroyed) {
22
- return;
23
- } // debug('Subscription.destroy()', reason);
24
-
25
-
26
- this.isDestroyed = true;
27
- this.events.emit('destroy');
28
- this.events.removeAllListeners();
29
- }
30
-
31
- async start() {
32
- /* istanbul ignore next */
33
- if (this.isDestroyed) {
34
- throw new Error('Called start() on a destroyed subscription');
35
- }
36
-
37
- try {
38
- const emit = {
39
- error: err => this.emitError(err),
40
- data: data => this.emitOutput(data)
41
- };
42
- const cancel = await this.callback(emit);
43
-
44
- if (this.isDestroyed
45
- /* istanbul ignore next */
46
- ) {
47
- cancel();
48
- } else {
49
- this.events.on('destroy', cancel);
50
- }
51
- } catch (cause
52
- /* istanbul ignore next */
53
- ) {
54
- this.emitError(getErrorFromUnknown(cause));
55
- }
56
- }
57
- /* istanbul ignore next */
58
-
59
- /**
60
- * @deprecated This method is just here to help with `inferSubscriptionOutput` which I can't get working without it
61
- */
62
-
63
-
64
- output() {
65
- throw new Error('Not in use');
66
- }
67
- /**
68
- * Emit data
69
- */
70
-
71
-
72
- emitOutput(data) {
73
- this.events.emit('data', data);
74
- }
75
- /**
76
- * Emit error
77
- */
78
-
79
-
80
- emitError(err) {
81
- this.events.emit('error', err);
82
- }
83
-
84
- on(...args) {
85
- return this.events.on(...args);
86
- }
87
-
88
- off(...args) {
89
- return this.events.off(...args);
90
- }
91
-
92
- }
93
- /**
94
- * @alpha Might be removed
95
- */
96
-
97
- function subscriptionPullFactory(opts) {
98
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
- let timer;
100
- let stopped = false;
101
-
102
- async function _pull(emit) {
103
- /* istanbul ignore next */
104
- if (stopped) {
105
- return;
106
- }
107
-
108
- try {
109
- await opts.pull(emit);
110
- } catch (err
111
- /* istanbul ignore next */
112
- ) {
113
- emit.error(getErrorFromUnknown(err));
114
- }
115
- /* istanbul ignore else */
116
-
117
-
118
- if (!stopped) {
119
- timer = setTimeout(() => _pull(emit), opts.intervalMs);
120
- }
121
- }
122
-
123
- return new Subscription(emit => {
124
- _pull(emit).catch(err => emit.error(getErrorFromUnknown(err)));
125
-
126
- return () => {
127
- clearTimeout(timer);
128
- stopped = true;
129
- };
130
- });
131
- }
132
-
133
- export { Subscription as S, subscriptionPullFactory as s };
@@ -1,136 +0,0 @@
1
- 'use strict';
2
-
3
- var events = require('events');
4
- var transformTRPCResponse = require('./transformTRPCResponse-43a869de.js');
5
-
6
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
- class SubscriptionEventEmitter extends events.EventEmitter {}
8
-
9
- /**
10
- * @beta
11
- */
12
- class Subscription {
13
- constructor(callback) {
14
- this.events = void 0;
15
- this.callback = void 0;
16
- this.isDestroyed = void 0;
17
- this.isDestroyed = false;
18
- this.events = new SubscriptionEventEmitter();
19
- this.callback = callback;
20
- }
21
-
22
- destroy() {
23
- if (this.isDestroyed) {
24
- return;
25
- } // debug('Subscription.destroy()', reason);
26
-
27
-
28
- this.isDestroyed = true;
29
- this.events.emit('destroy');
30
- this.events.removeAllListeners();
31
- }
32
-
33
- async start() {
34
- /* istanbul ignore next */
35
- if (this.isDestroyed) {
36
- throw new Error('Called start() on a destroyed subscription');
37
- }
38
-
39
- try {
40
- const emit = {
41
- error: err => this.emitError(err),
42
- data: data => this.emitOutput(data)
43
- };
44
- const cancel = await this.callback(emit);
45
-
46
- if (this.isDestroyed
47
- /* istanbul ignore next */
48
- ) {
49
- cancel();
50
- } else {
51
- this.events.on('destroy', cancel);
52
- }
53
- } catch (cause
54
- /* istanbul ignore next */
55
- ) {
56
- this.emitError(transformTRPCResponse.getErrorFromUnknown(cause));
57
- }
58
- }
59
- /* istanbul ignore next */
60
-
61
- /**
62
- * @deprecated This method is just here to help with `inferSubscriptionOutput` which I can't get working without it
63
- */
64
-
65
-
66
- output() {
67
- throw new Error('Not in use');
68
- }
69
- /**
70
- * Emit data
71
- */
72
-
73
-
74
- emitOutput(data) {
75
- this.events.emit('data', data);
76
- }
77
- /**
78
- * Emit error
79
- */
80
-
81
-
82
- emitError(err) {
83
- this.events.emit('error', err);
84
- }
85
-
86
- on(...args) {
87
- return this.events.on(...args);
88
- }
89
-
90
- off(...args) {
91
- return this.events.off(...args);
92
- }
93
-
94
- }
95
- /**
96
- * @alpha Might be removed
97
- */
98
-
99
- function subscriptionPullFactory(opts) {
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- let timer;
102
- let stopped = false;
103
-
104
- async function _pull(emit) {
105
- /* istanbul ignore next */
106
- if (stopped) {
107
- return;
108
- }
109
-
110
- try {
111
- await opts.pull(emit);
112
- } catch (err
113
- /* istanbul ignore next */
114
- ) {
115
- emit.error(transformTRPCResponse.getErrorFromUnknown(err));
116
- }
117
- /* istanbul ignore else */
118
-
119
-
120
- if (!stopped) {
121
- timer = setTimeout(() => _pull(emit), opts.intervalMs);
122
- }
123
- }
124
-
125
- return new Subscription(emit => {
126
- _pull(emit).catch(err => emit.error(transformTRPCResponse.getErrorFromUnknown(err)));
127
-
128
- return () => {
129
- clearTimeout(timer);
130
- stopped = true;
131
- };
132
- });
133
- }
134
-
135
- exports.Subscription = Subscription;
136
- exports.subscriptionPullFactory = subscriptionPullFactory;
@@ -1,105 +0,0 @@
1
- function getMessageFromUnkownError(err, fallback) {
2
- if (typeof err === 'string') {
3
- return err;
4
- }
5
-
6
- if (err instanceof Error && typeof err.message === 'string') {
7
- return err.message;
8
- }
9
-
10
- return fallback;
11
- }
12
- function getErrorFromUnknown(cause) {
13
- // this should ideally be an `instanceof TRPCError` but for some reason that isn't working
14
- // ref https://github.com/trpc/trpc/issues/331
15
- if (cause instanceof Error && cause.name === 'TRPCError') {
16
- return cause;
17
- }
18
-
19
- const err = new TRPCError({
20
- code: 'INTERNAL_SERVER_ERROR',
21
- cause
22
- }); // take stack trace from cause
23
-
24
- if (cause instanceof Error) {
25
- err.stack = cause.stack;
26
- }
27
-
28
- return err;
29
- }
30
-
31
- class TRPCError extends Error {
32
- constructor(opts) {
33
- var _opts$message;
34
-
35
- const cause = opts.cause;
36
- const code = opts.code;
37
- const message = (_opts$message = opts.message) !== null && _opts$message !== void 0 ? _opts$message : getMessageFromUnkownError(cause, code); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
38
- // @ts-ignore https://github.com/tc39/proposal-error-cause
39
-
40
- super(message, {
41
- cause
42
- });
43
- this.cause = void 0;
44
- this.code = void 0;
45
- this.code = code;
46
- this.cause = cause;
47
- this.name = 'TRPCError';
48
- Object.setPrototypeOf(this, new.target.prototype);
49
- }
50
-
51
- }
52
-
53
- async function callProcedure(opts) {
54
- const {
55
- type,
56
- path,
57
- input
58
- } = opts;
59
- const caller = opts.router.createCaller(opts.ctx);
60
-
61
- if (type === 'query') {
62
- return caller.query(path, input);
63
- }
64
-
65
- if (type === 'mutation') {
66
- return caller.mutation(path, input);
67
- }
68
-
69
- if (type === 'subscription') {
70
- const sub = await caller.subscription(path, input);
71
- return sub;
72
- }
73
- /* istanbul ignore next */
74
-
75
-
76
- throw new Error(`Unknown procedure type ${type}`);
77
- }
78
-
79
- function transformTRPCResponseItem(router, item) {
80
- if ('error' in item) {
81
- return { ...item,
82
- error: router._def.transformer.output.serialize(item.error)
83
- };
84
- }
85
-
86
- if (item.result.type !== 'data') {
87
- return item;
88
- }
89
-
90
- return { ...item,
91
- result: { ...item.result,
92
- data: router._def.transformer.output.serialize(item.result.data)
93
- }
94
- };
95
- }
96
- /**
97
- * Takes a unserialized `TRPCResponse` and serializes it with the router's transformers
98
- **/
99
-
100
-
101
- function transformTRPCResponse(router, itemOrItems) {
102
- return Array.isArray(itemOrItems) ? itemOrItems.map(item => transformTRPCResponseItem(router, item)) : transformTRPCResponseItem(router, itemOrItems);
103
- }
104
-
105
- export { TRPCError as T, callProcedure as c, getErrorFromUnknown as g, transformTRPCResponse as t };
@@ -1,19 +0,0 @@
1
- type AsyncFn<T> = () => Promise<T> | T;
2
- /**
3
- * Wrap a function in a safe wrapper that never throws
4
- * Returns a discriminated union
5
- */
6
- export async function wrapCallSafe<T>(fn: AsyncFn<T>) {
7
- try {
8
- const data = await fn();
9
- return {
10
- ok: true as const,
11
- data,
12
- };
13
- } catch (cause) {
14
- return {
15
- ok: false as const,
16
- error: cause,
17
- };
18
- }
19
- }
@@ -1 +0,0 @@
1
- export * from "../../dist/declarations/src/ws/index";
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var adapters_ws_dist_trpcServerAdaptersWs = require('../../adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js');
6
- require('../../dist/transformTRPCResponse-8248515e.cjs.dev.js');
7
- require('../../dist/subscription-9e007280.cjs.dev.js');
8
- require('events');
9
-
10
- /**
11
- * @deprecated replace your import with `@trpc/server/adapters/ws`
12
- */
13
- const applyWSSHandler = adapters_ws_dist_trpcServerAdaptersWs.applyWSSHandler;
14
-
15
- exports.applyWSSHandler = applyWSSHandler;
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- if (process.env.NODE_ENV === "production") {
4
- module.exports = require("./trpc-server-ws.cjs.prod.js");
5
- } else {
6
- module.exports = require("./trpc-server-ws.cjs.dev.js");
7
- }
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var adapters_ws_dist_trpcServerAdaptersWs = require('../../adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js');
6
- require('../../dist/transformTRPCResponse-dcbf66c5.cjs.prod.js');
7
- require('../../dist/subscription-12fb50be.cjs.prod.js');
8
- require('events');
9
-
10
- /**
11
- * @deprecated replace your import with `@trpc/server/adapters/ws`
12
- */
13
- const applyWSSHandler = adapters_ws_dist_trpcServerAdaptersWs.applyWSSHandler;
14
-
15
- exports.applyWSSHandler = applyWSSHandler;
@@ -1,11 +0,0 @@
1
- import { applyWSSHandler as applyWSSHandler$1 } from '../../adapters/ws/dist/trpc-server-adapters-ws.esm.js';
2
- import '../../dist/transformTRPCResponse-f73dc4a2.esm.js';
3
- import '../../dist/subscription-a81120d6.esm.js';
4
- import 'events';
5
-
6
- /**
7
- * @deprecated replace your import with `@trpc/server/adapters/ws`
8
- */
9
- const applyWSSHandler = applyWSSHandler$1;
10
-
11
- export { applyWSSHandler };
package/ws/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from '../dist/ws';
package/ws/index.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('../dist/ws/index');