trpc-uwebsockets 11.3.1 → 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.
- package/dist/fetchCompat.js +30 -14
- package/dist/fetchCompat.js.map +1 -1
- package/package.json +4 -4
- package/src/___testHelpers.ts +8 -4
- package/src/fetchCompat.ts +30 -16
- package/dist/___testHelpers.js +0 -234
- package/dist/___testHelpers.js.map +0 -1
- package/types/___testHelpers.d.ts +0 -44
package/dist/fetchCompat.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
172
|
+
res.write(value);
|
|
154
173
|
});
|
|
155
|
-
return;
|
|
156
174
|
}
|
|
157
|
-
res.cork(() => {
|
|
158
|
-
res.write(value);
|
|
159
|
-
});
|
|
160
175
|
}
|
|
161
176
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
package/dist/fetchCompat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchCompat.js","sourceRoot":"","sources":["../src/fetchCompat.ts"],"names":[],"mappings":";;AAaA,oDASC;AAED,gDAkBC;AAED,oCAsCC;AAoBD,8BAkBC;
|
|
1
|
+
{"version":3,"file":"fetchCompat.js","sourceRoot":"","sources":["../src/fetchCompat.ts"],"names":[],"mappings":";;AAaA,oDASC;AAED,gDAkBC;AAED,oCAsCC;AAoBD,8BAkBC;AAmDD,0CAgBC;AAED,0DAmDC;AA/OD,yCAAyC;AAYzC,SAAgB,oBAAoB,CAClC,GAAiB,EACjB,GAAG,GAAG,KAAK;IAEX,MAAM,YAAY,GAA0B,GAAU,CAAC;IACvD,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;IAEvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,kBAAkB,CAChC,GAAgB,EAChB,GAA0B;IAE1B,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;IAEtB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,IAAI,GAAgB;QACxB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,YAAY,CAC1B,GAAgB,EAChB,GAA0B,EAC1B,IAKC;IAED,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;QACnB,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC;IACF,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;IAEtB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,IAAI,GAAgB;QACxB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,EAAE,CAAC,MAAM;KAClB,CAAC;IAEF,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,GAAgB;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACzB,uCAAuC;QACvC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,6BAA6B;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,SAAS,CAAC,GAAgB,EAAE,QAAgB;IAC1D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE1B,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,kBAAS,CAAC;YAClB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,aAAa;YACtB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,GAAiB,EACjB,IAEC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,IAAI,cAAc,CAAa;QACpC,KAAK,CAAC,UAAU;YACd,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;gBAC/B,IAAI,SAAS;oBAAE,OAAO;gBAEtB,0EAA0E;gBAC1E,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACnD,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B;gBACpE,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;gBAEzB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClD,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAE1B,IAAI,MAAM,EAAE,CAAC;wBACX,SAAS,GAAG,IAAI,CAAC;wBACjB,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAC;oBACjB,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;oBACnB,SAAS,GAAG,IAAI,CAAC;oBACjB,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM;YACJ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBACZ,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,GAA0B,EAC1B,QAAkB;IAElB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE7C,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO;IACxB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;QACZ,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,QAAkB,EAClB,GAA0B;IAE1B,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO;IACxB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;QACZ,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBACZ,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,GAAG,CAAC,OAAO;gBAAE,MAAM;YACvB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,GAAG,CAAC,OAAO;gBAAE,MAAM;YAEvB,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;wBACZ,GAAG,CAAC,GAAG,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;oBACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,wDAAwD;QACxD,6GAA6G;QAC7G,6DAA6D;QAC7D,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
|
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.
|
|
4
|
+
"version": "11.4.1",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"prettier:dry": "prettier src/**/*.ts --config .prettierrc"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@trpc/server": "^11.
|
|
32
|
+
"@trpc/server": "^11.4.1"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"uWebSockets.js": "*"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@eslint/eslintrc": "^3.3.1",
|
|
39
39
|
"@eslint/js": "^9.24.0",
|
|
40
|
-
"@trpc/client": "^11.
|
|
40
|
+
"@trpc/client": "^11.4.1",
|
|
41
41
|
"@types/node": "^20.11.5",
|
|
42
42
|
"@types/node-fetch": "^2.6.12",
|
|
43
43
|
"@types/ws": "^8.5.10",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
],
|
|
76
76
|
"repository": {
|
|
77
77
|
"type": "git",
|
|
78
|
-
"url": "https://github.com/romanzy313/trpc-uwebsockets.git"
|
|
78
|
+
"url": "git+https://github.com/romanzy313/trpc-uwebsockets.git"
|
|
79
79
|
},
|
|
80
80
|
"author": "Roman Volovoy",
|
|
81
81
|
"packageManager": "yarn@4.8.1"
|
package/src/___testHelpers.ts
CHANGED
|
@@ -303,10 +303,14 @@ export function testFactory<AppRouter extends AnyTRPCRouter>(
|
|
|
303
303
|
});
|
|
304
304
|
},
|
|
305
305
|
clientWs(clientOptions?: Partial<ClientOptions> | undefined) {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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
|
}
|
package/src/fetchCompat.ts
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
231
|
+
res.write(value);
|
|
214
232
|
});
|
|
215
|
-
return;
|
|
216
233
|
}
|
|
217
|
-
|
|
218
|
-
res.cork(() => {
|
|
219
|
-
res.write(value);
|
|
220
|
-
});
|
|
221
234
|
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
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
|
}
|
package/dist/___testHelpers.js
DELETED
|
@@ -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 {};
|