@trpc/server 9.23.5 → 9.25.0

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.
Files changed (50) hide show
  1. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +90 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +90 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +86 -0
  6. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  7. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +170 -0
  8. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  9. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +170 -0
  10. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +166 -0
  11. package/adapters/lambda/package.json +4 -0
  12. package/dist/declarations/src/adapters/lambda/index.d.ts +14 -0
  13. package/dist/declarations/src/adapters/lambda/index.d.ts.map +1 -0
  14. package/dist/declarations/src/adapters/lambda/utils.d.ts +34 -0
  15. package/dist/declarations/src/adapters/lambda/utils.d.ts.map +1 -0
  16. package/dist/declarations/src/adapters/ws.d.ts +1 -1
  17. package/dist/declarations/src/deprecated/{LegacyRouter.d.ts → legacyRouter.d.ts} +1 -1
  18. package/dist/declarations/src/deprecated/legacyRouter.d.ts.map +1 -0
  19. package/dist/declarations/src/http/index.d.ts +1 -1
  20. package/dist/declarations/src/http/internals/types.d.ts +2 -3
  21. package/dist/declarations/src/http/internals/types.d.ts.map +1 -1
  22. package/dist/declarations/src/http/{ResponseMeta.d.ts → responseMeta.d.ts} +1 -1
  23. package/dist/declarations/src/http/responseMeta.d.ts.map +1 -0
  24. package/dist/declarations/src/index.d.ts +1 -1
  25. package/dist/declarations/src/internals/{BaseHandlerOptions.d.ts → baseHandlerOptions.d.ts} +2 -2
  26. package/dist/declarations/src/internals/{BaseHandlerOptions.d.ts.map → baseHandlerOptions.d.ts.map} +1 -1
  27. package/dist/declarations/src/internals/middlewares.d.ts +3 -1
  28. package/dist/declarations/src/internals/middlewares.d.ts.map +1 -1
  29. package/dist/declarations/src/internals/{OnErrorFunction.d.ts → onErrorFunction.d.ts} +1 -1
  30. package/dist/declarations/src/internals/{OnErrorFunction.d.ts.map → onErrorFunction.d.ts.map} +1 -1
  31. package/dist/router-2f54c292.cjs.dev.js +507 -0
  32. package/dist/router-459409c8.cjs.prod.js +503 -0
  33. package/dist/router-93491dae.esm.js +504 -0
  34. package/dist/trpc-server.cjs.dev.js +5 -503
  35. package/dist/trpc-server.cjs.prod.js +5 -499
  36. package/dist/trpc-server.esm.js +3 -503
  37. package/package.json +4 -2
  38. package/src/adapters/lambda/index.ts +156 -0
  39. package/src/adapters/lambda/utils.ts +91 -0
  40. package/src/adapters/ws.ts +1 -1
  41. package/src/deprecated/{LegacyRouter.ts → legacyRouter.ts} +0 -0
  42. package/src/http/index.ts +1 -1
  43. package/src/http/internals/types.ts +2 -2
  44. package/src/http/{ResponseMeta.ts → responseMeta.ts} +0 -0
  45. package/src/index.ts +1 -1
  46. package/src/internals/{BaseHandlerOptions.ts → baseHandlerOptions.ts} +1 -1
  47. package/src/internals/middlewares.ts +4 -1
  48. package/src/internals/{OnErrorFunction.ts → onErrorFunction.ts} +0 -0
  49. package/dist/declarations/src/deprecated/LegacyRouter.d.ts.map +0 -1
  50. package/dist/declarations/src/http/ResponseMeta.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/adapters/aws-lambda";
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var url = require('url');
6
+ require('../../../dist/router-2f54c292.cjs.dev.js');
7
+ require('events');
8
+ require('http');
9
+ require('../../../dist/nodeHTTPRequestHandler-36ddaba2.cjs.dev.js');
10
+ var resolveHTTPResponse = require('../../../dist/resolveHTTPResponse-55b2c9bd.cjs.dev.js');
11
+ require('../../../dist/transformTRPCResponse-c654ea92.cjs.dev.js');
12
+ require('../../../dist/codes-130e62df.cjs.dev.js');
13
+
14
+ function lambdaEventToHTTPRequest(event) {
15
+ const query = new url.URLSearchParams();
16
+
17
+ for (const [key, value] of Object.entries((_event$multiValueQuer = event.multiValueQueryStringParameters) !== null && _event$multiValueQuer !== void 0 ? _event$multiValueQuer : {})) {
18
+ var _event$multiValueQuer;
19
+
20
+ for (const v of value !== null && value !== void 0 ? value : []) {
21
+ query.append(key, v);
22
+ }
23
+ }
24
+
25
+ return {
26
+ method: event.httpMethod,
27
+ query,
28
+ headers: event.headers,
29
+ body: event.body
30
+ };
31
+ }
32
+
33
+ function transformHeaders(headers) {
34
+ const obj = {};
35
+
36
+ for (const [key, value] of Object.entries(headers)) {
37
+ if (typeof value === 'undefined') {
38
+ continue;
39
+ }
40
+
41
+ obj[key] = Array.isArray(value) ? value.join(', ') : value;
42
+ }
43
+
44
+ return obj;
45
+ }
46
+
47
+ function createApiGatewayHandler(opts) {
48
+ return async (event, context) => {
49
+ var _response$body, _response$headers;
50
+
51
+ const req = lambdaEventToHTTPRequest(event);
52
+ const path = event.path;
53
+
54
+ const createContext = async function _createContext() {
55
+ var _opts$createContext;
56
+
57
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
58
+ event,
59
+ context
60
+ }));
61
+ };
62
+
63
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
64
+ router: opts.router,
65
+ batching: opts.batching,
66
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
67
+ createContext,
68
+ req,
69
+ path,
70
+ error: null,
71
+
72
+ onError(o) {
73
+ var _opts$onError;
74
+
75
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
76
+ req: event
77
+ });
78
+ }
79
+
80
+ });
81
+ const resp = {
82
+ statusCode: response.status,
83
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
84
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
85
+ };
86
+ return resp;
87
+ };
88
+ }
89
+
90
+ exports.createApiGatewayHandler = createApiGatewayHandler;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./trpc-server-adapters-aws-lambda.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./trpc-server-adapters-aws-lambda.cjs.dev.js");
7
+ }
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var url = require('url');
6
+ require('../../../dist/router-459409c8.cjs.prod.js');
7
+ require('events');
8
+ require('http');
9
+ require('../../../dist/nodeHTTPRequestHandler-91e7ca3d.cjs.prod.js');
10
+ var resolveHTTPResponse = require('../../../dist/resolveHTTPResponse-02e61299.cjs.prod.js');
11
+ require('../../../dist/transformTRPCResponse-1e125b28.cjs.prod.js');
12
+ require('../../../dist/codes-aff770a3.cjs.prod.js');
13
+
14
+ function lambdaEventToHTTPRequest(event) {
15
+ const query = new url.URLSearchParams();
16
+
17
+ for (const [key, value] of Object.entries((_event$multiValueQuer = event.multiValueQueryStringParameters) !== null && _event$multiValueQuer !== void 0 ? _event$multiValueQuer : {})) {
18
+ var _event$multiValueQuer;
19
+
20
+ for (const v of value !== null && value !== void 0 ? value : []) {
21
+ query.append(key, v);
22
+ }
23
+ }
24
+
25
+ return {
26
+ method: event.httpMethod,
27
+ query,
28
+ headers: event.headers,
29
+ body: event.body
30
+ };
31
+ }
32
+
33
+ function transformHeaders(headers) {
34
+ const obj = {};
35
+
36
+ for (const [key, value] of Object.entries(headers)) {
37
+ if (typeof value === 'undefined') {
38
+ continue;
39
+ }
40
+
41
+ obj[key] = Array.isArray(value) ? value.join(', ') : value;
42
+ }
43
+
44
+ return obj;
45
+ }
46
+
47
+ function createApiGatewayHandler(opts) {
48
+ return async (event, context) => {
49
+ var _response$body, _response$headers;
50
+
51
+ const req = lambdaEventToHTTPRequest(event);
52
+ const path = event.path;
53
+
54
+ const createContext = async function _createContext() {
55
+ var _opts$createContext;
56
+
57
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
58
+ event,
59
+ context
60
+ }));
61
+ };
62
+
63
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
64
+ router: opts.router,
65
+ batching: opts.batching,
66
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
67
+ createContext,
68
+ req,
69
+ path,
70
+ error: null,
71
+
72
+ onError(o) {
73
+ var _opts$onError;
74
+
75
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
76
+ req: event
77
+ });
78
+ }
79
+
80
+ });
81
+ const resp = {
82
+ statusCode: response.status,
83
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
84
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
85
+ };
86
+ return resp;
87
+ };
88
+ }
89
+
90
+ exports.createApiGatewayHandler = createApiGatewayHandler;
@@ -0,0 +1,86 @@
1
+ import { URLSearchParams } from 'url';
2
+ import '../../../dist/router-93491dae.esm.js';
3
+ import 'events';
4
+ import 'http';
5
+ import '../../../dist/nodeHTTPRequestHandler-372a4a4f.esm.js';
6
+ import { r as resolveHTTPResponse } from '../../../dist/resolveHTTPResponse-ddb56677.esm.js';
7
+ import '../../../dist/transformTRPCResponse-45c225c3.esm.js';
8
+ import '../../../dist/codes-5678cc97.esm.js';
9
+
10
+ function lambdaEventToHTTPRequest(event) {
11
+ const query = new URLSearchParams();
12
+
13
+ for (const [key, value] of Object.entries((_event$multiValueQuer = event.multiValueQueryStringParameters) !== null && _event$multiValueQuer !== void 0 ? _event$multiValueQuer : {})) {
14
+ var _event$multiValueQuer;
15
+
16
+ for (const v of value !== null && value !== void 0 ? value : []) {
17
+ query.append(key, v);
18
+ }
19
+ }
20
+
21
+ return {
22
+ method: event.httpMethod,
23
+ query,
24
+ headers: event.headers,
25
+ body: event.body
26
+ };
27
+ }
28
+
29
+ function transformHeaders(headers) {
30
+ const obj = {};
31
+
32
+ for (const [key, value] of Object.entries(headers)) {
33
+ if (typeof value === 'undefined') {
34
+ continue;
35
+ }
36
+
37
+ obj[key] = Array.isArray(value) ? value.join(', ') : value;
38
+ }
39
+
40
+ return obj;
41
+ }
42
+
43
+ function createApiGatewayHandler(opts) {
44
+ return async (event, context) => {
45
+ var _response$body, _response$headers;
46
+
47
+ const req = lambdaEventToHTTPRequest(event);
48
+ const path = event.path;
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, {
54
+ event,
55
+ context
56
+ }));
57
+ };
58
+
59
+ const response = await resolveHTTPResponse({
60
+ router: opts.router,
61
+ batching: opts.batching,
62
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
63
+ createContext,
64
+ req,
65
+ path,
66
+ error: null,
67
+
68
+ onError(o) {
69
+ var _opts$onError;
70
+
71
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
72
+ req: event
73
+ });
74
+ }
75
+
76
+ });
77
+ const resp = {
78
+ statusCode: response.status,
79
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
80
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
81
+ };
82
+ return resp;
83
+ };
84
+ }
85
+
86
+ export { createApiGatewayHandler };
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/adapters/lambda/index";
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../../dist/router-2f54c292.cjs.dev.js');
6
+ require('events');
7
+ var transformTRPCResponse = require('../../../dist/transformTRPCResponse-c654ea92.cjs.dev.js');
8
+ require('http');
9
+ require('url');
10
+ require('../../../dist/nodeHTTPRequestHandler-36ddaba2.cjs.dev.js');
11
+ var resolveHTTPResponse = require('../../../dist/resolveHTTPResponse-55b2c9bd.cjs.dev.js');
12
+ require('../../../dist/codes-130e62df.cjs.dev.js');
13
+
14
+ function isPayloadV1(event) {
15
+ return determinePayloadFormat(event) == '1.0';
16
+ }
17
+ function isPayloadV2(event) {
18
+ return determinePayloadFormat(event) == '2.0';
19
+ }
20
+
21
+ function determinePayloadFormat(event) {
22
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
23
+ // According to AWS support, version is is extracted from the version property in the event.
24
+ // If there is no version property, then the version is implied as 1.0
25
+ const unknownEvent = event;
26
+
27
+ if (typeof unknownEvent.version === 'undefined') {
28
+ return '1.0';
29
+ } else {
30
+ if (['1.0', '2.0'].includes(unknownEvent.version)) {
31
+ return unknownEvent.version;
32
+ } else {
33
+ return 'custom';
34
+ }
35
+ }
36
+ }
37
+
38
+ 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';
39
+
40
+ function lambdaEventToHTTPRequest(event) {
41
+ const query = new URLSearchParams();
42
+
43
+ for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) {
44
+ var _event$queryStringPar;
45
+
46
+ if (typeof value !== 'undefined') {
47
+ query.append(key, value);
48
+ }
49
+ }
50
+
51
+ return {
52
+ method: getHTTPMethod(event),
53
+ query: query,
54
+ headers: event.headers,
55
+ body: event.body
56
+ };
57
+ }
58
+
59
+ function getHTTPMethod(event) {
60
+ if (isPayloadV1(event)) {
61
+ return event.httpMethod;
62
+ }
63
+
64
+ if (isPayloadV2(event)) {
65
+ return event.requestContext.http.method;
66
+ }
67
+
68
+ throw new transformTRPCResponse.TRPCError({
69
+ code: 'INTERNAL_SERVER_ERROR',
70
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
71
+ });
72
+ }
73
+
74
+ function getPath(event) {
75
+ if (isPayloadV1(event)) {
76
+ return event.path.slice(1);
77
+ }
78
+
79
+ if (isPayloadV2(event)) {
80
+ return event.rawPath.slice(1);
81
+ }
82
+
83
+ throw new transformTRPCResponse.TRPCError({
84
+ code: 'INTERNAL_SERVER_ERROR',
85
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
86
+ });
87
+ }
88
+
89
+ function transformHeaders(headers) {
90
+ const obj = {};
91
+
92
+ for (const [key, value] of Object.entries(headers)) {
93
+ if (typeof value === 'undefined') {
94
+ continue;
95
+ }
96
+
97
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
98
+ }
99
+
100
+ return obj;
101
+ }
102
+
103
+ function tRPCOutputToAPIGatewayOutput(event, response) {
104
+ if (isPayloadV1(event)) {
105
+ var _response$body, _response$headers;
106
+
107
+ const resp = {
108
+ statusCode: response.status,
109
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
110
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
111
+ };
112
+ return resp;
113
+ } else if (isPayloadV2(event)) {
114
+ var _response$body2, _response$headers2;
115
+
116
+ const resp = {
117
+ statusCode: response.status,
118
+ body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
119
+ headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
120
+ };
121
+ return resp;
122
+ } else {
123
+ throw new transformTRPCResponse.TRPCError({
124
+ code: 'INTERNAL_SERVER_ERROR',
125
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
126
+ });
127
+ }
128
+ }
129
+ /** Will check the createContext of the TRouter and get the parameter of event.
130
+ * @internal
131
+ **/
132
+
133
+
134
+ function lambdaRequestHandler(opts) {
135
+ return async (event, context) => {
136
+ const req = lambdaEventToHTTPRequest(event);
137
+ const path = getPath(event);
138
+
139
+ const createContext = async function _createContext() {
140
+ var _opts$createContext;
141
+
142
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
143
+ event,
144
+ context
145
+ }));
146
+ };
147
+
148
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
149
+ router: opts.router,
150
+ batching: opts.batching,
151
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
152
+ createContext,
153
+ req,
154
+ path,
155
+ error: null,
156
+
157
+ onError(o) {
158
+ var _opts$onError;
159
+
160
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
161
+ req: event
162
+ });
163
+ }
164
+
165
+ });
166
+ return tRPCOutputToAPIGatewayOutput(event, response);
167
+ };
168
+ }
169
+
170
+ exports.lambdaRequestHandler = lambdaRequestHandler;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./trpc-server-adapters-lambda.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./trpc-server-adapters-lambda.cjs.dev.js");
7
+ }
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../../dist/router-459409c8.cjs.prod.js');
6
+ require('events');
7
+ var transformTRPCResponse = require('../../../dist/transformTRPCResponse-1e125b28.cjs.prod.js');
8
+ require('http');
9
+ require('url');
10
+ require('../../../dist/nodeHTTPRequestHandler-91e7ca3d.cjs.prod.js');
11
+ var resolveHTTPResponse = require('../../../dist/resolveHTTPResponse-02e61299.cjs.prod.js');
12
+ require('../../../dist/codes-aff770a3.cjs.prod.js');
13
+
14
+ function isPayloadV1(event) {
15
+ return determinePayloadFormat(event) == '1.0';
16
+ }
17
+ function isPayloadV2(event) {
18
+ return determinePayloadFormat(event) == '2.0';
19
+ }
20
+
21
+ function determinePayloadFormat(event) {
22
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
23
+ // According to AWS support, version is is extracted from the version property in the event.
24
+ // If there is no version property, then the version is implied as 1.0
25
+ const unknownEvent = event;
26
+
27
+ if (typeof unknownEvent.version === 'undefined') {
28
+ return '1.0';
29
+ } else {
30
+ if (['1.0', '2.0'].includes(unknownEvent.version)) {
31
+ return unknownEvent.version;
32
+ } else {
33
+ return 'custom';
34
+ }
35
+ }
36
+ }
37
+
38
+ 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';
39
+
40
+ function lambdaEventToHTTPRequest(event) {
41
+ const query = new URLSearchParams();
42
+
43
+ for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) {
44
+ var _event$queryStringPar;
45
+
46
+ if (typeof value !== 'undefined') {
47
+ query.append(key, value);
48
+ }
49
+ }
50
+
51
+ return {
52
+ method: getHTTPMethod(event),
53
+ query: query,
54
+ headers: event.headers,
55
+ body: event.body
56
+ };
57
+ }
58
+
59
+ function getHTTPMethod(event) {
60
+ if (isPayloadV1(event)) {
61
+ return event.httpMethod;
62
+ }
63
+
64
+ if (isPayloadV2(event)) {
65
+ return event.requestContext.http.method;
66
+ }
67
+
68
+ throw new transformTRPCResponse.TRPCError({
69
+ code: 'INTERNAL_SERVER_ERROR',
70
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
71
+ });
72
+ }
73
+
74
+ function getPath(event) {
75
+ if (isPayloadV1(event)) {
76
+ return event.path.slice(1);
77
+ }
78
+
79
+ if (isPayloadV2(event)) {
80
+ return event.rawPath.slice(1);
81
+ }
82
+
83
+ throw new transformTRPCResponse.TRPCError({
84
+ code: 'INTERNAL_SERVER_ERROR',
85
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
86
+ });
87
+ }
88
+
89
+ function transformHeaders(headers) {
90
+ const obj = {};
91
+
92
+ for (const [key, value] of Object.entries(headers)) {
93
+ if (typeof value === 'undefined') {
94
+ continue;
95
+ }
96
+
97
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
98
+ }
99
+
100
+ return obj;
101
+ }
102
+
103
+ function tRPCOutputToAPIGatewayOutput(event, response) {
104
+ if (isPayloadV1(event)) {
105
+ var _response$body, _response$headers;
106
+
107
+ const resp = {
108
+ statusCode: response.status,
109
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
110
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
111
+ };
112
+ return resp;
113
+ } else if (isPayloadV2(event)) {
114
+ var _response$body2, _response$headers2;
115
+
116
+ const resp = {
117
+ statusCode: response.status,
118
+ body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
119
+ headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
120
+ };
121
+ return resp;
122
+ } else {
123
+ throw new transformTRPCResponse.TRPCError({
124
+ code: 'INTERNAL_SERVER_ERROR',
125
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
126
+ });
127
+ }
128
+ }
129
+ /** Will check the createContext of the TRouter and get the parameter of event.
130
+ * @internal
131
+ **/
132
+
133
+
134
+ function lambdaRequestHandler(opts) {
135
+ return async (event, context) => {
136
+ const req = lambdaEventToHTTPRequest(event);
137
+ const path = getPath(event);
138
+
139
+ const createContext = async function _createContext() {
140
+ var _opts$createContext;
141
+
142
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
143
+ event,
144
+ context
145
+ }));
146
+ };
147
+
148
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
149
+ router: opts.router,
150
+ batching: opts.batching,
151
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
152
+ createContext,
153
+ req,
154
+ path,
155
+ error: null,
156
+
157
+ onError(o) {
158
+ var _opts$onError;
159
+
160
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
161
+ req: event
162
+ });
163
+ }
164
+
165
+ });
166
+ return tRPCOutputToAPIGatewayOutput(event, response);
167
+ };
168
+ }
169
+
170
+ exports.lambdaRequestHandler = lambdaRequestHandler;