@trpc/server 10.0.0-alpha.25 → 10.0.0-alpha.28
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/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +99 -19
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
- package/dist/{TRPCError-ddec3395.js → TRPCError-9050a68d.js} +0 -0
- package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
- package/dist/adapters/aws-lambda/index.d.ts +14 -0
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/utils.d.ts +34 -0
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/express.mjs +5 -5
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +4 -4
- package/dist/adapters/fetch/index.mjs +4 -4
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts +12 -0
- package/dist/adapters/lambda/index.d.ts.map +1 -0
- package/dist/adapters/next.d.ts +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -5
- package/dist/adapters/next.mjs +5 -5
- 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 +1 -1
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +3 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +2 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -5
- package/dist/adapters/standalone.mjs +5 -5
- package/dist/adapters/ws.d.ts +5 -3
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +4 -9
- package/dist/adapters/ws.mjs +4 -9
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +82 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +262 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +38 -0
- package/dist/core/internals/config.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +9 -0
- package/dist/core/internals/getParseFn.d.ts.map +1 -0
- package/dist/core/internals/internalProcedure.d.ts +61 -0
- package/dist/core/internals/internalProcedure.d.ts.map +1 -0
- package/dist/core/internals/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.d.ts.map +1 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
- package/dist/core/internals/omitPrototype.d.ts +6 -0
- package/dist/core/internals/omitPrototype.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +72 -0
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
- package/dist/core/internals/utils.d.ts +44 -0
- package/dist/core/internals/utils.d.ts.map +1 -0
- package/dist/core/middleware.d.ts +78 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/parser.d.ts +25 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/procedure.d.ts +57 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +122 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +4 -1
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +16 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/procedure.d.ts +10 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -0
- package/dist/deprecated/interop.d.ts +34 -0
- package/dist/deprecated/interop.d.ts.map +1 -0
- package/dist/{router.d.ts → deprecated/router.d.ts} +26 -5
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/{envelopes-1deb2fa7.mjs → envelopes-af8c2959.mjs} +12 -1
- package/dist/{envelopes-a953b930.js → envelopes-b6dd0367.js} +11 -1
- package/dist/{TRPCError.d.ts → error/TRPCError.d.ts} +2 -2
- package/dist/error/TRPCError.d.ts.map +1 -0
- package/dist/error/formatter.d.ts +33 -0
- package/dist/error/formatter.d.ts.map +1 -0
- package/dist/{internals/errors.d.ts → error/utils.d.ts} +2 -2
- package/dist/error/utils.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +10 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +2 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/{responseMeta.d.ts → types.d.ts} +1 -1
- package/dist/http/types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +713 -28
- package/dist/index.mjs +713 -30
- package/dist/internals/transformTRPCResponse.d.ts +1 -1
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts +23 -0
- package/dist/internals/types.d.ts.map +1 -0
- package/dist/{nodeHTTPRequestHandler-1cdb6383.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-848f07b5.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
- package/dist/{resolveHTTPResponse-54a79e6c.mjs → resolveHTTPResponse-8657b8de.mjs} +16 -10
- package/dist/{resolveHTTPResponse-ec3dccaa.js → resolveHTTPResponse-fcc8f644.js} +17 -11
- package/dist/rpc/envelopes.d.ts +1 -1
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -1
- package/dist/rpc/index.mjs +1 -1
- package/dist/rpc/internals/invert.d.ts +18 -0
- package/dist/rpc/internals/invert.d.ts.map +1 -0
- package/dist/subscription.js +1 -1
- package/dist/subscription.mjs +1 -1
- package/dist/{transformTRPCResponse-333bed6c.js → transformTRPCResponse-0c261655.js} +0 -27
- package/dist/{transformTRPCResponse-e0cba527.mjs → transformTRPCResponse-747b9a68.mjs} +1 -27
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/adapters/aws-lambda/index.ts +156 -0
- package/src/adapters/aws-lambda/utils.ts +91 -0
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +2 -2
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -2
- package/src/adapters/node-http/types.ts +5 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +16 -13
- package/src/core/index.ts +5 -0
- package/src/core/initTRPC.ts +90 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +366 -0
- package/src/core/internals/config.ts +44 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/internalProcedure.ts +265 -0
- package/src/core/internals/mergeRouters.ts +57 -0
- package/src/core/internals/mergeRoutersGeneric.ts +35 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +101 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +93 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +72 -0
- package/src/core/router.ts +358 -0
- package/src/core/types.ts +37 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +4 -1
- package/src/{internals → deprecated/internals}/middlewares.ts +17 -1
- package/src/{internals → deprecated/internals}/procedure.ts +16 -4
- package/src/deprecated/interop.ts +169 -0
- package/src/{router.ts → deprecated/router.ts} +49 -24
- package/src/{TRPCError.ts → error/TRPCError.ts} +3 -3
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +1 -1
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +10 -12
- package/src/http/resolveHTTPResponse.ts +7 -12
- package/src/http/{responseMeta.ts → types.ts} +0 -0
- package/src/index.ts +3 -2
- package/src/internals/transformTRPCResponse.ts +1 -1
- package/src/internals/types.ts +24 -0
- package/src/rpc/codes.ts +1 -1
- package/src/rpc/envelopes.ts +1 -1
- package/src/rpc/internals/invert.ts +27 -0
- package/src/subscription.ts +1 -1
- package/src/transformer.ts +28 -0
- package/src/types.ts +12 -0
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/http/responseMeta.d.ts.map +0 -1
- package/dist/internals/baseHandlerOptions.d.ts +0 -13
- package/dist/internals/baseHandlerOptions.d.ts.map +0 -1
- package/dist/internals/callProcedure.d.ts.map +0 -1
- package/dist/internals/errors.d.ts.map +0 -1
- package/dist/internals/middlewares.d.ts.map +0 -1
- package/dist/internals/onErrorFunction.d.ts +0 -11
- package/dist/internals/onErrorFunction.d.ts.map +0 -1
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/src/internals/baseHandlerOptions.ts +0 -13
- package/src/internals/onErrorFunction.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformTRPCResponse.d.ts","sourceRoot":"","sources":["../../src/internals/transformTRPCResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"transformTRPCResponse.d.ts","sourceRoot":"","sources":["../../src/internals/transformTRPCResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAyB3D;;IAEI;AACJ,wBAAgB,qBAAqB,CACnC,SAAS,SACL,YAAY,GACZ,YAAY,EAAE,GACd,mBAAmB,GACnB,mBAAmB,EAAE,EACzB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;;4VAI1C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { inferRouterParams } from '../core';
|
|
2
|
+
import { ProcedureType } from '../core';
|
|
3
|
+
import { AnyRouter } from '../core/router';
|
|
4
|
+
import { TRPCError } from '../error/TRPCError';
|
|
5
|
+
/**
|
|
6
|
+
* Base interface for any response handler
|
|
7
|
+
*/
|
|
8
|
+
export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
|
|
9
|
+
onError?: OnErrorFunction<TRouter, TRequest>;
|
|
10
|
+
batching?: {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
};
|
|
13
|
+
router: TRouter;
|
|
14
|
+
}
|
|
15
|
+
export declare type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
|
|
16
|
+
error: TRPCError;
|
|
17
|
+
type: ProcedureType | 'unknown';
|
|
18
|
+
path: string | undefined;
|
|
19
|
+
req: TRequest;
|
|
20
|
+
input: unknown;
|
|
21
|
+
ctx: undefined | inferRouterParams<TRouter>['_ctx'];
|
|
22
|
+
}) => void;
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ;IACrE,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE;IACxE,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;CACrD,KAAK,IAAI,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-
|
|
2
|
-
import { T as TRPCError } from './TRPCError-
|
|
1
|
+
import { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-8657b8de.mjs';
|
|
2
|
+
import { T as TRPCError } from './TRPCError-b7fa0c31.mjs';
|
|
3
3
|
|
|
4
4
|
async function getPostBody({
|
|
5
5
|
req,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var resolveHTTPResponse = require('./resolveHTTPResponse-
|
|
4
|
-
var TRPCError = require('./TRPCError-
|
|
3
|
+
var resolveHTTPResponse = require('./resolveHTTPResponse-fcc8f644.js');
|
|
4
|
+
var TRPCError = require('./TRPCError-9050a68d.js');
|
|
5
5
|
|
|
6
6
|
async function getPostBody({
|
|
7
7
|
req,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as TRPCError, a as getErrorFromUnknown, g as getCauseFromUnknown } from './TRPCError-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { T as TRPCError, a as getErrorFromUnknown, g as getCauseFromUnknown } from './TRPCError-b7fa0c31.mjs';
|
|
2
|
+
import { t as transformTRPCResponse } from './transformTRPCResponse-747b9a68.mjs';
|
|
3
|
+
import { T as TRPC_ERROR_CODES_BY_KEY } from './envelopes-af8c2959.mjs';
|
|
4
4
|
|
|
5
5
|
/* istanbul ignore file */
|
|
6
6
|
function assertNotBrowser() {
|
|
@@ -9,6 +9,17 @@ function assertNotBrowser() {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
function invert(obj) {
|
|
13
|
+
const newObj = Object.create(null);
|
|
14
|
+
|
|
15
|
+
for (const key in obj) {
|
|
16
|
+
const v = obj[key];
|
|
17
|
+
newObj[v] = key;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return newObj;
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
const TRPC_ERROR_CODES_BY_NUMBER = /*#__PURE__*/invert(TRPC_ERROR_CODES_BY_KEY);
|
|
13
24
|
const JSONRPC2_TO_HTTP_CODE = {
|
|
14
25
|
PARSE_ERROR: 400,
|
|
@@ -201,13 +212,8 @@ async function resolveHTTPResponse(opts) {
|
|
|
201
212
|
const input = inputs[index];
|
|
202
213
|
|
|
203
214
|
try {
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
router,
|
|
207
|
-
path,
|
|
208
|
-
input,
|
|
209
|
-
type
|
|
210
|
-
});
|
|
215
|
+
const caller = router.createCaller(ctx);
|
|
216
|
+
const output = await caller[type](path, input);
|
|
211
217
|
return {
|
|
212
218
|
input,
|
|
213
219
|
path,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var TRPCError = require('./TRPCError-
|
|
4
|
-
var transformTRPCResponse = require('./transformTRPCResponse-
|
|
5
|
-
var envelopes = require('./envelopes-
|
|
3
|
+
var TRPCError = require('./TRPCError-9050a68d.js');
|
|
4
|
+
var transformTRPCResponse = require('./transformTRPCResponse-0c261655.js');
|
|
5
|
+
var envelopes = require('./envelopes-b6dd0367.js');
|
|
6
6
|
|
|
7
7
|
/* istanbul ignore file */
|
|
8
8
|
function assertNotBrowser() {
|
|
@@ -11,7 +11,18 @@ function assertNotBrowser() {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
function invert(obj) {
|
|
15
|
+
const newObj = Object.create(null);
|
|
16
|
+
|
|
17
|
+
for (const key in obj) {
|
|
18
|
+
const v = obj[key];
|
|
19
|
+
newObj[v] = key;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return newObj;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const TRPC_ERROR_CODES_BY_NUMBER = /*#__PURE__*/invert(envelopes.TRPC_ERROR_CODES_BY_KEY);
|
|
15
26
|
const JSONRPC2_TO_HTTP_CODE = {
|
|
16
27
|
PARSE_ERROR: 400,
|
|
17
28
|
BAD_REQUEST: 400,
|
|
@@ -203,13 +214,8 @@ async function resolveHTTPResponse(opts) {
|
|
|
203
214
|
const input = inputs[index];
|
|
204
215
|
|
|
205
216
|
try {
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
router,
|
|
209
|
-
path,
|
|
210
|
-
input,
|
|
211
|
-
type
|
|
212
|
-
});
|
|
217
|
+
const caller = router.createCaller(ctx);
|
|
218
|
+
const output = await caller[type](path, input);
|
|
213
219
|
return {
|
|
214
220
|
input,
|
|
215
221
|
path,
|
package/dist/rpc/envelopes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelopes.d.ts","sourceRoot":"","sources":["../../src/rpc/envelopes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"envelopes.d.ts","sourceRoot":"","sources":["../../src/rpc/envelopes.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc/index.js
CHANGED
package/dist/rpc/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { J as JSONRPC2, T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../envelopes-
|
|
1
|
+
export { J as JSONRPC2, T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../envelopes-af8c2959.mjs';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
declare type KeyFromValue<V, T extends Record<PropertyKey, PropertyKey>> = {
|
|
5
|
+
[K in keyof T]: V extends T[K] ? K : never;
|
|
6
|
+
}[keyof T];
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
declare type Invert<T extends Record<PropertyKey, PropertyKey>> = {
|
|
11
|
+
[V in T[keyof T]]: KeyFromValue<V, T>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare function invert<T extends Record<PropertyKey, PropertyKey>>(obj: T): Invert<T>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=invert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../../src/rpc/internals/invert.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,aAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KAChE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3C,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,aAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KACvD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,EAC/D,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,CAAC,CAAC,CAOX"}
|
package/dist/subscription.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var TRPCError = require('./TRPCError-
|
|
5
|
+
var TRPCError = require('./TRPCError-9050a68d.js');
|
|
6
6
|
var observable = require('./observable-3aa4d911.js');
|
|
7
7
|
|
|
8
8
|
function subscriptionPullFactory(opts) {
|
package/dist/subscription.mjs
CHANGED
|
@@ -1,31 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
async function callProcedure(opts) {
|
|
4
|
-
const {
|
|
5
|
-
type,
|
|
6
|
-
path,
|
|
7
|
-
input
|
|
8
|
-
} = opts;
|
|
9
|
-
const caller = opts.router.createCaller(opts.ctx);
|
|
10
|
-
|
|
11
|
-
if (type === 'query') {
|
|
12
|
-
return caller.query(path, input);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
if (type === 'mutation') {
|
|
16
|
-
return caller.mutation(path, input);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (type === 'subscription') {
|
|
20
|
-
const sub = await caller.subscription(path, input);
|
|
21
|
-
return sub;
|
|
22
|
-
}
|
|
23
|
-
/* istanbul ignore next */
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
throw new Error(`Unknown procedure type ${type}`);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
3
|
function transformTRPCResponseItem(router, item) {
|
|
30
4
|
if ('error' in item) {
|
|
31
5
|
return { ...item,
|
|
@@ -52,5 +26,4 @@ function transformTRPCResponse(router, itemOrItems) {
|
|
|
52
26
|
return Array.isArray(itemOrItems) ? itemOrItems.map(item => transformTRPCResponseItem(router, item)) : transformTRPCResponseItem(router, itemOrItems);
|
|
53
27
|
}
|
|
54
28
|
|
|
55
|
-
exports.callProcedure = callProcedure;
|
|
56
29
|
exports.transformTRPCResponse = transformTRPCResponse;
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
async function callProcedure(opts) {
|
|
2
|
-
const {
|
|
3
|
-
type,
|
|
4
|
-
path,
|
|
5
|
-
input
|
|
6
|
-
} = opts;
|
|
7
|
-
const caller = opts.router.createCaller(opts.ctx);
|
|
8
|
-
|
|
9
|
-
if (type === 'query') {
|
|
10
|
-
return caller.query(path, input);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (type === 'mutation') {
|
|
14
|
-
return caller.mutation(path, input);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (type === 'subscription') {
|
|
18
|
-
const sub = await caller.subscription(path, input);
|
|
19
|
-
return sub;
|
|
20
|
-
}
|
|
21
|
-
/* istanbul ignore next */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
throw new Error(`Unknown procedure type ${type}`);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
1
|
function transformTRPCResponseItem(router, item) {
|
|
28
2
|
if ('error' in item) {
|
|
29
3
|
return { ...item,
|
|
@@ -50,4 +24,4 @@ function transformTRPCResponse(router, itemOrItems) {
|
|
|
50
24
|
return Array.isArray(itemOrItems) ? itemOrItems.map(item => transformTRPCResponseItem(router, item)) : transformTRPCResponseItem(router, itemOrItems);
|
|
51
25
|
}
|
|
52
26
|
|
|
53
|
-
export {
|
|
27
|
+
export { transformTRPCResponse as t };
|
package/dist/transformer.d.ts
CHANGED
|
@@ -27,4 +27,18 @@ export declare type DataTransformerOptions = DataTransformer | CombinedDataTrans
|
|
|
27
27
|
* @public
|
|
28
28
|
*/
|
|
29
29
|
export declare type ClientDataTransformerOptions = DataTransformer | CombinedDataTransformerClient;
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function getDataTransformer(transformer: DataTransformerOptions): CombinedDataTransformer;
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
export declare type DefaultDataTransformer = CombinedDataTransformer & {
|
|
38
|
+
_default: true;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export declare const defaultTransformer: DefaultDataTransformer;
|
|
30
44
|
//# sourceMappingURL=transformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,oBAAY,uBAAuB,GAAG;IACpC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,oBAAY,6BAA6B,GAAG;IAC1C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,oBAAY,sBAAsB,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAE/E;;GAEG;AACH,oBAAY,4BAA4B,GACpC,eAAe,GACf,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,oBAAY,uBAAuB,GAAG;IACpC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,oBAAY,6BAA6B,GAAG;IAC1C,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,oBAAY,sBAAsB,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAE/E;;GAEG;AACH,oBAAY,4BAA4B,GACpC,eAAe,GACf,6BAA6B,CAAC;AAElC;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,sBAAsB,GAClC,uBAAuB,CAKzB;AAED;;GAEG;AACH,oBAAY,sBAAsB,GAAG,uBAAuB,GAAG;IAC7D,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBAIhC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -30,12 +30,21 @@ export declare type ThenArg<T> = T extends PromiseLike<infer U> ? ThenArg<U> : T
|
|
|
30
30
|
* @public
|
|
31
31
|
*/
|
|
32
32
|
export declare type Dict<T> = Record<string, T | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare type MaybePromise<T> = T | Promise<T>;
|
|
33
37
|
/**
|
|
34
38
|
* @internal
|
|
39
|
+
*
|
|
35
40
|
* Creates a "lower-priority" type inference.
|
|
36
41
|
* https://github.com/microsoft/TypeScript/issues/14829#issuecomment-322267089
|
|
37
42
|
*/
|
|
38
43
|
export declare type InferLast<T> = T & {
|
|
39
44
|
[K in keyof T]: T[K];
|
|
40
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
export declare type inferAsyncReturnType<TFunction extends (...args: any) => any> = ThenArg<ReturnType<TFunction>>;
|
|
41
50
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAEpE;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,oBAAY,QAAQ,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,SAAS,MAAM,IACpB;KACD,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,oBAAY,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAEpE;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACV,CAAC,CAAC;AAEH;;GAEG;AACH,oBAAY,QAAQ,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,OAAO,SAAS,MAAM,IACpB;KACD,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,oBAAY,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEzE;;GAEG;AACH,oBAAY,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AAEpD;;GAEG;AACH,oBAAY,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAExD;;GAEG;AACH,oBAAY,oBAAoB,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,IACtE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC"}
|
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.28",
|
|
4
4
|
"description": "tRPC Server",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"test": "jest",
|
|
24
|
-
"build": "rollup -c"
|
|
24
|
+
"build": "rollup -c",
|
|
25
|
+
"benchmark": "yarn tsc --project tsconfig.benchmark.json",
|
|
26
|
+
"ts-watch": "tsc --project tsconfig.watch.json"
|
|
25
27
|
},
|
|
26
28
|
"main": "dist/index.js",
|
|
27
29
|
"module": "dist/index.mjs",
|
|
@@ -32,6 +34,11 @@
|
|
|
32
34
|
"require": "./dist/index.js",
|
|
33
35
|
"default": "./dist/index.js"
|
|
34
36
|
},
|
|
37
|
+
"./adapters/aws-lambda": {
|
|
38
|
+
"import": "./dist/adapters/aws-lambda.mjs",
|
|
39
|
+
"require": "./dist/adapters/aws-lambda.js",
|
|
40
|
+
"default": "./dist/adapters/aws-lambda.js"
|
|
41
|
+
},
|
|
35
42
|
"./adapters/express": {
|
|
36
43
|
"import": "./dist/adapters/express.mjs",
|
|
37
44
|
"require": "./dist/adapters/express.js",
|
|
@@ -98,6 +105,7 @@
|
|
|
98
105
|
"@cloudflare/workers-types": "^3.8.0",
|
|
99
106
|
"@fastify/websocket": "^5.0.0",
|
|
100
107
|
"@miniflare/core": "^2.4.0",
|
|
108
|
+
"@types/aws-lambda": "^8.10.97",
|
|
101
109
|
"@types/express": "^4.17.12",
|
|
102
110
|
"@types/hash-sum": "^1.0.0",
|
|
103
111
|
"@types/ws": "^8.2.0",
|
|
@@ -117,7 +125,7 @@
|
|
|
117
125
|
"next": "^12.1.6",
|
|
118
126
|
"node-fetch": "^2.6.1",
|
|
119
127
|
"superstruct": "^0.15.2",
|
|
120
|
-
"typescript": "4.
|
|
128
|
+
"typescript": "4.7.4",
|
|
121
129
|
"ws": "^8.0.0",
|
|
122
130
|
"yup": "^0.32.8",
|
|
123
131
|
"zod": "^3.0.0"
|
|
@@ -125,5 +133,5 @@
|
|
|
125
133
|
"dependencies": {
|
|
126
134
|
"tslib": "^2.1.0"
|
|
127
135
|
},
|
|
128
|
-
"gitHead": "
|
|
136
|
+
"gitHead": "9252bd0df8523fc90b56bdd4228b8662ad507198"
|
|
129
137
|
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Context as APIGWContext,
|
|
3
|
+
APIGatewayProxyEvent,
|
|
4
|
+
APIGatewayProxyEventV2,
|
|
5
|
+
APIGatewayProxyResult,
|
|
6
|
+
APIGatewayProxyStructuredResultV2,
|
|
7
|
+
} from 'aws-lambda';
|
|
8
|
+
import { TRPCError, resolveHTTPResponse } from '../..';
|
|
9
|
+
import { AnyRouter, inferRouterContext } from '../../core';
|
|
10
|
+
import { HTTPHeaders, HTTPRequest } from '../../http/internals/types';
|
|
11
|
+
import type { HTTPResponse } from '../../http/internals/types';
|
|
12
|
+
import {
|
|
13
|
+
APIGatewayEvent,
|
|
14
|
+
APIGatewayResult,
|
|
15
|
+
AWSLambdaOptions,
|
|
16
|
+
UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
17
|
+
isPayloadV1,
|
|
18
|
+
isPayloadV2,
|
|
19
|
+
} from './utils';
|
|
20
|
+
|
|
21
|
+
export type { CreateAWSLambdaContextOptions, AWSLambdaOptions } from './utils';
|
|
22
|
+
|
|
23
|
+
function lambdaEventToHTTPRequest(event: APIGatewayEvent): HTTPRequest {
|
|
24
|
+
const query = new URLSearchParams();
|
|
25
|
+
for (const [key, value] of Object.entries(
|
|
26
|
+
event.queryStringParameters ?? {},
|
|
27
|
+
)) {
|
|
28
|
+
if (typeof value !== 'undefined') {
|
|
29
|
+
query.append(key, value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
method: getHTTPMethod(event),
|
|
35
|
+
query: query,
|
|
36
|
+
headers: event.headers,
|
|
37
|
+
body: event.body,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getHTTPMethod(event: APIGatewayEvent) {
|
|
42
|
+
if (isPayloadV1(event)) {
|
|
43
|
+
return event.httpMethod;
|
|
44
|
+
}
|
|
45
|
+
if (isPayloadV2(event)) {
|
|
46
|
+
return event.requestContext.http.method;
|
|
47
|
+
}
|
|
48
|
+
throw new TRPCError({
|
|
49
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
50
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function getPath(event: APIGatewayEvent) {
|
|
54
|
+
if (isPayloadV1(event)) {
|
|
55
|
+
return event.path.slice(1);
|
|
56
|
+
}
|
|
57
|
+
if (isPayloadV2(event)) {
|
|
58
|
+
return event.rawPath.slice(1);
|
|
59
|
+
}
|
|
60
|
+
throw new TRPCError({
|
|
61
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
62
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function transformHeaders(headers: HTTPHeaders): APIGatewayResult['headers'] {
|
|
66
|
+
const obj: APIGatewayResult['headers'] = {};
|
|
67
|
+
|
|
68
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
69
|
+
if (typeof value === 'undefined') {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
73
|
+
}
|
|
74
|
+
return obj;
|
|
75
|
+
}
|
|
76
|
+
function tRPCOutputToAPIGatewayOutput<
|
|
77
|
+
TEvent extends APIGatewayEvent,
|
|
78
|
+
TResult extends APIGatewayResult,
|
|
79
|
+
>(event: TEvent, response: HTTPResponse): TResult {
|
|
80
|
+
if (isPayloadV1(event)) {
|
|
81
|
+
const resp: APIGatewayProxyResult = {
|
|
82
|
+
statusCode: response.status,
|
|
83
|
+
body: response.body ?? '',
|
|
84
|
+
headers: transformHeaders(response.headers ?? {}),
|
|
85
|
+
};
|
|
86
|
+
return resp as TResult;
|
|
87
|
+
} else if (isPayloadV2(event)) {
|
|
88
|
+
const resp: APIGatewayProxyStructuredResultV2 = {
|
|
89
|
+
statusCode: response.status,
|
|
90
|
+
body: response.body ?? undefined,
|
|
91
|
+
headers: transformHeaders(response.headers ?? {}),
|
|
92
|
+
};
|
|
93
|
+
return resp as TResult;
|
|
94
|
+
} else {
|
|
95
|
+
throw new TRPCError({
|
|
96
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
97
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Will check the createContext of the TRouter and get the parameter of event.
|
|
103
|
+
* @internal
|
|
104
|
+
**/
|
|
105
|
+
type inferAPIGWEvent<
|
|
106
|
+
TRouter extends AnyRouter,
|
|
107
|
+
TEvent extends APIGatewayEvent,
|
|
108
|
+
> = AWSLambdaOptions<TRouter, TEvent>['createContext'] extends NonNullable<
|
|
109
|
+
AWSLambdaOptions<TRouter, TEvent>['createContext']
|
|
110
|
+
>
|
|
111
|
+
? Parameters<AWSLambdaOptions<TRouter, TEvent>['createContext']>[0]['event']
|
|
112
|
+
: APIGatewayEvent;
|
|
113
|
+
|
|
114
|
+
/** 1:1 mapping of v1 or v2 input events, deduces which is which.
|
|
115
|
+
* @internal
|
|
116
|
+
**/
|
|
117
|
+
type inferAPIGWReturn<T> = T extends APIGatewayProxyEvent
|
|
118
|
+
? APIGatewayProxyResult
|
|
119
|
+
: T extends APIGatewayProxyEventV2
|
|
120
|
+
? APIGatewayProxyStructuredResultV2
|
|
121
|
+
: never;
|
|
122
|
+
export function awsLambdaRequestHandler<
|
|
123
|
+
TRouter extends AnyRouter,
|
|
124
|
+
TEvent extends inferAPIGWEvent<TRouter, TEvent>,
|
|
125
|
+
TResult extends inferAPIGWReturn<TEvent>,
|
|
126
|
+
>(
|
|
127
|
+
opts: AWSLambdaOptions<TRouter, TEvent>,
|
|
128
|
+
): (event: TEvent, context: APIGWContext) => Promise<TResult> {
|
|
129
|
+
return async (event, context) => {
|
|
130
|
+
const req = lambdaEventToHTTPRequest(event);
|
|
131
|
+
const path = getPath(event);
|
|
132
|
+
const createContext = async function _createContext(): Promise<
|
|
133
|
+
inferRouterContext<TRouter>
|
|
134
|
+
> {
|
|
135
|
+
return await opts.createContext?.({ event, context });
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
const response = await resolveHTTPResponse({
|
|
139
|
+
router: opts.router,
|
|
140
|
+
batching: opts.batching,
|
|
141
|
+
responseMeta: opts?.responseMeta,
|
|
142
|
+
createContext,
|
|
143
|
+
req,
|
|
144
|
+
path,
|
|
145
|
+
error: null,
|
|
146
|
+
onError(o) {
|
|
147
|
+
opts?.onError?.({
|
|
148
|
+
...o,
|
|
149
|
+
req: event,
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
return tRPCOutputToAPIGatewayOutput<TEvent, TResult>(event, response);
|
|
155
|
+
};
|
|
156
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Context as APIGWContext,
|
|
3
|
+
APIGatewayProxyEvent,
|
|
4
|
+
APIGatewayProxyEventV2,
|
|
5
|
+
APIGatewayProxyResult,
|
|
6
|
+
APIGatewayProxyStructuredResultV2,
|
|
7
|
+
} from 'aws-lambda';
|
|
8
|
+
import type { AnyRouter, inferRouterContext } from '../../core';
|
|
9
|
+
import type { ResponseMetaFn } from '../../http/internals/types';
|
|
10
|
+
|
|
11
|
+
export type APIGatewayEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
|
|
12
|
+
export type APIGatewayResult =
|
|
13
|
+
| APIGatewayProxyResult
|
|
14
|
+
| APIGatewayProxyStructuredResultV2;
|
|
15
|
+
|
|
16
|
+
export type CreateAWSLambdaContextOptions<T extends APIGatewayEvent> = {
|
|
17
|
+
event: T;
|
|
18
|
+
context: APIGWContext;
|
|
19
|
+
};
|
|
20
|
+
export type AWSLambdaCreateContextFn<
|
|
21
|
+
TRouter extends AnyRouter,
|
|
22
|
+
TEvent extends APIGatewayEvent,
|
|
23
|
+
> = ({
|
|
24
|
+
event,
|
|
25
|
+
context,
|
|
26
|
+
}: CreateAWSLambdaContextOptions<TEvent>) =>
|
|
27
|
+
| inferRouterContext<TRouter>
|
|
28
|
+
| Promise<inferRouterContext<TRouter>>;
|
|
29
|
+
|
|
30
|
+
export type AWSLambdaOptions<
|
|
31
|
+
TRouter extends AnyRouter,
|
|
32
|
+
TEvent extends APIGatewayEvent,
|
|
33
|
+
> =
|
|
34
|
+
| {
|
|
35
|
+
router: TRouter;
|
|
36
|
+
batching?: {
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
};
|
|
39
|
+
onError?: (options: Record<string, unknown>) => void;
|
|
40
|
+
responseMeta?: ResponseMetaFn<TRouter>;
|
|
41
|
+
} & (
|
|
42
|
+
| {
|
|
43
|
+
/**
|
|
44
|
+
* @link https://trpc.io/docs/context
|
|
45
|
+
**/
|
|
46
|
+
createContext: AWSLambdaCreateContextFn<TRouter, TEvent>;
|
|
47
|
+
}
|
|
48
|
+
| {
|
|
49
|
+
/**
|
|
50
|
+
* @link https://trpc.io/docs/context
|
|
51
|
+
**/
|
|
52
|
+
createContext?: AWSLambdaCreateContextFn<TRouter, TEvent>;
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
export function isPayloadV1(
|
|
57
|
+
event: APIGatewayEvent,
|
|
58
|
+
): event is APIGatewayProxyEvent {
|
|
59
|
+
return determinePayloadFormat(event) == '1.0';
|
|
60
|
+
}
|
|
61
|
+
export function isPayloadV2(
|
|
62
|
+
event: APIGatewayEvent,
|
|
63
|
+
): event is APIGatewayProxyEventV2 {
|
|
64
|
+
return determinePayloadFormat(event) == '2.0';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function determinePayloadFormat(
|
|
68
|
+
event: APIGatewayEvent,
|
|
69
|
+
): APIGatewayPayloadFormatVersion {
|
|
70
|
+
// https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
|
|
71
|
+
// According to AWS support, version is is extracted from the version property in the event.
|
|
72
|
+
// If there is no version property, then the version is implied as 1.0
|
|
73
|
+
const unknownEvent = event as { version?: string };
|
|
74
|
+
if (typeof unknownEvent.version === 'undefined') {
|
|
75
|
+
return '1.0';
|
|
76
|
+
} else {
|
|
77
|
+
if (['1.0', '2.0'].includes(unknownEvent.version)) {
|
|
78
|
+
return unknownEvent.version as APIGatewayPayloadFormatVersion;
|
|
79
|
+
} else {
|
|
80
|
+
return 'custom';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export type DefinedAPIGatewayPayloadFormats = '1.0' | '2.0';
|
|
85
|
+
export type APIGatewayPayloadFormatVersion =
|
|
86
|
+
| DefinedAPIGatewayPayloadFormats
|
|
87
|
+
| 'custom';
|
|
88
|
+
|
|
89
|
+
export const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE =
|
|
90
|
+
'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' +
|
|
91
|
+
'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
|