@trpc/server 10.0.0-alpha.44 → 10.0.0-alpha.47

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 (146) hide show
  1. package/adapters/aws-lambda/index.js +1 -1
  2. package/adapters/fastify/index.js +1 -1
  3. package/adapters/fetch/index.js +1 -1
  4. package/adapters/node-http/index.js +1 -1
  5. package/dist/TRPCError-6f61762c.mjs +54 -0
  6. package/dist/TRPCError-9c7830b4.js +58 -0
  7. package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
  8. package/dist/adapters/aws-lambda/index.js +119 -156
  9. package/dist/adapters/aws-lambda/index.mjs +119 -156
  10. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
  11. package/dist/adapters/express.d.ts.map +1 -1
  12. package/dist/adapters/express.js +14 -14
  13. package/dist/adapters/express.mjs +14 -14
  14. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  15. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  16. package/dist/adapters/fastify/index.d.ts.map +1 -1
  17. package/dist/adapters/fastify/index.js +68 -89
  18. package/dist/adapters/fastify/index.mjs +68 -89
  19. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  20. package/dist/adapters/fetch/index.d.ts.map +1 -1
  21. package/dist/adapters/fetch/index.js +45 -57
  22. package/dist/adapters/fetch/index.mjs +45 -57
  23. package/dist/adapters/fetch/types.d.ts.map +1 -1
  24. package/dist/adapters/lambda/index.d.ts.map +1 -1
  25. package/dist/adapters/next.d.ts.map +1 -1
  26. package/dist/adapters/next.js +42 -46
  27. package/dist/adapters/next.mjs +42 -46
  28. package/dist/adapters/node-http/index.d.ts.map +1 -1
  29. package/dist/adapters/node-http/index.js +5 -5
  30. package/dist/adapters/node-http/index.mjs +5 -5
  31. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  32. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  33. package/dist/adapters/node-http/types.d.ts.map +1 -1
  34. package/dist/adapters/standalone.d.ts.map +1 -1
  35. package/dist/adapters/standalone.js +30 -32
  36. package/dist/adapters/standalone.mjs +30 -32
  37. package/dist/adapters/ws.d.ts.map +1 -1
  38. package/dist/adapters/ws.js +272 -352
  39. package/dist/adapters/ws.mjs +272 -352
  40. package/dist/codes-1c24d919.js +47 -0
  41. package/dist/codes-aaa7d554.mjs +44 -0
  42. package/dist/core/index.d.ts.map +1 -1
  43. package/dist/core/initTRPC.d.ts.map +1 -1
  44. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -1
  45. package/dist/core/internals/config.d.ts.map +1 -1
  46. package/dist/core/internals/getParseFn.d.ts.map +1 -1
  47. package/dist/core/internals/mergeRouters.d.ts.map +1 -1
  48. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -1
  49. package/dist/core/internals/omitPrototype.d.ts.map +1 -1
  50. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -1
  51. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  52. package/dist/core/internals/utils.d.ts.map +1 -1
  53. package/dist/core/middleware.d.ts.map +1 -1
  54. package/dist/core/parser.d.ts.map +1 -1
  55. package/dist/core/procedure.d.ts.map +1 -1
  56. package/dist/core/router.d.ts.map +1 -1
  57. package/dist/core/types.d.ts.map +1 -1
  58. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -1
  59. package/dist/deprecated/internals/middlewares.d.ts.map +1 -1
  60. package/dist/deprecated/internals/procedure.d.ts.map +1 -1
  61. package/dist/deprecated/interop.d.ts.map +1 -1
  62. package/dist/deprecated/router.d.ts.map +1 -1
  63. package/dist/error/TRPCError.d.ts.map +1 -1
  64. package/dist/error/formatter.d.ts.map +1 -1
  65. package/dist/error/utils.d.ts.map +1 -1
  66. package/dist/http/index.d.ts.map +1 -1
  67. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  68. package/dist/http/internals/types.d.ts.map +1 -1
  69. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  70. package/dist/http/types.d.ts.map +1 -1
  71. package/dist/index-47817162.mjs +26 -0
  72. package/dist/index-9d687d33.js +28 -0
  73. package/dist/index.js +59 -95
  74. package/dist/index.mjs +60 -96
  75. package/dist/internals/invert.d.ts.map +1 -1
  76. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  77. package/dist/internals/types.d.ts.map +1 -1
  78. package/dist/nodeHTTPRequestHandler-7c2a3037.js +82 -0
  79. package/dist/nodeHTTPRequestHandler-b37609f7.mjs +80 -0
  80. package/dist/observable/index.d.ts.map +1 -1
  81. package/dist/observable/index.js +125 -172
  82. package/dist/observable/index.mjs +125 -172
  83. package/dist/observable/internals/identity.d.ts.map +1 -1
  84. package/dist/observable/internals/observableToPromise.d.ts.map +1 -1
  85. package/dist/observable/internals/pipe.d.ts.map +1 -1
  86. package/dist/observable/observable.d.ts.map +1 -1
  87. package/dist/observable/operators/index.d.ts.map +1 -1
  88. package/dist/observable/operators/map.d.ts.map +1 -1
  89. package/dist/observable/operators/share.d.ts.map +1 -1
  90. package/dist/observable/operators/tap.d.ts.map +1 -1
  91. package/dist/observable/types.d.ts.map +1 -1
  92. package/dist/observable-b651bf11.js +84 -0
  93. package/dist/observable-e129ac9d.mjs +81 -0
  94. package/dist/resolveHTTPResponse-83703ee8.mjs +251 -0
  95. package/dist/resolveHTTPResponse-b486996d.js +255 -0
  96. package/dist/router-8372703e.js +886 -0
  97. package/dist/router-f21b6d06.mjs +876 -0
  98. package/dist/rpc/codes.d.ts.map +1 -1
  99. package/dist/rpc/envelopes.d.ts.map +1 -1
  100. package/dist/rpc/index.d.ts.map +1 -1
  101. package/dist/rpc/index.js +3 -7
  102. package/dist/rpc/index.mjs +1 -1
  103. package/dist/rpc/internals/invert.d.ts.map +1 -1
  104. package/dist/shared/createProxy/index.d.ts.map +1 -1
  105. package/dist/shared/index.d.ts.map +1 -1
  106. package/dist/shared/index.js +1 -1
  107. package/dist/shared/index.mjs +1 -1
  108. package/dist/subscription.js +24 -34
  109. package/dist/subscription.mjs +24 -34
  110. package/dist/transformTRPCResponse-11ac69cc.js +27 -0
  111. package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
  112. package/observable/index.js +1 -1
  113. package/package.json +12 -16
  114. package/rpc/index.js +1 -1
  115. package/shared/index.js +1 -1
  116. package/subscription/index.d.ts +1 -0
  117. package/subscription/index.js +1 -0
  118. package/dist/TRPCError-9050a68d.js +0 -69
  119. package/dist/TRPCError-97212592.mjs +0 -65
  120. package/dist/adapters/aws-lambda/index.ts.js +0 -1
  121. package/dist/adapters/express.ts.js +0 -1
  122. package/dist/adapters/fastify/index.ts.js +0 -1
  123. package/dist/adapters/fetch/index.ts.js +0 -1
  124. package/dist/adapters/next.ts.js +0 -1
  125. package/dist/adapters/node-http/index.ts.js +0 -1
  126. package/dist/adapters/standalone.ts.js +0 -1
  127. package/dist/adapters/ws.ts.js +0 -1
  128. package/dist/envelopes-2ae27c9f.js +0 -85
  129. package/dist/envelopes-b9f49d4d.mjs +0 -82
  130. package/dist/index-1a25ccbd.js +0 -33
  131. package/dist/index-a3bd54c7.mjs +0 -31
  132. package/dist/index.ts.js +0 -1
  133. package/dist/nodeHTTPRequestHandler-bee7aacc.js +0 -107
  134. package/dist/nodeHTTPRequestHandler-f1656eba.mjs +0 -105
  135. package/dist/observable/index.ts.js +0 -1
  136. package/dist/observable-341a0506.js +0 -109
  137. package/dist/observable-cfedfa30.mjs +0 -106
  138. package/dist/resolveHTTPResponse-455f1e51.mjs +0 -293
  139. package/dist/resolveHTTPResponse-5d90abc5.js +0 -297
  140. package/dist/router-4e50a6ac.js +0 -1104
  141. package/dist/router-a3db8f3a.mjs +0 -1094
  142. package/dist/rpc/index.ts.js +0 -1
  143. package/dist/shared/index.ts.js +0 -1
  144. package/dist/subscription.ts.js +0 -1
  145. package/dist/transformTRPCResponse-0c261655.js +0 -29
  146. package/dist/transformTRPCResponse-747b9a68.mjs +0 -27
