@trpc/server 10.0.0-alpha.8 → 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/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/dist/adapters/express.js +3 -2
- package/dist/adapters/express.mjs +3 -2
- 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 +5 -5
- package/src/adapters/express.ts +1 -1
- package/src/adapters/standalone.ts +1 -1
- package/adapters/fastify/package.json +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/adapters/fastify';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/adapters/fastify');
|
package/dist/adapters/express.js
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
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
|
|
|
10
11
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11
12
|
function createExpressMiddleware(opts) {
|
|
12
13
|
return (req, res) => {
|
|
13
|
-
const endpoint = req.path.
|
|
14
|
+
const endpoint = req.path.slice(1);
|
|
14
15
|
nodeHTTPRequestHandler.nodeHTTPRequestHandler({ ...opts,
|
|
15
16
|
req,
|
|
16
17
|
res,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { n as nodeHTTPRequestHandler } from '../nodeHTTPRequestHandler-
|
|
1
|
+
import { 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';
|
|
5
6
|
|
|
6
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
8
|
function createExpressMiddleware(opts) {
|
|
8
9
|
return (req, res) => {
|
|
9
|
-
const endpoint = req.path.
|
|
10
|
+
const endpoint = req.path.slice(1);
|
|
10
11
|
nodeHTTPRequestHandler({ ...opts,
|
|
11
12
|
req,
|
|
12
13
|
res,
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var url = require('url');
|
|
6
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-087ce86a.js');
|
|
7
|
+
var adapters_ws = require('../ws.js');
|
|
8
|
+
require('../../transformTRPCResponse-bd24f548.js');
|
|
9
|
+
require('../../codes-7f46544e.js');
|
|
10
|
+
require('../../subscription-5b7e1eba.js');
|
|
11
|
+
require('events');
|
|
12
|
+
|
|
13
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
14
|
+
async function fastifyRequestHandler(opts) {
|
|
15
|
+
var _opts$req$body;
|
|
16
|
+
|
|
17
|
+
const createContext = async function _createContext() {
|
|
18
|
+
var _opts$createContext;
|
|
19
|
+
|
|
20
|
+
return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const query = opts.req.query ? new url.URLSearchParams(opts.req.query) : new url.URLSearchParams(opts.req.url.split('?')[1]);
|
|
24
|
+
const req = {
|
|
25
|
+
query,
|
|
26
|
+
method: opts.req.method,
|
|
27
|
+
headers: opts.req.headers,
|
|
28
|
+
body: (_opts$req$body = opts.req.body) !== null && _opts$req$body !== void 0 ? _opts$req$body : 'null'
|
|
29
|
+
};
|
|
30
|
+
const result = await resolveHTTPResponse.resolveHTTPResponse({
|
|
31
|
+
req,
|
|
32
|
+
createContext,
|
|
33
|
+
path: opts.path,
|
|
34
|
+
router: opts.router,
|
|
35
|
+
batching: opts.batching,
|
|
36
|
+
responseMeta: opts.responseMeta,
|
|
37
|
+
|
|
38
|
+
onError(o) {
|
|
39
|
+
var _opts$onError;
|
|
40
|
+
|
|
41
|
+
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
42
|
+
req: opts.req
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
});
|
|
47
|
+
const {
|
|
48
|
+
res
|
|
49
|
+
} = opts;
|
|
50
|
+
|
|
51
|
+
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
52
|
+
res.statusCode = result.status;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
56
|
+
var _result$headers;
|
|
57
|
+
|
|
58
|
+
if (typeof value === 'undefined') {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
res.header(key, value);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
res.send(result.body);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/// <reference types="fastify-websocket" />
|
|
69
|
+
function fastifyTRPCPlugin(fastify, opts, done) {
|
|
70
|
+
var _opts$prefix;
|
|
71
|
+
|
|
72
|
+
fastify.addContentTypeParser('application/json', {
|
|
73
|
+
parseAs: 'string'
|
|
74
|
+
}, function (_, body, _done) {
|
|
75
|
+
_done(null, body);
|
|
76
|
+
});
|
|
77
|
+
fastify.all(`${(_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : ''}/:path`, (req, res) => {
|
|
78
|
+
const path = req.params.path;
|
|
79
|
+
fastifyRequestHandler({ ...opts.trpcOptions,
|
|
80
|
+
req,
|
|
81
|
+
res,
|
|
82
|
+
path
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
if (opts.useWSS) {
|
|
87
|
+
var _opts$prefix2;
|
|
88
|
+
|
|
89
|
+
adapters_ws.applyWSSHandler({ ...opts.trpcOptions,
|
|
90
|
+
wss: fastify.websocketServer
|
|
91
|
+
}); // eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
92
|
+
|
|
93
|
+
fastify.get((_opts$prefix2 = opts.prefix) !== null && _opts$prefix2 !== void 0 ? _opts$prefix2 : '/', {
|
|
94
|
+
websocket: true
|
|
95
|
+
}, () => {});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
done();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
exports.fastifyRequestHandler = fastifyRequestHandler;
|
|
102
|
+
exports.fastifyTRPCPlugin = fastifyTRPCPlugin;
|
|
@@ -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;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { URLSearchParams } from 'url';
|
|
2
1
|
import { T as TRPCError, c as callProcedure, g as getErrorFromUnknown, t as transformTRPCResponse } from './transformTRPCResponse-76e0c91e.mjs';
|
|
3
2
|
import { i as invert, T as TRPC_ERROR_CODES_BY_KEY } from './codes-7a3d4f65.mjs';
|
|
4
3
|
|
|
@@ -290,105 +289,4 @@ async function resolveHTTPResponse(opts) {
|
|
|
290
289
|
}
|
|
291
290
|
}
|
|
292
291
|
|
|
293
|
-
|
|
294
|
-
req,
|
|
295
|
-
maxBodySize
|
|
296
|
-
}) {
|
|
297
|
-
return new Promise(resolve => {
|
|
298
|
-
if ('body' in req) {
|
|
299
|
-
resolve({
|
|
300
|
-
ok: true,
|
|
301
|
-
data: req.body
|
|
302
|
-
});
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
let body = '';
|
|
307
|
-
let hasBody = false;
|
|
308
|
-
req.on('data', function (data) {
|
|
309
|
-
body += data;
|
|
310
|
-
hasBody = true;
|
|
311
|
-
|
|
312
|
-
if (typeof maxBodySize === 'number' && body.length > maxBodySize) {
|
|
313
|
-
resolve({
|
|
314
|
-
ok: false,
|
|
315
|
-
error: new TRPCError({
|
|
316
|
-
code: 'PAYLOAD_TOO_LARGE'
|
|
317
|
-
})
|
|
318
|
-
});
|
|
319
|
-
req.socket.destroy();
|
|
320
|
-
}
|
|
321
|
-
});
|
|
322
|
-
req.on('end', () => {
|
|
323
|
-
resolve({
|
|
324
|
-
ok: true,
|
|
325
|
-
data: hasBody ? body : undefined
|
|
326
|
-
});
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
332
|
-
assertNotBrowser();
|
|
333
|
-
async function nodeHTTPRequestHandler(opts) {
|
|
334
|
-
var _opts$teardown;
|
|
335
|
-
|
|
336
|
-
const createContext = async function _createContext() {
|
|
337
|
-
var _opts$createContext;
|
|
338
|
-
|
|
339
|
-
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, opts));
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
const {
|
|
343
|
-
path,
|
|
344
|
-
router
|
|
345
|
-
} = opts;
|
|
346
|
-
const bodyResult = await getPostBody(opts);
|
|
347
|
-
const query = opts.req.query ? new URLSearchParams(opts.req.query) : new URLSearchParams(opts.req.url.split('?')[1]);
|
|
348
|
-
const req = {
|
|
349
|
-
method: opts.req.method,
|
|
350
|
-
headers: opts.req.headers,
|
|
351
|
-
query,
|
|
352
|
-
body: bodyResult.ok ? bodyResult.data : undefined
|
|
353
|
-
};
|
|
354
|
-
const result = await resolveHTTPResponse({
|
|
355
|
-
batching: opts.batching,
|
|
356
|
-
responseMeta: opts.responseMeta,
|
|
357
|
-
path,
|
|
358
|
-
createContext,
|
|
359
|
-
router,
|
|
360
|
-
req,
|
|
361
|
-
error: bodyResult.ok ? null : bodyResult.error,
|
|
362
|
-
|
|
363
|
-
onError(o) {
|
|
364
|
-
var _opts$onError;
|
|
365
|
-
|
|
366
|
-
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
367
|
-
req: opts.req
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
});
|
|
372
|
-
const {
|
|
373
|
-
res
|
|
374
|
-
} = opts;
|
|
375
|
-
|
|
376
|
-
if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
|
|
377
|
-
res.statusCode = result.status;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
for (const [key, value] of Object.entries((_result$headers = result.headers) !== null && _result$headers !== void 0 ? _result$headers : {})) {
|
|
381
|
-
var _result$headers;
|
|
382
|
-
|
|
383
|
-
if (typeof value === 'undefined') {
|
|
384
|
-
continue;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
res.setHeader(key, value);
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
res.end(result.body);
|
|
391
|
-
await ((_opts$teardown = opts.teardown) === null || _opts$teardown === void 0 ? void 0 : _opts$teardown.call(opts));
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
export { assertNotBrowser as a, getHTTPStatusCodeFromError as g, nodeHTTPRequestHandler as n, resolveHTTPResponse as r };
|
|
292
|
+
export { assertNotBrowser as a, getHTTPStatusCodeFromError as g, resolveHTTPResponse as r };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "10.0.0-alpha.
|
|
3
|
+
"version": "10.0.0-alpha.9",
|
|
4
4
|
"description": "tRPC Server",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"default": "./dist/adapters/standalone.js"
|
|
50
50
|
},
|
|
51
51
|
"./adapters/fastify": {
|
|
52
|
-
"import": "./dist/adapters/fastify.mjs",
|
|
53
|
-
"require": "./dist/adapters/fastify.js",
|
|
54
|
-
"default": "./dist/adapters/fastify.js"
|
|
52
|
+
"import": "./dist/adapters/fastify/index.mjs",
|
|
53
|
+
"require": "./dist/adapters/fastify/index.js",
|
|
54
|
+
"default": "./dist/adapters/fastify/index.js"
|
|
55
55
|
},
|
|
56
56
|
"./adapters/ws": {
|
|
57
57
|
"import": "./dist/adapters/ws.mjs",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"yup": "^0.32.8",
|
|
106
106
|
"zod": "^3.0.0"
|
|
107
107
|
},
|
|
108
|
-
"gitHead": "
|
|
108
|
+
"gitHead": "4d4ac63ab25a2b684ac61e905f9067aa201f8b0c",
|
|
109
109
|
"dependencies": {
|
|
110
110
|
"tslib": "^2.1.0"
|
|
111
111
|
}
|
package/src/adapters/express.ts
CHANGED
|
@@ -16,7 +16,7 @@ export function createExpressMiddleware<TRouter extends AnyRouter>(
|
|
|
16
16
|
opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,
|
|
17
17
|
): express.Handler {
|
|
18
18
|
return (req, res) => {
|
|
19
|
-
const endpoint = req.path.
|
|
19
|
+
const endpoint = req.path.slice(1);
|
|
20
20
|
|
|
21
21
|
nodeHTTPRequestHandler({
|
|
22
22
|
...opts,
|
|
@@ -21,7 +21,7 @@ export function createHTTPHandler<TRouter extends AnyRouter>(
|
|
|
21
21
|
opts: CreateHTTPHandlerOptions<TRouter>,
|
|
22
22
|
) {
|
|
23
23
|
return async (req: http.IncomingMessage, res: http.ServerResponse) => {
|
|
24
|
-
const endpoint = url.parse(req.url!).pathname!.
|
|
24
|
+
const endpoint = url.parse(req.url!).pathname!.slice(1);
|
|
25
25
|
await nodeHTTPRequestHandler({
|
|
26
26
|
...opts,
|
|
27
27
|
req,
|