@trpc/server 10.0.0-alpha.5 → 10.0.0-alpha.9
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/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +2 -1
- package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +2 -1
- package/adapters/express/dist/trpc-server-adapters-express.esm.js +2 -1
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +102 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +102 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +97 -0
- package/adapters/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +2 -1
- package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +2 -1
- package/adapters/next/dist/trpc-server-adapters-next.esm.js +2 -1
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +2 -1
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +2 -1
- package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +2 -1
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +2 -1
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +2 -1
- package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +2 -1
- package/dist/adapters/express.js +3 -2
- package/dist/adapters/express.mjs +3 -2
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
- package/dist/adapters/fastify/index.d.ts +3 -0
- package/dist/adapters/fastify/index.d.ts.map +1 -0
- package/dist/adapters/fastify/index.js +102 -0
- package/dist/adapters/fastify/index.mjs +97 -0
- package/dist/adapters/fastify/index.ts.js +1 -0
- package/dist/adapters/next.js +2 -1
- package/dist/adapters/next.mjs +2 -1
- package/dist/adapters/node-http/index.js +2 -1
- package/dist/adapters/node-http/index.mjs +2 -1
- package/dist/adapters/standalone.js +3 -2
- package/dist/adapters/standalone.mjs +3 -2
- package/dist/index.js +9 -8
- package/dist/index.mjs +4 -3
- package/dist/nodeHTTPRequestHandler-17a5e0dd.mjs +106 -0
- package/dist/nodeHTTPRequestHandler-17b64c0e.js +108 -0
- package/dist/{nodeHTTPRequestHandler-d7c307d3.js → resolveHTTPResponse-087ce86a.js} +0 -103
- package/dist/{nodeHTTPRequestHandler-10e6d2f9.mjs → resolveHTTPResponse-9604d47d.mjs} +1 -103
- package/package.json +12 -3
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +79 -0
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +48 -0
- package/src/adapters/fastify/index.ts +2 -0
- package/src/adapters/standalone.ts +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { URLSearchParams } from 'url';
|
|
2
|
+
import { a as assertNotBrowser, r as resolveHTTPResponse } from '../../resolveHTTPResponse-9604d47d.mjs';
|
|
3
|
+
import { applyWSSHandler } from '../ws.mjs';
|
|
4
|
+
import '../../transformTRPCResponse-76e0c91e.mjs';
|
|
5
|
+
import '../../codes-7a3d4f65.mjs';
|
|
6
|
+
import '../../subscription-e1d42e69.mjs';
|
|
7
|
+
import 'events';
|
|
8
|
+
|
|
9
|
+
assertNotBrowser();
|
|
10
|
+
async function fastifyRequestHandler(opts) {
|
|
11
|
+
var _opts$req$body;
|
|
12
|
+
|
|
13
|
+
const createContext = async function _createContext() {
|
|
14
|
+
var _opts$createContext;
|
|
15
|
+
|
|
16
|
+
return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const query = opts.req.query ? new URLSearchParams(opts.req.query) : new URLSearchParams(opts.req.url.split('?')[1]);
|
|
20
|
+
const req = {
|
|
21
|
+
query,
|
|
22
|
+
method: opts.req.method,
|
|
23
|
+
headers: opts.req.headers,
|
|
24
|
+
body: (_opts$req$body = opts.req.body) !== null && _opts$req$body !== void 0 ? _opts$req$body : 'null'
|
|
25
|
+
};
|
|
26
|
+
const result = await resolveHTTPResponse({
|
|
27
|
+
req,
|
|
28
|
+
createContext,
|
|
29
|
+
path: opts.path,
|
|
30
|
+
router: opts.router,
|
|
31
|
+
batching: opts.batching,
|
|
32
|
+
responseMeta: opts.responseMeta,
|
|
33
|
+
|
|
34
|
+
onError(o) {
|
|
35
|
+
var _opts$onError;
|
|
36
|
+
|
|
37
|
+
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
38
|
+
req: opts.req
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
});
|
|
43
|
+
const {
|
|
44
|
+
res
|
|
45
|
+
} = opts;
|
|
46
|
+
|
|
47
|
+
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
48
|
+
res.statusCode = result.status;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
52
|
+
var _result$headers;
|
|
53
|
+
|
|
54
|
+
if (typeof value === 'undefined') {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
res.header(key, value);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
res.send(result.body);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// <reference types="fastify-websocket" />
|
|
65
|
+
function fastifyTRPCPlugin(fastify, opts, done) {
|
|
66
|
+
var _opts$prefix;
|
|
67
|
+
|
|
68
|
+
fastify.addContentTypeParser('application/json', {
|
|
69
|
+
parseAs: 'string'
|
|
70
|
+
}, function (_, body, _done) {
|
|
71
|
+
_done(null, body);
|
|
72
|
+
});
|
|
73
|
+
fastify.all(`${(_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : ''}/:path`, (req, res) => {
|
|
74
|
+
const path = req.params.path;
|
|
75
|
+
fastifyRequestHandler({ ...opts.trpcOptions,
|
|
76
|
+
req,
|
|
77
|
+
res,
|
|
78
|
+
path
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
if (opts.useWSS) {
|
|
83
|
+
var _opts$prefix2;
|
|
84
|
+
|
|
85
|
+
applyWSSHandler({ ...opts.trpcOptions,
|
|
86
|
+
wss: fastify.websocketServer
|
|
87
|
+
}); // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
88
|
+
|
|
89
|
+
fastify.get((_opts$prefix2 = opts.prefix) !== null && _opts$prefix2 !== void 0 ? _opts$prefix2 : '/', {
|
|
90
|
+
websocket: true
|
|
91
|
+
}, () => {});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
done();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { fastifyRequestHandler, fastifyTRPCPlugin };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/adapters/next.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var transformTRPCResponse = require('../transformTRPCResponse-bd24f548.js');
|
|
6
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
6
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-17b64c0e.js');
|
|
7
7
|
require('url');
|
|
8
|
+
require('../resolveHTTPResponse-087ce86a.js');
|
|
8
9
|
require('../codes-7f46544e.js');
|
|
9
10
|
|
|
10
11
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
package/dist/adapters/next.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { T as TRPCError } from '../transformTRPCResponse-76e0c91e.mjs';
|
|
2
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
2
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-17a5e0dd.mjs';
|
|
3
3
|
import 'url';
|
|
4
|
+
import '../resolveHTTPResponse-9604d47d.mjs';
|
|
4
5
|
import '../codes-7a3d4f65.mjs';
|
|
5
6
|
|
|
6
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-
|
|
5
|
+
var nodeHTTPRequestHandler = require('../../nodeHTTPRequestHandler-17b64c0e.js');
|
|
6
6
|
require('url');
|
|
7
|
+
require('../../resolveHTTPResponse-087ce86a.js');
|
|
7
8
|
require('../../transformTRPCResponse-bd24f548.js');
|
|
8
9
|
require('../../codes-7f46544e.js');
|
|
9
10
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-
|
|
1
|
+
export { n as nodeHTTPRequestHandler } from '../../nodeHTTPRequestHandler-17a5e0dd.mjs';
|
|
2
2
|
import 'url';
|
|
3
|
+
import '../../resolveHTTPResponse-9604d47d.mjs';
|
|
3
4
|
import '../../transformTRPCResponse-76e0c91e.mjs';
|
|
4
5
|
import '../../codes-7a3d4f65.mjs';
|
|
@@ -4,7 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var http = require('http');
|
|
6
6
|
var url = require('url');
|
|
7
|
-
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-
|
|
7
|
+
var nodeHTTPRequestHandler = require('../nodeHTTPRequestHandler-17b64c0e.js');
|
|
8
|
+
require('../resolveHTTPResponse-087ce86a.js');
|
|
8
9
|
require('../transformTRPCResponse-bd24f548.js');
|
|
9
10
|
require('../codes-7f46544e.js');
|
|
10
11
|
|
|
@@ -16,7 +17,7 @@ var url__default = /*#__PURE__*/_interopDefaultLegacy(url);
|
|
|
16
17
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
17
18
|
function createHTTPHandler(opts) {
|
|
18
19
|
return async (req, res) => {
|
|
19
|
-
const endpoint = url__default["default"].parse(req.url).pathname.
|
|
20
|
+
const endpoint = url__default["default"].parse(req.url).pathname.slice(1);
|
|
20
21
|
await nodeHTTPRequestHandler.nodeHTTPRequestHandler({ ...opts,
|
|
21
22
|
req,
|
|
22
23
|
res,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
import url from 'url';
|
|
3
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
3
|
+
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-17a5e0dd.mjs';
|
|
4
|
+
import '../resolveHTTPResponse-9604d47d.mjs';
|
|
4
5
|
import '../transformTRPCResponse-76e0c91e.mjs';
|
|
5
6
|
import '../codes-7a3d4f65.mjs';
|
|
6
7
|
|
|
7
8
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
8
9
|
function createHTTPHandler(opts) {
|
|
9
10
|
return async (req, res) => {
|
|
10
|
-
const endpoint = url.parse(req.url).pathname.
|
|
11
|
+
const endpoint = url.parse(req.url).pathname.slice(1);
|
|
11
12
|
await nodeHTTPRequestHandler({ ...opts,
|
|
12
13
|
req,
|
|
13
14
|
res,
|
package/dist/index.js
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var resolveHTTPResponse = require('./resolveHTTPResponse-087ce86a.js');
|
|
6
6
|
var subscription = require('./subscription-5b7e1eba.js');
|
|
7
7
|
var transformTRPCResponse = require('./transformTRPCResponse-bd24f548.js');
|
|
8
8
|
var adapters_standalone = require('./adapters/standalone.js');
|
|
9
|
+
var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-17b64c0e.js');
|
|
9
10
|
var codes = require('./codes-7f46544e.js');
|
|
10
|
-
require('url');
|
|
11
11
|
require('events');
|
|
12
12
|
require('http');
|
|
13
|
+
require('url');
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
15
16
|
|
|
16
17
|
// this has been moved to separate package
|
|
17
18
|
|
|
@@ -58,7 +59,7 @@ async function wrapCallSafe(fn) {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
61
|
-
|
|
62
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
62
63
|
|
|
63
64
|
function getParseFn(inputParser) {
|
|
64
65
|
const parser = inputParser;
|
|
@@ -214,7 +215,7 @@ function createProcedure(opts) {
|
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
217
|
-
|
|
218
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
218
219
|
/**
|
|
219
220
|
* @public
|
|
220
221
|
*/
|
|
@@ -462,7 +463,7 @@ class Router {
|
|
|
462
463
|
code: codes.TRPC_ERROR_CODES_BY_KEY[code],
|
|
463
464
|
data: {
|
|
464
465
|
code,
|
|
465
|
-
httpStatus:
|
|
466
|
+
httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
|
|
466
467
|
}
|
|
467
468
|
};
|
|
468
469
|
|
|
@@ -519,8 +520,8 @@ function router() {
|
|
|
519
520
|
return new Router();
|
|
520
521
|
}
|
|
521
522
|
|
|
522
|
-
exports.assertNotBrowser =
|
|
523
|
-
exports.resolveHTTPResponse =
|
|
523
|
+
exports.assertNotBrowser = resolveHTTPResponse.assertNotBrowser;
|
|
524
|
+
exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
|
|
524
525
|
exports.Subscription = subscription.Subscription;
|
|
525
526
|
exports.subscriptionPullFactory = subscription.subscriptionPullFactory;
|
|
526
527
|
exports.TRPCError = transformTRPCResponse.TRPCError;
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { a as assertNotBrowser,
|
|
2
|
-
export { a as assertNotBrowser, r as resolveHTTPResponse } from './
|
|
1
|
+
import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-9604d47d.mjs';
|
|
2
|
+
export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-9604d47d.mjs';
|
|
3
3
|
export { S as Subscription, s as subscriptionPullFactory } from './subscription-e1d42e69.mjs';
|
|
4
4
|
import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-76e0c91e.mjs';
|
|
5
5
|
export { T as TRPCError } from './transformTRPCResponse-76e0c91e.mjs';
|
|
6
6
|
import { createHTTPServer, createHTTPHandler } from './adapters/standalone.mjs';
|
|
7
|
+
import { n as nodeHTTPRequestHandler } from './nodeHTTPRequestHandler-17a5e0dd.mjs';
|
|
7
8
|
import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-7a3d4f65.mjs';
|
|
8
|
-
import 'url';
|
|
9
9
|
import 'events';
|
|
10
10
|
import 'http';
|
|
11
|
+
import 'url';
|
|
11
12
|
|
|
12
13
|
assertNotBrowser();
|
|
13
14
|
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { URLSearchParams } from 'url';
|
|
2
|
+
import { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-9604d47d.mjs';
|
|
3
|
+
import { T as TRPCError } from './transformTRPCResponse-76e0c91e.mjs';
|
|
4
|
+
|
|
5
|
+
async function getPostBody({
|
|
6
|
+
req,
|
|
7
|
+
maxBodySize
|
|
8
|
+
}) {
|
|
9
|
+
return new Promise(resolve => {
|
|
10
|
+
if ('body' in req) {
|
|
11
|
+
resolve({
|
|
12
|
+
ok: true,
|
|
13
|
+
data: req.body
|
|
14
|
+
});
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let body = '';
|
|
19
|
+
let hasBody = false;
|
|
20
|
+
req.on('data', function (data) {
|
|
21
|
+
body += data;
|
|
22
|
+
hasBody = true;
|
|
23
|
+
|
|
24
|
+
if (typeof maxBodySize === 'number' && body.length > maxBodySize) {
|
|
25
|
+
resolve({
|
|
26
|
+
ok: false,
|
|
27
|
+
error: new TRPCError({
|
|
28
|
+
code: 'PAYLOAD_TOO_LARGE'
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
req.socket.destroy();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
req.on('end', () => {
|
|
35
|
+
resolve({
|
|
36
|
+
ok: true,
|
|
37
|
+
data: hasBody ? body : undefined
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
44
|
+
assertNotBrowser();
|
|
45
|
+
async function nodeHTTPRequestHandler(opts) {
|
|
46
|
+
var _opts$teardown;
|
|
47
|
+
|
|
48
|
+
const createContext = async function _createContext() {
|
|
49
|
+
var _opts$createContext;
|
|
50
|
+
|
|
51
|
+
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const {
|
|
55
|
+
path,
|
|
56
|
+
router
|
|
57
|
+
} = opts;
|
|
58
|
+
const bodyResult = await getPostBody(opts);
|
|
59
|
+
const query = opts.req.query ? new URLSearchParams(opts.req.query) : new URLSearchParams(opts.req.url.split('?')[1]);
|
|
60
|
+
const req = {
|
|
61
|
+
method: opts.req.method,
|
|
62
|
+
headers: opts.req.headers,
|
|
63
|
+
query,
|
|
64
|
+
body: bodyResult.ok ? bodyResult.data : undefined
|
|
65
|
+
};
|
|
66
|
+
const result = await resolveHTTPResponse({
|
|
67
|
+
batching: opts.batching,
|
|
68
|
+
responseMeta: opts.responseMeta,
|
|
69
|
+
path,
|
|
70
|
+
createContext,
|
|
71
|
+
router,
|
|
72
|
+
req,
|
|
73
|
+
error: bodyResult.ok ? null : bodyResult.error,
|
|
74
|
+
|
|
75
|
+
onError(o) {
|
|
76
|
+
var _opts$onError;
|
|
77
|
+
|
|
78
|
+
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
79
|
+
req: opts.req
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
});
|
|
84
|
+
const {
|
|
85
|
+
res
|
|
86
|
+
} = opts;
|
|
87
|
+
|
|
88
|
+
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
89
|
+
res.statusCode = result.status;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
93
|
+
var _result$headers;
|
|
94
|
+
|
|
95
|
+
if (typeof value === 'undefined') {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
res.setHeader(key, value);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
res.end(result.body);
|
|
103
|
+
await ((_opts$teardown = opts.teardown) === null || _opts$teardown === void 0 ? void 0 : _opts$teardown.call(opts));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { nodeHTTPRequestHandler as n };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var url = require('url');
|
|
4
|
+
var resolveHTTPResponse = require('./resolveHTTPResponse-087ce86a.js');
|
|
5
|
+
var transformTRPCResponse = require('./transformTRPCResponse-bd24f548.js');
|
|
6
|
+
|
|
7
|
+
async function getPostBody({
|
|
8
|
+
req,
|
|
9
|
+
maxBodySize
|
|
10
|
+
}) {
|
|
11
|
+
return new Promise(resolve => {
|
|
12
|
+
if ('body' in req) {
|
|
13
|
+
resolve({
|
|
14
|
+
ok: true,
|
|
15
|
+
data: req.body
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let body = '';
|
|
21
|
+
let hasBody = false;
|
|
22
|
+
req.on('data', function (data) {
|
|
23
|
+
body += data;
|
|
24
|
+
hasBody = true;
|
|
25
|
+
|
|
26
|
+
if (typeof maxBodySize === 'number' && body.length > maxBodySize) {
|
|
27
|
+
resolve({
|
|
28
|
+
ok: false,
|
|
29
|
+
error: new transformTRPCResponse.TRPCError({
|
|
30
|
+
code: 'PAYLOAD_TOO_LARGE'
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
req.socket.destroy();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
req.on('end', () => {
|
|
37
|
+
resolve({
|
|
38
|
+
ok: true,
|
|
39
|
+
data: hasBody ? body : undefined
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
46
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
47
|
+
async function nodeHTTPRequestHandler(opts) {
|
|
48
|
+
var _opts$teardown;
|
|
49
|
+
|
|
50
|
+
const createContext = async function _createContext() {
|
|
51
|
+
var _opts$createContext;
|
|
52
|
+
|
|
53
|
+
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const {
|
|
57
|
+
path,
|
|
58
|
+
router
|
|
59
|
+
} = opts;
|
|
60
|
+
const bodyResult = await getPostBody(opts);
|
|
61
|
+
const query = opts.req.query ? new url.URLSearchParams(opts.req.query) : new url.URLSearchParams(opts.req.url.split('?')[1]);
|
|
62
|
+
const req = {
|
|
63
|
+
method: opts.req.method,
|
|
64
|
+
headers: opts.req.headers,
|
|
65
|
+
query,
|
|
66
|
+
body: bodyResult.ok ? bodyResult.data : undefined
|
|
67
|
+
};
|
|
68
|
+
const result = await resolveHTTPResponse.resolveHTTPResponse({
|
|
69
|
+
batching: opts.batching,
|
|
70
|
+
responseMeta: opts.responseMeta,
|
|
71
|
+
path,
|
|
72
|
+
createContext,
|
|
73
|
+
router,
|
|
74
|
+
req,
|
|
75
|
+
error: bodyResult.ok ? null : bodyResult.error,
|
|
76
|
+
|
|
77
|
+
onError(o) {
|
|
78
|
+
var _opts$onError;
|
|
79
|
+
|
|
80
|
+
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
81
|
+
req: opts.req
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
});
|
|
86
|
+
const {
|
|
87
|
+
res
|
|
88
|
+
} = opts;
|
|
89
|
+
|
|
90
|
+
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
91
|
+
res.statusCode = result.status;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
95
|
+
var _result$headers;
|
|
96
|
+
|
|
97
|
+
if (typeof value === 'undefined') {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
res.setHeader(key, value);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
res.end(result.body);
|
|
105
|
+
await ((_opts$teardown = opts.teardown) === null || _opts$teardown === void 0 ? void 0 : _opts$teardown.call(opts));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
exports.nodeHTTPRequestHandler = nodeHTTPRequestHandler;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var url = require('url');
|
|
4
3
|
var transformTRPCResponse = require('./transformTRPCResponse-bd24f548.js');
|
|
5
4
|
var codes = require('./codes-7f46544e.js');
|
|
6
5
|
|
|
@@ -292,108 +291,6 @@ async function resolveHTTPResponse(opts) {
|
|
|
292
291
|
}
|
|
293
292
|
}
|
|
294
293
|
|
|
295
|
-
async function getPostBody({
|
|
296
|
-
req,
|
|
297
|
-
maxBodySize
|
|
298
|
-
}) {
|
|
299
|
-
return new Promise(resolve => {
|
|
300
|
-
if ('body' in req) {
|
|
301
|
-
resolve({
|
|
302
|
-
ok: true,
|
|
303
|
-
data: req.body
|
|
304
|
-
});
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
let body = '';
|
|
309
|
-
let hasBody = false;
|
|
310
|
-
req.on('data', function (data) {
|
|
311
|
-
body += data;
|
|
312
|
-
hasBody = true;
|
|
313
|
-
|
|
314
|
-
if (typeof maxBodySize === 'number' && body.length > maxBodySize) {
|
|
315
|
-
resolve({
|
|
316
|
-
ok: false,
|
|
317
|
-
error: new transformTRPCResponse.TRPCError({
|
|
318
|
-
code: 'PAYLOAD_TOO_LARGE'
|
|
319
|
-
})
|
|
320
|
-
});
|
|
321
|
-
req.socket.destroy();
|
|
322
|
-
}
|
|
323
|
-
});
|
|
324
|
-
req.on('end', () => {
|
|
325
|
-
resolve({
|
|
326
|
-
ok: true,
|
|
327
|
-
data: hasBody ? body : undefined
|
|
328
|
-
});
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
334
|
-
assertNotBrowser();
|
|
335
|
-
async function nodeHTTPRequestHandler(opts) {
|
|
336
|
-
var _opts$teardown;
|
|
337
|
-
|
|
338
|
-
const createContext = async function _createContext() {
|
|
339
|
-
var _opts$createContext;
|
|
340
|
-
|
|
341
|
-
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts));
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
const {
|
|
345
|
-
path,
|
|
346
|
-
router
|
|
347
|
-
} = opts;
|
|
348
|
-
const bodyResult = await getPostBody(opts);
|
|
349
|
-
const query = opts.req.query ? new url.URLSearchParams(opts.req.query) : new url.URLSearchParams(opts.req.url.split('?')[1]);
|
|
350
|
-
const req = {
|
|
351
|
-
method: opts.req.method,
|
|
352
|
-
headers: opts.req.headers,
|
|
353
|
-
query,
|
|
354
|
-
body: bodyResult.ok ? bodyResult.data : undefined
|
|
355
|
-
};
|
|
356
|
-
const result = await resolveHTTPResponse({
|
|
357
|
-
batching: opts.batching,
|
|
358
|
-
responseMeta: opts.responseMeta,
|
|
359
|
-
path,
|
|
360
|
-
createContext,
|
|
361
|
-
router,
|
|
362
|
-
req,
|
|
363
|
-
error: bodyResult.ok ? null : bodyResult.error,
|
|
364
|
-
|
|
365
|
-
onError(o) {
|
|
366
|
-
var _opts$onError;
|
|
367
|
-
|
|
368
|
-
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
369
|
-
req: opts.req
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
});
|
|
374
|
-
const {
|
|
375
|
-
res
|
|
376
|
-
} = opts;
|
|
377
|
-
|
|
378
|
-
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
379
|
-
res.statusCode = result.status;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
383
|
-
var _result$headers;
|
|
384
|
-
|
|
385
|
-
if (typeof value === 'undefined') {
|
|
386
|
-
continue;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
res.setHeader(key, value);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
res.end(result.body);
|
|
393
|
-
await ((_opts$teardown = opts.teardown) === null || _opts$teardown === void 0 ? void 0 : _opts$teardown.call(opts));
|
|
394
|
-
}
|
|
395
|
-
|
|
396
294
|
exports.assertNotBrowser = assertNotBrowser;
|
|
397
295
|
exports.getHTTPStatusCodeFromError = getHTTPStatusCodeFromError;
|
|
398
|
-
exports.nodeHTTPRequestHandler = nodeHTTPRequestHandler;
|
|
399
296
|
exports.resolveHTTPResponse = resolveHTTPResponse;
|