@@ -2,378 +2,298 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var TRPCError = require('../TRPCError-9050a68d.js');
6
- var transformTRPCResponse = require('../transformTRPCResponse-0c261655.js');
7
- var observable = require('../observable-341a0506.js');
5
+ var TRPCError = require('../TRPCError-9c7830b4.js');
6
+ var transformTRPCResponse = require('../transformTRPCResponse-11ac69cc.js');
7
+ var observable = require('../observable-b651bf11.js');
8
8
 
9
- /* istanbul ignore next */
10
- function assertIsObject(obj) {
11
- if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
12
- throw new Error('Not an object');
13
- }
14
- }
15
- /* istanbul ignore next */
16
-
17
-
18
- function assertIsProcedureType(obj) {
19
- if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
20
- throw new Error('Invalid procedure type');
21
- }
9
+ /* istanbul ignore next */ function assertIsObject(obj) {
10
+ if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
11
+ throw new Error('Not an object');
12
+ }
22
13
  }
23
- /* istanbul ignore next */
24
-
25
-
26
- function assertIsRequestId(obj) {
27
- if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
28
- throw new Error('Invalid request id');
29
- }
14
+ /* istanbul ignore next */ function assertIsProcedureType(obj) {
15
+ if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
16
+ throw new Error('Invalid procedure type');
17
+ }
30
18
  }
