trpc-uwebsockets 11.2.0 → 11.4.1

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.
@@ -108,12 +108,14 @@ function createBody(res, opts) {
108
108
  });
109
109
  res.onAborted(() => {
110
110
  if (!hasClosed) {
111
+ res.aborted = true;
111
112
  hasClosed = true;
112
113
  controller.error(new server_1.TRPCError({ code: 'CLIENT_CLOSED_REQUEST' }));
113
114
  }
114
115
  });
115
116
  },
116
117
  cancel() {
118
+ res.aborted = true;
117
119
  res.cork(() => {
118
120
  res.close();
119
121
  });
@@ -141,28 +143,42 @@ async function uWsSendResponseStreamed(fetchRes, res) {
141
143
  res.writeHeader(key, value);
142
144
  });
143
145
  });
144
- if (fetchRes.body) {
145
- const reader = fetchRes.body.getReader();
146
+ if (!fetchRes.body) {
147
+ if (!res.aborted) {
148
+ res.cork(() => {
149
+ res.end();
150
+ });
151
+ }
152
+ return;
153
+ }
154
+ const reader = fetchRes.body.getReader();
155
+ try {
146
156
  while (true) {
157
+ if (res.aborted)
158
+ break;
147
159
  const { value, done } = await reader.read();
148
- if (res.aborted) {
149
- return;
150
- }
160
+ if (res.aborted)
161
+ break;
151
162
  if (done) {
163
+ if (!res.aborted) {
164
+ res.cork(() => {
165
+ res.end();
166
+ });
167
+ }
168
+ break;
169
+ }
170
+ if (!res.aborted) {
152
171
  res.cork(() => {
153
- res.end();
172
+ res.write(value);
154
173
  });
155
- return;
156
174
  }
157
- res.cork(() => {
158
- res.write(value);
159
- });
160
175
  }
161
176
  }
162
- else {
163
- res.cork(() => {
164
- res.end();
165
- });
177
+ finally {
178
+ // let the reader know that nothing will be read from it
179
+ // potentially useful during res.aborted early return; also should theoretically help GC clean up the reader?
180
+ // this may not be needed, but lets keep it here just in case
181
+ reader.releaseLock();
166
182
  }
167
183
  }
168
184
  //# sourceMappingURL=fetchCompat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchCompat.js","sourceRoot":"","sources":["../src/fetchCompat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchCompat.js","sourceRoot":"","sources":["../src/fetchCompat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trpc-uwebsockets",
3
3
  "description": "tRPC adapter for uWebSockets.js server",
4
- "version": "11.2.0",
4
+ "version": "11.4.1",
5
5
  "main": "./dist/index.js",
6
6
  "type": "commonjs",
7
7
  "types": "./types/index.d.ts",
@@ -16,6 +16,7 @@
16
16
  "test:watch": "vitest",
17
17
  "test:coverage": "vitest --coverage",
18
18
  "test:publish": "yarn test && yarn build && yarn pack",
19
+ "bump-version": "node ./bumpVersion.js && yarn install && yarn test",
19
20
  "publish:main": "yarn npm publish",
20
21
  "publish:canary": "yarn npm publish --tag canary",
21
22
  "prepack": "yarn build",
@@ -28,7 +29,7 @@
28
29
  "prettier:dry": "prettier src/**/*.ts --config .prettierrc"
29
30
  },
30
31
  "dependencies": {
31
- "@trpc/server": "^11.2.0"
32
+ "@trpc/server": "^11.4.1"
32
33
  },
33
34
  "peerDependencies": {
34
35
  "uWebSockets.js": "*"
@@ -36,7 +37,7 @@
36
37
  "devDependencies": {
37
38
  "@eslint/eslintrc": "^3.3.1",
38
39
  "@eslint/js": "^9.24.0",
39
- "@trpc/client": "^11.2.0",
40
+ "@trpc/client": "^11.4.1",
40
41
  "@types/node": "^20.11.5",
41
42
  "@types/node-fetch": "^2.6.12",
42
43
  "@types/ws": "^8.5.10",
@@ -74,7 +75,7 @@
74
75
  ],
75
76
  "repository": {
76
77
  "type": "git",
77
- "url": "https://github.com/romanzy313/trpc-uwebsockets.git"
78
+ "url": "git+https://github.com/romanzy313/trpc-uwebsockets.git"
78
79
  },
79
80
  "author": "Roman Volovoy",
80
81
  "packageManager": "yarn@4.8.1"
@@ -303,10 +303,14 @@ export function testFactory<AppRouter extends AnyTRPCRouter>(
303
303
  });
