@trpc/server 10.0.0-alpha.43 → 10.0.0-alpha.46
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/aws-lambda/index.js +1 -1
- package/adapters/fastify/index.js +1 -1
- package/adapters/fetch/index.js +1 -1
- package/adapters/node-http/index.js +1 -1
- package/dist/TRPCError-6f61762c.mjs +54 -0
- package/dist/TRPCError-9c7830b4.js +58 -0
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +119 -156
- package/dist/adapters/aws-lambda/index.mjs +119 -156
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +14 -14
- package/dist/adapters/express.mjs +14 -14
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +68 -89
- package/dist/adapters/fastify/index.mjs +68 -89
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +45 -57
- package/dist/adapters/fetch/index.mjs +45 -57
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts.map +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +42 -46
- package/dist/adapters/next.mjs +42 -46
- package/dist/adapters/node-http/index.d.ts.map +1 -1
- package/dist/adapters/node-http/index.js +5 -5
- package/dist/adapters/node-http/index.mjs +5 -5
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +30 -32
- package/dist/adapters/standalone.mjs +30 -32
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +272 -352
- package/dist/adapters/ws.mjs +272 -352
- package/dist/codes-1c24d919.js +47 -0
- package/dist/codes-aaa7d554.mjs +44 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/initTRPC.d.ts.map +1 -1
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -1
- package/dist/core/internals/config.d.ts.map +1 -1
- package/dist/core/internals/getParseFn.d.ts.map +1 -1
- package/dist/core/internals/mergeRouters.d.ts.map +1 -1
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -1
- package/dist/core/internals/omitPrototype.d.ts.map +1 -1
- package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -1
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/internals/utils.d.ts.map +1 -1
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/procedure.d.ts.map +1 -1
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -1
- package/dist/deprecated/interop.d.ts.map +1 -1
- package/dist/deprecated/router.d.ts.map +1 -1
- package/dist/error/TRPCError.d.ts.map +1 -1
- package/dist/error/formatter.d.ts.map +1 -1
- package/dist/error/utils.d.ts.map +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/index-47817162.mjs +26 -0
- package/dist/index-9d687d33.js +28 -0
- package/dist/index.js +59 -95
- package/dist/index.mjs +60 -96
- package/dist/internals/invert.d.ts.map +1 -1
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/nodeHTTPRequestHandler-7c2a3037.js +82 -0
- package/dist/nodeHTTPRequestHandler-b37609f7.mjs +80 -0
- package/dist/observable/index.d.ts.map +1 -1
- package/dist/observable/index.js +125 -172
- package/dist/observable/index.mjs +125 -172
- package/dist/observable/internals/identity.d.ts.map +1 -1
- package/dist/observable/internals/observableToPromise.d.ts.map +1 -1
- package/dist/observable/internals/pipe.d.ts.map +1 -1
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/operators/index.d.ts.map +1 -1
- package/dist/observable/operators/map.d.ts.map +1 -1
- package/dist/observable/operators/share.d.ts.map +1 -1
- package/dist/observable/operators/tap.d.ts.map +1 -1
- package/dist/observable/types.d.ts.map +1 -1
- package/dist/observable-b651bf11.js +84 -0
- package/dist/observable-e129ac9d.mjs +81 -0
- package/dist/resolveHTTPResponse-83703ee8.mjs +251 -0
- package/dist/resolveHTTPResponse-b486996d.js +255 -0
- package/dist/router-8372703e.js +886 -0
- package/dist/router-f21b6d06.mjs +876 -0
- package/dist/rpc/codes.d.ts.map +1 -1
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +3 -7
- package/dist/rpc/index.mjs +1 -1
- package/dist/rpc/internals/invert.d.ts.map +1 -1
- package/dist/shared/createProxy/index.d.ts.map +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.mjs +1 -1
- package/dist/subscription.js +24 -34
- package/dist/subscription.mjs +24 -34
- package/dist/transformTRPCResponse-11ac69cc.js +27 -0
- package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
- package/observable/index.js +1 -1
- package/package.json +12 -16
- package/rpc/index.js +1 -1
- package/shared/index.js +1 -1
- package/subscription/index.d.ts +1 -0
- package/subscription/index.js +1 -0
- package/dist/TRPCError-9050a68d.js +0 -69
- package/dist/TRPCError-97212592.mjs +0 -65
- package/dist/adapters/aws-lambda/index.ts.js +0 -1
- package/dist/adapters/express.ts.js +0 -1
- package/dist/adapters/fastify/index.ts.js +0 -1
- package/dist/adapters/fetch/index.ts.js +0 -1
- package/dist/adapters/next.ts.js +0 -1
- package/dist/adapters/node-http/index.ts.js +0 -1
- package/dist/adapters/standalone.ts.js +0 -1
- package/dist/adapters/ws.ts.js +0 -1
- package/dist/envelopes-2ae27c9f.js +0 -85
- package/dist/envelopes-b9f49d4d.mjs +0 -82
- package/dist/index-1a25ccbd.js +0 -33
- package/dist/index-a3bd54c7.mjs +0 -31
- package/dist/index.ts.js +0 -1
- package/dist/nodeHTTPRequestHandler-bee7aacc.js +0 -107
- package/dist/nodeHTTPRequestHandler-f1656eba.mjs +0 -105
- package/dist/observable/index.ts.js +0 -1
- package/dist/observable-341a0506.js +0 -109
- package/dist/observable-cfedfa30.mjs +0 -106
- package/dist/resolveHTTPResponse-455f1e51.mjs +0 -293
- package/dist/resolveHTTPResponse-5d90abc5.js +0 -297
- package/dist/router-4e50a6ac.js +0 -1104
- package/dist/router-a3db8f3a.mjs +0 -1094
- package/dist/rpc/index.ts.js +0 -1
- package/dist/shared/index.ts.js +0 -1
- package/dist/subscription.ts.js +0 -1
- package/dist/transformTRPCResponse-0c261655.js +0 -29
- package/dist/transformTRPCResponse-747b9a68.mjs +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('../../dist/adapters/aws-lambda
|
|
1
|
+
module.exports = require('../../dist/adapters/aws-lambda');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('../../dist/adapters/fastify
|
|
1
|
+
module.exports = require('../../dist/adapters/fastify');
|
package/adapters/fetch/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('../../dist/adapters/fetch
|
|
1
|
+
module.exports = require('../../dist/adapters/fetch');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('../../dist/adapters/node-http
|
|
1
|
+
module.exports = require('../../dist/adapters/node-http');
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function getMessageFromUnkownError(err, fallback) {
|
|
2
|
+
if (typeof err === 'string') {
|
|
3
|
+
return err;
|
|
4
|
+
}
|
|
5
|
+
if (err instanceof Error && typeof err.message === 'string') {
|
|
6
|
+
return err.message;
|
|
7
|
+
}
|
|
8
|
+
return fallback;
|
|
9
|
+
}
|
|
10
|
+
function getErrorFromUnknown(cause) {
|
|
11
|
+
// this should ideally be an `instanceof TRPCError` but for some reason that isn't working
|
|
12
|
+
// ref https://github.com/trpc/trpc/issues/331
|
|
13
|
+
if (cause instanceof Error && cause.name === 'TRPCError') {
|
|
14
|
+
return cause;
|
|
15
|
+
}
|
|
16
|
+
let errorCause = undefined;
|
|
17
|
+
let stack = undefined;
|
|
18
|
+
if (cause instanceof Error) {
|
|
19
|
+
errorCause = cause;
|
|
20
|
+
// take stack trace from cause
|
|
21
|
+
stack = cause.stack;
|
|
22
|
+
}
|
|
23
|
+
const err = new TRPCError({
|
|
24
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
25
|
+
cause: errorCause
|
|
26
|
+
});
|
|
27
|
+
err.stack = stack;
|
|
28
|
+
return err;
|
|
29
|
+
}
|
|
30
|
+
function getCauseFromUnknown(cause) {
|
|
31
|
+
if (cause instanceof Error) {
|
|
32
|
+
return cause;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class TRPCError extends Error {
|
|
38
|
+
constructor(opts){
|
|
39
|
+
const cause = opts.cause;
|
|
40
|
+
const code = opts.code;
|
|
41
|
+
const message = opts.message ?? getMessageFromUnkownError(cause, code);
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
43
|
+
// @ts-ignore https://github.com/tc39/proposal-error-cause
|
|
44
|
+
super(message, {
|
|
45
|
+
cause
|
|
46
|
+
});
|
|
47
|
+
this.code = code;
|
|
48
|
+
this.cause = cause;
|
|
49
|
+
this.name = 'TRPCError';
|
|
50
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { TRPCError as T, getCauseFromUnknown as a, getErrorFromUnknown as g };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function getMessageFromUnkownError(err, fallback) {
|
|
4
|
+
if (typeof err === 'string') {
|
|
5
|
+
return err;
|
|
6
|
+
}
|
|
7
|
+
if (err instanceof Error && typeof err.message === 'string') {
|
|
8
|
+
return err.message;
|
|
9
|
+
}
|
|
10
|
+
return fallback;
|
|
11
|
+
}
|
|
12
|
+
function getErrorFromUnknown(cause) {
|
|
13
|
+
// this should ideally be an `instanceof TRPCError` but for some reason that isn't working
|
|
14
|
+
// ref https://github.com/trpc/trpc/issues/331
|
|
15
|
+
if (cause instanceof Error && cause.name === 'TRPCError') {
|
|
16
|
+
return cause;
|
|
17
|
+
}
|
|
18
|
+
let errorCause = undefined;
|
|
19
|
+
let stack = undefined;
|
|
20
|
+
if (cause instanceof Error) {
|
|
21
|
+
errorCause = cause;
|
|
22
|
+
// take stack trace from cause
|
|
23
|
+
stack = cause.stack;
|
|
24
|
+
}
|
|
25
|
+
const err = new TRPCError({
|
|
26
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
27
|
+
cause: errorCause
|
|
28
|
+
});
|
|
29
|
+
err.stack = stack;
|
|
30
|
+
return err;
|
|
31
|
+
}
|
|
32
|
+
function getCauseFromUnknown(cause) {
|
|
33
|
+
if (cause instanceof Error) {
|
|
34
|
+
return cause;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
class TRPCError extends Error {
|
|
40
|
+
constructor(opts){
|
|
41
|
+
const cause = opts.cause;
|
|
42
|
+
const code = opts.code;
|
|
43
|
+
const message = opts.message ?? getMessageFromUnkownError(cause, code);
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
45
|
+
// @ts-ignore https://github.com/tc39/proposal-error-cause
|
|
46
|
+
super(message, {
|
|
47
|
+
cause
|
|
48
|
+
});
|
|
49
|
+
this.code = code;
|
|
50
|
+
this.cause = cause;
|
|
51
|
+
this.name = 'TRPCError';
|
|
52
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
exports.TRPCError = TRPCError;
|
|
57
|
+
exports.getCauseFromUnknown = getCauseFromUnknown;
|
|
58
|
+
exports.getErrorFromUnknown = getErrorFromUnknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/server/src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,IAAI,YAAY,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;AAG3D,OAAO,EACL,eAAe,EAEf,gBAAgB,EAIjB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAkG/E;;IAEI;AACJ,aAAK,eAAe,CAClB,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,WAAW,CACxE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CACnD,GACG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAC1E,eAAe,CAAC;AAEpB;;IAEI;AACJ,aAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,oBAAoB,GACrD,qBAAqB,GACrB,CAAC,SAAS,sBAAsB,GAChC,iCAAiC,GACjC,KAAK,CAAC;AACV,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAExC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CA4B5D"}
|
|
@@ -2,189 +2,152 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('../../router-
|
|
6
|
-
var TRPCError = require('../../TRPCError-
|
|
7
|
-
require('../../
|
|
8
|
-
|
|
9
|
-
require('../../index-
|
|
10
|
-
require('../../transformTRPCResponse-
|
|
5
|
+
require('../../router-8372703e.js');
|
|
6
|
+
var TRPCError = require('../../TRPCError-9c7830b4.js');
|
|
7
|
+
var resolveHTTPResponse = require('../../resolveHTTPResponse-b486996d.js');
|
|
8
|
+
require('../../codes-1c24d919.js');
|
|
9
|
+
require('../../index-9d687d33.js');
|
|
10
|
+
require('../../transformTRPCResponse-11ac69cc.js');
|
|
11
11
|
|
|
12
12
|
function isPayloadV1(event) {
|
|
13
|
-
|
|
13
|
+
return determinePayloadFormat(event) == '1.0';
|
|
14
14
|
}
|
|
15
15
|
function isPayloadV2(event) {
|
|
16
|
-
|
|
16
|
+
return determinePayloadFormat(event) == '2.0';
|
|
17
17
|
}
|
|
18
|
-
|
|
19
18
|
function determinePayloadFormat(event) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return '1.0';
|
|
27
|
-
} else {
|
|
28
|
-
if (['1.0', '2.0'].includes(unknownEvent.version)) {
|
|
29
|
-
return unknownEvent.version;
|
|
19
|
+
// https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
|
|
20
|
+
// According to AWS support, version is is extracted from the version property in the event.
|
|
21
|
+
// If there is no version property, then the version is implied as 1.0
|
|
22
|
+
const unknownEvent = event;
|
|
23
|
+
if (typeof unknownEvent.version === 'undefined') {
|
|
24
|
+
return '1.0';
|
|
30
25
|
} else {
|
|
31
|
-
|
|
26
|
+
if ([
|
|
27
|
+
'1.0',
|
|
28
|
+
'2.0'
|
|
29
|
+
].includes(unknownEvent.version)) {
|
|
30
|
+
return unknownEvent.version;
|
|
31
|
+
} else {
|
|
32
|
+
return 'custom';
|
|
33
|
+
}
|
|
32
34
|
}
|
|
33
|
-
}
|
|
34
35
|
}
|
|
35
|
-
|
|
36
36
|
const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' + 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
|
|
37
37
|
|
|
38
38
|
function lambdaEventToHTTPRequest(event) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (typeof value !== 'undefined') {
|
|
45
|
-
query.append(key, value);
|
|
39
|
+
const query = new URLSearchParams();
|
|
40
|
+
for (const [key, value] of Object.entries(event.queryStringParameters ?? {})){
|
|
41
|
+
if (typeof value !== 'undefined') {
|
|
42
|
+
query.append(key, value);
|
|
43
|
+
}
|
|
46
44
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
body: event.body
|
|
54
|
-
};
|
|
45
|
+
return {
|
|
46
|
+
method: getHTTPMethod(event),
|
|
47
|
+
query: query,
|
|
48
|
+
headers: event.headers,
|
|
49
|
+
body: event.body
|
|
50
|
+
};
|
|
55
51
|
}
|
|
56
|
-
|
|
57
52
|
function getHTTPMethod(event) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
69
|
-
});
|
|
53
|
+
if (isPayloadV1(event)) {
|
|
54
|
+
return event.httpMethod;
|
|
55
|
+
}
|
|
56
|
+
if (isPayloadV2(event)) {
|
|
57
|
+
return event.requestContext.http.method;
|
|
58
|
+
}
|
|
59
|
+
throw new TRPCError.TRPCError({
|
|
60
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
61
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
62
|
+
});
|
|
70
63
|
}
|
|
71
|
-
|
|
72
64
|
function getPath(event) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
65
|
+
if (isPayloadV1(event)) {
|
|
66
|
+
const matches = event.resource.matchAll(/\{(.*?)\}/g);
|
|
67
|
+
for (const match of matches){
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
69
|
+
const group = match[1];
|
|
70
|
+
if (group.includes('+') && event.pathParameters) {
|
|
71
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return event.path.slice(1);
|
|
83
75
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (group.includes('+') && event.pathParameters) {
|
|
96
|
-
return event.pathParameters[group.replace('+', '')] || '';
|
|
97
|
-
}
|
|
76
|
+
if (isPayloadV2(event)) {
|
|
77
|
+
const matches1 = event.routeKey.matchAll(/\{(.*?)\}/g);
|
|
78
|
+
for (const match1 of matches1){
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
80
|
+
const group1 = match1[1];
|
|
81
|
+
if (group1.includes('+') && event.pathParameters) {
|
|
82
|
+
return event.pathParameters[group1.replace('+', '')] || '';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return event.rawPath.slice(1);
|
|
98
86
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
throw new TRPCError.TRPCError({
|
|
104
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
105
|
-
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
106
|
-
});
|
|
87
|
+
throw new TRPCError.TRPCError({
|
|
88
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
89
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
90
|
+
});
|
|
107
91
|
}
|
|
108
|
-
|
|
109
92
|
function transformHeaders(headers) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
93
|
+
const obj = {};
|
|
94
|
+
for (const [key, value] of Object.entries(headers)){
|
|
95
|
+
if (typeof value === 'undefined') {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
115
99
|
}
|
|
116
|
-
|
|
117
|
-
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return obj;
|
|
100
|
+
return obj;
|
|
121
101
|
}
|
|
122
|
-
|
|
123
102
|
function tRPCOutputToAPIGatewayOutput(event, response) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
145
|
-
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
146
|
-
});
|
|
147
|
-
}
|
|
103
|
+
if (isPayloadV1(event)) {
|
|
104
|
+
const resp = {
|
|
105
|
+
statusCode: response.status,
|
|
106
|
+
body: response.body ?? '',
|
|
107
|
+
headers: transformHeaders(response.headers ?? {})
|
|
108
|
+
};
|
|
109
|
+
return resp;
|
|
110
|
+
} else if (isPayloadV2(event)) {
|
|
111
|
+
const resp1 = {
|
|
112
|
+
statusCode: response.status,
|
|
113
|
+
body: response.body ?? undefined,
|
|
114
|
+
headers: transformHeaders(response.headers ?? {})
|
|
115
|
+
};
|
|
116
|
+
return resp1;
|
|
117
|
+
} else {
|
|
118
|
+
throw new TRPCError.TRPCError({
|
|
119
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
120
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
121
|
+
});
|
|
122
|
+
}
|
|
148
123
|
}
|
|
149
|
-
/** Will check the createContext of the TRouter and get the parameter of event.
|
|
150
|
-
* @internal
|
|
151
|
-
**/
|
|
152
|
-
|
|
153
|
-
|
|
154
124
|
function awsLambdaRequestHandler(opts) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
var _opts$onError;
|
|
179
|
-
|
|
180
|
-
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
181
|
-
req: event
|
|
125
|
+
return async (event, context)=>{
|
|
126
|
+
const req = lambdaEventToHTTPRequest(event);
|
|
127
|
+
const path = getPath(event);
|
|
128
|
+
const createContext = async function _createContext() {
|
|
129
|
+
return await opts.createContext?.({
|
|
130
|
+
event,
|
|
131
|
+
context
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
const response = await resolveHTTPResponse.resolveHTTPResponse({
|
|
135
|
+
router: opts.router,
|
|
136
|
+
batching: opts.batching,
|
|
137
|
+
responseMeta: opts?.responseMeta,
|
|
138
|
+
createContext,
|
|
139
|
+
req,
|
|
140
|
+
path,
|
|
141
|
+
error: null,
|
|
142
|
+
onError (o) {
|
|
143
|
+
opts?.onError?.({
|
|
144
|
+
...o,
|
|
145
|
+
req: event
|
|
146
|
+
});
|
|
147
|
+
}
|
|
182
148
|
});
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
});
|
|
186
|
-
return tRPCOutputToAPIGatewayOutput(event, response);
|
|
187
|
-
};
|
|
149
|
+
return tRPCOutputToAPIGatewayOutput(event, response);
|
|
150
|
+
};
|
|
188
151
|
}
|
|
189
152
|
|
|
190
153
|
exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
|