31
- /* istanbul ignore next */
32
-
33
-
34
- function assertIsString(obj) {
35
- if (typeof obj !== 'string') {
36
- throw new Error('Invalid string');
37
- }
19
+ /* istanbul ignore next */ function assertIsRequestId(obj) {
20
+ if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
21
+ throw new Error('Invalid request id');
22
+ }
38
23
  }
39
- /* istanbul ignore next */
40
-
41
-
42
- function assertIsJSONRPC2OrUndefined(obj) {
43
- if (typeof obj !== 'undefined' && obj !== '2.0') {
44
- throw new Error('Must be JSONRPC 2.0');
45
- }
24
+ /* istanbul ignore next */ function assertIsString(obj) {
25
+ if (typeof obj !== 'string') {
26
+ throw new Error('Invalid string');
27
+ }
46
28
  }
47
-
48
- function parseMessage(obj, transformer) {
49
- assertIsObject(obj);
50
- const {
51
- method,
52
- params,
53
- id,
54
- jsonrpc
55
- } = obj;
56
- assertIsRequestId(id);
57
- assertIsJSONRPC2OrUndefined(jsonrpc);
58
-
59
- if (method === 'subscription.stop') {
60
- return {
61
- id,
62
- jsonrpc,
63
- method
64
- };
65
- }
66
-
67
- assertIsProcedureType(method);
68
- assertIsObject(params);
69
- const {
70
- input: rawInput,
71
- path
72
- } = params;
73
- assertIsString(path);
74
- const input = transformer.input.deserialize(rawInput);
75
- return {
76
- id,
77
- jsonrpc,
78
- method,
79
- params: {
80
- input,
81
- path
29
+ /* istanbul ignore next */ function assertIsJSONRPC2OrUndefined(obj) {
30
+ if (typeof obj !== 'undefined' && obj !== '2.0') {
31
+ throw new Error('Must be JSONRPC 2.0');
82
32
  }
83
- };
84
33
  }
85
- /**
86
- * Web socket server handler
87
- */
88
-
89
-
90
- function applyWSSHandler(opts) {
91
- const {
92
- wss,
93
- createContext,
94
- router
95
- } = opts;
96
- const {
97
- transformer
98
- } = router._def;
99
- wss.on('connection', async (client, req) => {
100
- const clientSubscriptions = new Map();
101
-
102
- function respond(untransformedJSON) {
103
- client.send(JSON.stringify(transformTRPCResponse.transformTRPCResponse(router, untransformedJSON)));
34
+ function parseMessage(obj, transformer) {
35
+ assertIsObject(obj);
36
+ const { method , params , id , jsonrpc } = obj;
37
+ assertIsRequestId(id);
38
+ assertIsJSONRPC2OrUndefined(jsonrpc);
39
+ if (method === 'subscription.stop') {
40
+ return {
41
+ id,
42
+ jsonrpc,
43
+ method
44
+ };
104
45
  }
105
-
106
- function stopSubscription(subscription, {
107
- id,
108
- jsonrpc
109
- }) {
110
- subscription.unsubscribe();
111
- respond({
46
+ assertIsProcedureType(method);
47
+ assertIsObject(params);
48
+ const { input: rawInput , path } = params;
49
+ assertIsString(path);
50
+ const input = transformer.input.deserialize(rawInput);
51
+ return {
112
52
  id,
113
53
  jsonrpc,
114
- result: {
115
- type: 'stopped'
116
- }
117
- });
118
- }
119
-
120
- const ctxPromise = createContext === null || createContext === void 0 ? void 0 : createContext({
121
- req,
122
- res: client
123
- });
124
- let ctx = undefined;
125
-
126
- async function handleRequest(msg) {
127
- const {
128
- id,
129
- jsonrpc
130
- } = msg;
131
- /* istanbul ignore next */
132
-
133
- if (id === null) {
134
- throw new TRPCError.TRPCError({
135
- code: 'BAD_REQUEST',
136
- message: '`id` is required'
137
- });
138
- }
139
-
140
- if (msg.method === 'subscription.stop') {
141
- const sub = clientSubscriptions.get(id);
142
-
143
- if (sub) {
144
- stopSubscription(sub, {
145
- id,
146
- jsonrpc
147
- });
54
+ method,
55
+ params: {
56
+ input,
57
+ path
148
58
  }
149
-
150
- clientSubscriptions.delete(id);
151
- return;
152
- }
153
-
154
- const {
155
- path,
156
- input
157
- } = msg.params;
158
- const type = msg.method;
159
-
160
- try {
161
- await ctxPromise; // asserts context has been set
162
-
163
- const caller = router.createCaller(ctx);
164
- const result = await caller[type](path, input);
165
-
166
- if (type === 'subscription') {
167
- if (!observable.isObservable(result)) {
168
- throw new TRPCError.TRPCError({
169
- message: `Subscription ${path} did not return an observable`,
170
- code: 'INTERNAL_SERVER_ERROR'
171
- });
172
- }
173
- } else {
174
- // send the value as data if the method is not a subscription
175
- respond({
176
- id,
177
- jsonrpc,
178
- result: {
179
- type: 'data',
180
- data: result
181
- }
182
- });
183
- return;
59
+ };
60
+ }
61
+ function applyWSSHandler(opts) {
62
+ const { wss , createContext , router } = opts;
63
+ const { transformer } = router._def;
64
+ wss.on('connection', async (client, req)=>{
65
+ const clientSubscriptions = new Map();
66
+ function respond(untransformedJSON) {
67
+ client.send(JSON.stringify(transformTRPCResponse.transformTRPCResponse(router, untransformedJSON)));
184
68
  }
185
-
186
- const observable$1 = result;
187
- const sub = observable$1.subscribe({
188
- next(data) {
189
- respond({
190
- id,
191
- jsonrpc,
192
- result: {
193
- type: 'data',
194
- data
195
- }
196
- });
197
- },
198
-
199
- error(err) {
200
- var _opts$onError;
201
-
202
- const error = TRPCError.getErrorFromUnknown(err);
203
- (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, {
204
- error,
205
- path,
206
- type,
207
- ctx,
208
- req,
209
- input
210
- });
211
- respond({
212
- id,
213
- jsonrpc,
214
- error: router.getErrorShape({
215
- error,
216
- type,
217
- path,
218
- input,
219
- ctx
220
- })
221
- });
222
- },
223
-
224
- complete() {
69
+ function stopSubscription(subscription, { id , jsonrpc }) {
70
+ subscription.unsubscribe();
225
71
  respond({
226
- id,
227
- jsonrpc,
228
- result: {
229
- type: 'stopped'
230
- }
72
+ id,
73
+ jsonrpc,
74
+ result: {
75
+ type: 'stopped'
76
+ }
231
77
  });
232
- }
233
-
234
- });
235
- /* istanbul ignore next */
236
-
237
- if (client.readyState !== client.OPEN) {
238
- // if the client got disconnected whilst initializing the subscription
239
- // no need to send stopped message if the client is disconnected
240
- sub.unsubscribe();
241
- return;
242
- }
243
- /* istanbul ignore next */
244
-
245
-
246
- if (clientSubscriptions.has(id)) {
247
- // duplicate request ids for client
248
- stopSubscription(sub, {
249
- id,
250
- jsonrpc
251
- });
252
- throw new TRPCError.TRPCError({
253
- message: `Duplicate id ${id}`,
254
- code: 'BAD_REQUEST'
255
- });
256
78
  }
257
-
258
- clientSubscriptions.set(id, sub);
259
- respond({
260
- id,
261
- jsonrpc,
262
- result: {
263
- type: 'started'
264
- }
265
- });
266
- } catch (cause)
267
- /* istanbul ignore next */
268
- {
269
- var _opts$onError2;
270
-
271
- // procedure threw an error
272
- const error = TRPCError.getErrorFromUnknown(cause);
273
- (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, {
274
- error,
275
- path,
276
- type,
277
- ctx,
278
- req,
279
- input
280
- });
281
- respond({
282
- id,
283
- jsonrpc,
284
- error: router.getErrorShape({
285
- error,
286
- type,
287
- path,
288
- input,
289
- ctx
290
- })
79
+ const ctxPromise = createContext?.({
80
+ req,
81
+ res: client
291
82
  });
292
- }
293
- }
294
-
295
- client.on('message', async message => {
296
- try {
297
- const msgJSON = JSON.parse(message.toString());
298
- const msgs = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
299
- const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
300
- await Promise.all(promises);
301
- } catch (cause) {
302
- const error = new TRPCError.TRPCError({
303
- code: 'PARSE_ERROR',
304
- cause: TRPCError.getCauseFromUnknown(cause)
83
+ let ctx = undefined;
84
+ async function handleRequest(msg) {
85
+ const { id , jsonrpc } = msg;
86
+ /* istanbul ignore next */ if (id === null) {
87
+ throw new TRPCError.TRPCError({
88
+ code: 'BAD_REQUEST',
89
+ message: '`id` is required'
90
+ });
91
+ }
92
+ if (msg.method === 'subscription.stop') {
93
+ const sub = clientSubscriptions.get(id);
94
+ if (sub) {
95
+ stopSubscription(sub, {
96
+ id,
97
+ jsonrpc
98
+ });
99
+ }
100
+ clientSubscriptions.delete(id);
101
+ return;
102
+ }
103
+ const { path , input } = msg.params;
104
+ const type = msg.method;
105
+ try {
106
+ await ctxPromise; // asserts context has been set
107
+ const caller = router.createCaller(ctx);
108
+ const result = await caller[type](path, input);
109
+ if (type === 'subscription') {
110
+ if (!observable.isObservable(result)) {
111
+ throw new TRPCError.TRPCError({
112
+ message: `Subscription ${path} did not return an observable`,
113
+ code: 'INTERNAL_SERVER_ERROR'
114
+ });
115
+ }
116
+ } else {
117
+ // send the value as data if the method is not a subscription
118
+ respond({
119
+ id,
120
+ jsonrpc,
121
+ result: {
122
+ type: 'data',
123
+ data: result
124
+ }
125
+ });
126
+ return;
127
+ }
128
+ const observable$1 = result;
129
+ const sub1 = observable$1.subscribe({
130
+ next (data) {
131
+ respond({
132
+ id,
133
+ jsonrpc,
134
+ result: {
135
+ type: 'data',
136
+ data
137
+ }
138
+ });
139
+ },
140
+ error (err) {
141
+ const error = TRPCError.getErrorFromUnknown(err);
142
+ opts.onError?.({
143
+ error,
144
+ path,
145
+ type,
146
+ ctx,
147
+ req,
148
+ input
149
+ });
150
+ respond({
151
+ id,
152
+ jsonrpc,
153
+ error: router.getErrorShape({
154
+ error,
155
+ type,
156
+ path,
157
+ input,
158
+ ctx
159
+ })
160
+ });
161
+ },
162
+ complete () {
163
+ respond({
164
+ id,
165
+ jsonrpc,
166
+ result: {
167
+ type: 'stopped'
168
+ }
169
+ });
170
+ }
171
+ });
172
+ /* istanbul ignore next */ if (client.readyState !== client.OPEN) {
173
+ // if the client got disconnected whilst initializing the subscription
174
+ // no need to send stopped message if the client is disconnected
175
+ sub1.unsubscribe();
176
+ return;
177
+ }
178
+ /* istanbul ignore next */ if (clientSubscriptions.has(id)) {
179
+ // duplicate request ids for client
180
+ stopSubscription(sub1, {
181
+ id,
182
+ jsonrpc
183
+ });
184
+ throw new TRPCError.TRPCError({
185
+ message: `Duplicate id ${id}`,
186
+ code: 'BAD_REQUEST'
187
+ });
188
+ }
189
+ clientSubscriptions.set(id, sub1);
190
+ respond({
191
+ id,
192
+ jsonrpc,
193
+ result: {
194
+ type: 'started'
195
+ }
196
+ });
197
+ } catch (cause) /* istanbul ignore next */ {
198
+ // procedure threw an error
199
+ const error = TRPCError.getErrorFromUnknown(cause);
200
+ opts.onError?.({
201
+ error,
202
+ path,
203
+ type,
204
+ ctx,
205
+ req,
206
+ input
207
+ });
208
+ respond({
209
+ id,
210
+ jsonrpc,
211
+ error: router.getErrorShape({
212
+ error,
213
+ type,
214
+ path,
215
+ input,
216
+ ctx
217
+ })
218
+ });
219
+ }
220
+ }
221
+ client.on('message', async (message)=>{
222
+ try {
223
+ const msgJSON = JSON.parse(message.toString());
224
+ const msgs = Array.isArray(msgJSON) ? msgJSON : [
225
+ msgJSON
226
+ ];
227
+ const promises = msgs.map((raw)=>parseMessage(raw, transformer)).map(handleRequest);
228
+ await Promise.all(promises);
229
+ } catch (cause) {
230
+ const error = new TRPCError.TRPCError({
231
+ code: 'PARSE_ERROR',
232
+ cause: TRPCError.getCauseFromUnknown(cause)
233
+ });
234
+ respond({
235
+ id: null,
236
+ error: router.getErrorShape({
237
+ error,
238
+ type: 'unknown',
239
+ path: undefined,
240
+ input: undefined,
241
+ ctx: undefined
242
+ })
243
+ });
244
+ }
305
245
  });
306
- respond({
307
- id: null,
308
- error: router.getErrorShape({
309
- error,
310
- type: 'unknown',
311
- path: undefined,
312
- input: undefined,
313
- ctx: undefined
314
- })
246
+ client.once('close', ()=>{
247
+ for (const sub of clientSubscriptions.values()){
248
+ sub.unsubscribe();
249
+ }
250
+ clientSubscriptions.clear();
315
251
  });
316
- }
317
- });
318
- client.once('close', () => {
319
- for (const sub of clientSubscriptions.values()) {
320
- sub.unsubscribe();
321
- }
322
-
323
- clientSubscriptions.clear();
252
+ async function createContextAsync() {
253
+ try {
254
+ ctx = await ctxPromise;
255
+ } catch (cause) {
256
+ const error = TRPCError.getErrorFromUnknown(cause);
257
+ opts.onError?.({
258
+ error,
259
+ path: undefined,
260
+ type: 'unknown',
261
+ ctx,
262
+ req,
263
+ input: undefined
264
+ });
265
+ respond({
266
+ id: null,
267
+ error: router.getErrorShape({
268
+ error,
269
+ type: 'unknown',
270
+ path: undefined,
271
+ input: undefined,
272
+ ctx
273
+ })
274
+ });
275
+ // close in next tick
276
+ (global.setImmediate ?? global.setTimeout)(()=>{
277
+ client.close();
278
+ });
279
+ }
280
+ }
281
+ await createContextAsync();
324
282
  });
325
-
326
- async function createContextAsync() {
327
- try {
328
- ctx = await ctxPromise;
329
- } catch (cause) {
330
- var _opts$onError3, _global$setImmediate;
331
-
332
- const error = TRPCError.getErrorFromUnknown(cause);
333
- (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
334
- error,
335
- path: undefined,
336
- type: 'unknown',
337
- ctx,
338
- req,
339
- input: undefined
340
- });
341
- respond({
342
- id: null,
343
- error: router.getErrorShape({
344
- error,
345
- type: 'unknown',
346
- path: undefined,
347
- input: undefined,
348
- ctx
349
- })
350
- }); // close in next tick
351
-
352
- ((_global$setImmediate = global.setImmediate) !== null && _global$setImmediate !== void 0 ? _global$setImmediate : global.setTimeout)(() => {
353
- client.close();
354
- });
355
- }
356
- }
357
-
358
- await createContextAsync();
359
- });
360
- return {
361
- broadcastReconnectNotification: () => {
362
- const response = {
363
- id: null,
364
- method: 'reconnect'
365
- };
366
- const data = JSON.stringify(response);
367
-
368
- for (const client of wss.clients) {
369
- if (client.readyState === 1
370
- /* ws.OPEN */
371
- ) {
372
- client.send(data);
283
+ return {
284
+ broadcastReconnectNotification: ()=>{
285
+ const response = {
286
+ id: null,
287
+ method: 'reconnect'
288
+ };
289
+ const data = JSON.stringify(response);
290
+ for (const client of wss.clients){
291
+ if (client.readyState === 1 /* ws.OPEN */ ) {
292
+ client.send(data);
293
+ }
294
+ }
373
295
  }
374
- }
375
- }
376
- };
296
+ };
377
297
  }
378
298
 
379
299
  exports.applyWSSHandler = applyWSSHandler;