304
304
  },
305
305
  clientWs(clientOptions?: Partial<ClientOptions> | undefined) {
306
- return createClientWs(serverOptions.appRouter, {
307
- ...clientOptions,
308
- port,
309
- });
306
+ const { client, wsClient, orderedResults } = createClientWs(
307
+ serverOptions.appRouter,
308
+ {
309
+ ...clientOptions,
310
+ port,
311
+ }
312
+ );
313
+ return { client, wsClient, orderedResults };
310
314
  },
311
315
  };
312
316
  }
@@ -154,12 +154,14 @@ function createBody(
154
154
 
155
155
  res.onAborted(() => {
156
156
  if (!hasClosed) {
157
+ res.aborted = true;
157
158
  hasClosed = true;
158
159
  controller.error(new TRPCError({ code: 'CLIENT_CLOSED_REQUEST' }));
159
160
  }
160
161
  });
161
162
  },
162
163
  cancel() {
164
+ res.aborted = true;
163
165
  res.cork(() => {
164
166
  res.close();
165
167
  });
@@ -190,7 +192,6 @@ export async function uWsSendResponseStreamed(
190
192
  res: HttpResponseDecorated
191
193
  ): Promise<void> {
192
194
  if (res.aborted) return;
193
-
194
195
  res.cork(() => {
195
196
  res.writeStatus(fetchRes.status.toString());
196
197
  fetchRes.headers.forEach((value, key) => {
@@ -198,30 +199,43 @@ export async function uWsSendResponseStreamed(
198
199
  });
199
200
  });
200
201
 
201
- if (fetchRes.body) {
202
- const reader = fetchRes.body.getReader();
202
+ if (!fetchRes.body) {
203
+ if (!res.aborted) {
204
+ res.cork(() => {
205
+ res.end();
206
+ });
207
+ }
208
+ return;
209
+ }
210
+
211
+ const reader = fetchRes.body.getReader();
203
212
 
213
+ try {
204
214
  while (true) {
215
+ if (res.aborted) break;
205
216
  const { value, done } = await reader.read();
206
217
 
207
- if (res.aborted) {
208
- return;
209
- }
218
+ if (res.aborted) break;
210
219
 
211
220
  if (done) {
221
+ if (!res.aborted) {
222
+ res.cork(() => {
223
+ res.end();
224
+ });
225
+ }
226
+ break;
227
+ }
228
+
229
+ if (!res.aborted) {
212
230
  res.cork(() => {
213
- res.end();
231
+ res.write(value);
214
232
  });
215
- return;
216
233
  }
217
-
218
- res.cork(() => {
219
- res.write(value);
220
- });
221
234
  }
222
- } else {
223
- res.cork(() => {
224
- res.end();
225
- });
235
+ } finally {
236
+ // let the reader know that nothing will be read from it
237
+ // potentially useful during res.aborted early return; also should theoretically help GC clean up the reader?
238
+ // this may not be needed, but lets keep it here just in case
239
+ reader.releaseLock();
226
240
  }
227
241
  }
@@ -1,234 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testFactory = testFactory;
7
- const vitest_1 = require("vitest");
8
- const websockets_1 = require("./websockets");
9
- const observable_1 = require("@trpc/server/observable");
10
- const uWebSockets_js_1 = __importDefault(require("uWebSockets.js"));
11
- const requestHandler_1 = require("./requestHandler");
12
- const client_1 = require("@trpc/client");
13
- const event_source_polyfill_1 = require("event-source-polyfill");
14
- global.EventSource = event_source_polyfill_1.EventSourcePolyfill;
15
- function createServer(opts) {
16
- const prefix = opts.prefix ?? '/trpc';
17
- const instance = uWebSockets_js_1.default.App();
18
- const router = opts.appRouter;
19
- const onServerErrorSpy = vitest_1.vi.fn();
20
- (0, requestHandler_1.applyRequestHandler)(instance, {
21
- prefix,
22
- ssl: false,
23
- trpcOptions: {
24
- router,
25
- createContext: opts.createContext ?? (() => ({})),
26
- onError(data) {
27
- onServerErrorSpy(data);
28
- },
29
- responseMeta() {
30
- return {
31
- headers: {
32
- 'Access-Control-Allow-Origin': '*',
33
- },
34
- };
35
- },
36
- },
37
- });
38
- (0, websockets_1.applyWebsocketHandler)(instance, {
39
- prefix,
40
- ssl: false,
41
- router,
42
- createContext: opts.createContext ?? (() => ({})),
43
- onError(data) {
44
- onServerErrorSpy(data);
45
- },
46
- uWsBehaviorOptions: opts.uWsBehaviorOptions,
47
- keepAlive: opts.keepAlive,
48
- });
49
- instance.get('/hello', async (res) => {
50
- res.end('Hello world');
51
- });
52
- instance.post('/hello', async (res) => {
53
- res.end(JSON.stringify({ hello: 'POST', body: 'TODO, why?' }));
54
- });
55
- instance.ws('/ws', {
56
- message: (client, rawMsg) => {
57
- client.send(rawMsg);
58
- },
59
- });
60
- instance.ws('/pubsub', {
61
- open: (client) => {
62
- const ok = client.subscribe('topic');
63
- if (!ok) {
64
- throw new Error("assertion: failed to subscribe to 'topic'");
65
- }
66
- },
67
- });
68
- instance.any('/*', (res) => {
69
- res.writeStatus('404 NOT FOUND');
70
- res.end();
71
- });
72
- let socket = null;
73
- instance.listen('0.0.0.0', 0, (token) => {
74
- socket = token;
75
- });
76
- if (!socket) {
77
- throw new Error('could not make a socket');
78
- }
79
- const port = uWebSockets_js_1.default.us_socket_local_port(socket);
80
- return {
81
- stop() {
82
- if (!socket) {
83
- throw new Error('could not close socket as socket is already closed');
84
- }
85
- uWebSockets_js_1.default.us_listen_socket_close(socket);
86
- socket = null;
87
- },
88
- port,
89
- instance,
90
- onServerErrorSpy,
91
- };
92
- }
93
- function makeLinkSpy() {
94
- const orderedResults = [];
95
- const linkSpy = () => {
96
- // here we just got initialized in the app - this happens once per app
97
- // useful for storing cache for instance
98
- return ({ next, op }) => {
99
- // this is when passing the result to the next link
100
- // each link needs to return an observable which propagates results
101
- return (0, observable_1.observable)((observer) => {
102
- const unsubscribe = next(op).subscribe({
103
- next(value) {
104
- const data = value.result.data;
105
- if (data !== undefined) {
106
- orderedResults.push(data);
107
- }
108
- observer.next(value);
109
- },
110
- error: observer.error,
111
- });
112
- return unsubscribe;
113
- });
114
- };
115
- };
116
- return {
117
- orderedResults,
118
- linkSpy,
119
- };
120
- }
121
- function toQueryString(queryParams) {
122
- const raw = new URLSearchParams(queryParams).toString();
123
- return raw.length == 0 ? '' : `?${raw}`;
124
- }
125
- function createClientWs(router, opts) {
126
- const prefix = opts.prefix ?? '/trpc';
127
- const transformer = router._def._config.transformer;
128
- const qs = toQueryString(opts.queryParams ?? {});
129
- const host = `localhost:${opts.port}${prefix}${qs}`;
130
- const wsClient = (0, client_1.createWSClient)({
131
- retryDelayMs: () => 99999, // never retry by default
132
- ...opts.wsClientOptions,
133
- url: `ws://${host}`,
134
- });
135
- const { orderedResults, linkSpy } = makeLinkSpy();
136
- const client = (0, client_1.createTRPCClient)({
137
- links: [linkSpy, (0, client_1.wsLink)({ client: wsClient, transformer })],
138
- });
139
- return { client, wsClient, orderedResults };
140
- }
141
- function createClientBatchStream(router, opts) {
142
- const prefix = opts.prefix ?? '/trpc';
143
- const transformer = router._def._config.transformer;
144
- const qs = toQueryString(opts.queryParams ?? {});
145
- const host = `localhost:${opts.port}${prefix}${qs}`;
146
- const { orderedResults, linkSpy } = makeLinkSpy();
147
- const client = (0, client_1.createTRPCClient)({
148
- links: [
149
- linkSpy,
150
- (0, client_1.httpBatchStreamLink)({
151
- url: `http://${host}`,
152
- headers: opts.headers,
153
- transformer,
154
- }),
155
- ],
156
- });
157
- return { client, orderedResults };
158
- }
159
- function createClientBatch(router, opts) {
160
- const prefix = opts.prefix ?? '/trpc';
161
- const transformer = router._def._config.transformer;
162
- const qs = toQueryString(opts.queryParams ?? {});
163
- const host = `localhost:${opts.port}${prefix}${qs}`;
164
- const client = (0, client_1.createTRPCClient)({
165
- links: [
166
- (0, client_1.httpBatchLink)({
167
- url: `http://${host}`,
168
- headers: opts.headers,
169
- transformer,
170
- }),
171
- ],
172
- });
173
- return { client };
174
- }
175
- function createClientSse(router, opts) {
176
- const prefix = opts.prefix ?? '/trpc';
177
- const transformer = router._def._config.transformer;
178
- const qs = toQueryString(opts.queryParams ?? {});
179
- const host = `localhost:${opts.port}${prefix}${qs}`;
180
- const { orderedResults, linkSpy } = makeLinkSpy();
181
- const client = (0, client_1.createTRPCClient)({
182
- links: [
183
- linkSpy,
184
- (0, client_1.httpSubscriptionLink)({
185
- url: `http://${host}`,
186
- connectionParams: opts.wsClientOptions?.connectionParams,
187
- // ponyfill EventSource
188
- EventSource: event_source_polyfill_1.EventSourcePolyfill,
189
- transformer,
190
- }),
191
- ],
192
- });
193
- return { client, orderedResults };
194
- }
195
- function testFactory(serverOptions) {
196
- const { instance, port, stop, onServerErrorSpy } = createServer({
197
- ...serverOptions,
198
- });
199
- return {
200
- server: instance,
201
- stop,
202
- onServerErrorSpy,
203
- port,
204
- opts: serverOptions,
205
- fetch(path, opts) {
206
- return fetch(`http://localhost:${port}${path}`, { ...opts });
207
- },
208
- clientBatchStream(clientOptions) {
209
- return createClientBatchStream(serverOptions.appRouter, {
210
- ...clientOptions,
211
- port,
212
- });
213
- },
214
- clientBatch(clientOptions) {
215
- return createClientBatch(serverOptions.appRouter, {
216
- ...clientOptions,
217
- port,
218
- });
219
- },
220
- clientSse(clientOptions) {
221
- return createClientSse(serverOptions.appRouter, {
222
- ...clientOptions,
223
- port,
224
- });
225
- },
226
- clientWs(clientOptions) {
227
- return createClientWs(serverOptions.appRouter, {
228
- ...clientOptions,
229
- port,
230
- });
231
- },
232
- };
233
- }
234
- //# sourceMappingURL=___testHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"___testHelpers.js","sourceRoot":"","sources":["../src/___testHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { AnyTRPCRouter } from '@trpc/server';
2
- import { WebSocketBehaviorOptions, WebsocketsKeepAlive } from './websockets';
3
- import uWs from 'uWebSockets.js';
4
- import { CreateContextOptions } from './requestHandler';
5
- import type { HTTPHeaders, WebSocketClientOptions } from '@trpc/client';
6
- export interface ServerOptions<AppRouter extends AnyTRPCRouter> {
7
- appRouter: AppRouter;
8
- prefix?: string;
9
- createContext?: (opts: CreateContextOptions) => Promise<any>;
10
- uWsBehaviorOptions?: WebSocketBehaviorOptions;
11
- keepAlive?: WebsocketsKeepAlive;
12
- }
13
- interface ClientOptions {
14
- prefix?: string;
15
- wsClientOptions?: Omit<WebSocketClientOptions, 'url'> | undefined;
16
- queryParams?: Record<string, string> | undefined;
17
- headers?: HTTPHeaders | undefined;
18
- port: number;
19
- }
20
- export declare function testFactory<AppRouter extends AnyTRPCRouter>(serverOptions: ServerOptions<AppRouter>): {
21
- server: uWs.TemplatedApp;
22
- stop: () => void;
23
- onServerErrorSpy: import("vitest").Mock<(...args: any[]) => any>;
24
- port: number;
25
- opts: ServerOptions<AppRouter>;
26
- fetch(path: string, opts: RequestInit): Promise<Response>;
27
- clientBatchStream(clientOptions?: Partial<ClientOptions> | undefined): {
28
- client: import("@trpc/client").TRPCClient<AppRouter>;
29
- orderedResults: number[];
30
- };
31
- clientBatch(clientOptions?: Partial<ClientOptions> | undefined): {
32
- client: import("@trpc/client").TRPCClient<AppRouter>;
33
- };
34
- clientSse(clientOptions?: Partial<ClientOptions> | undefined): {
35
- client: import("@trpc/client").TRPCClient<AppRouter>;
36
- orderedResults: number[];
37
- };
38
- clientWs(clientOptions?: Partial<ClientOptions> | undefined): {
39
- client: import("@trpc/client").TRPCClient<AppRouter>;
40
- wsClient: import("@trpc/client/dist/links/wsLink/wsClient/wsClient").WsClient;
41
- orderedResults: number[];
42
- };
43
- };
44
- export {};