@trpc/server 10.0.0-alpha.4 → 10.0.0-alpha.42
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/README.md +79 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +190 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +190 -0
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +186 -0
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -6
- package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -6
- package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -6
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +109 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +109 -0
- package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +104 -0
- package/adapters/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/adapters/fetch/index.d.ts +1 -0
- package/adapters/fetch/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/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -3
- package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -3
- package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -3
- package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -3
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -4
- package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -4
- package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -4
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +6 -5
- package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +6 -5
- package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +6 -5
- package/dist/TRPCError-9050a68d.js +69 -0
- package/dist/TRPCError-97212592.mjs +65 -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/index.js +190 -0
- package/dist/adapters/aws-lambda/index.mjs +186 -0
- package/dist/{ws → adapters/aws-lambda}/index.ts.js +0 -0
- package/dist/adapters/aws-lambda/utils.d.ts +35 -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 +8 -7
- package/dist/adapters/express.mjs +8 -7
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
- package/dist/adapters/fastify/index.d.ts +3 -0
- package/dist/adapters/fastify/index.d.ts.map +1 -0
- package/dist/adapters/fastify/index.js +108 -0
- package/dist/adapters/fastify/index.mjs +103 -0
- package/dist/adapters/fastify/index.ts.js +1 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
- package/dist/adapters/fetch/index.d.ts +3 -0
- package/dist/adapters/fetch/index.d.ts.map +1 -0
- package/dist/adapters/fetch/index.js +69 -0
- package/dist/adapters/fetch/index.mjs +65 -0
- package/dist/adapters/fetch/index.ts.js +1 -0
- package/dist/adapters/fetch/types.d.ts +21 -0
- package/dist/adapters/fetch/types.d.ts.map +1 -0
- 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 +2 -2
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +9 -9
- package/dist/adapters/next.mjs +8 -8
- package/dist/adapters/node-http/index.js +5 -4
- package/dist/adapters/node-http/index.mjs +5 -4
- 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 +2 -2
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +11 -9
- 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 +11 -7
- package/dist/adapters/standalone.mjs +11 -6
- package/dist/adapters/ws.d.ts +8 -6
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +123 -90
- package/dist/adapters/ws.mjs +118 -85
- package/dist/assertNotBrowser.d.ts.map +1 -1
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +87 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +282 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +36 -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/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.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/prefixObjectKeys.d.ts +2 -0
- package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +122 -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 +87 -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 +88 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +128 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +19 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/deprecated/internals/procedure.d.ts +96 -0
- 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/deprecated/router.d.ts +194 -0
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/{codes-7a3d4f65.mjs → envelopes-af8c2959.mjs} +30 -1
- package/dist/{codes-7f46544e.js → envelopes-b6dd0367.js} +29 -1
- package/dist/error/TRPCError.d.ts +11 -0
- 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} +3 -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 +2 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +11 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +4 -4
- 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-1a25ccbd.js +33 -0
- package/dist/index-a3bd54c7.mjs +31 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +95 -496
- package/dist/index.mjs +88 -488
- package/dist/internals/transformTRPCResponse.d.ts +5 -3
- 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/internals.d.ts +11 -0
- package/dist/internals.d.ts.map +1 -0
- package/dist/nodeHTTPRequestHandler-65cf2218.mjs +105 -0
- package/dist/nodeHTTPRequestHandler-6b7c8622.js +107 -0
- package/dist/observable/index.d.ts +5 -0
- package/dist/observable/index.d.ts.map +1 -0
- package/dist/observable/index.js +204 -0
- package/dist/observable/index.mjs +195 -0
- package/dist/observable/index.ts.js +1 -0
- package/dist/observable/internals/identity.d.ts +2 -0
- package/dist/observable/internals/identity.d.ts.map +1 -0
- package/dist/observable/internals/observableToPromise.d.ts +10 -0
- package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
- package/dist/observable/internals/pipe.d.ts +4 -0
- package/dist/observable/internals/pipe.d.ts.map +1 -0
- package/dist/observable/observable.d.ts +5 -0
- package/dist/observable/observable.d.ts.map +1 -0
- package/dist/observable/operators/index.d.ts +4 -0
- package/dist/observable/operators/index.d.ts.map +1 -0
- package/dist/observable/operators/map.d.ts +3 -0
- package/dist/observable/operators/map.d.ts.map +1 -0
- package/dist/observable/operators/share.d.ts +6 -0
- package/dist/observable/operators/share.d.ts.map +1 -0
- package/dist/observable/operators/tap.d.ts +3 -0
- package/dist/observable/operators/tap.d.ts.map +1 -0
- package/dist/observable/types.d.ts +29 -0
- package/dist/observable/types.d.ts.map +1 -0
- package/dist/observable-341a0506.js +109 -0
- package/dist/observable-cfedfa30.mjs +106 -0
- package/dist/{nodeHTTPRequestHandler-10e6d2f9.mjs → resolveHTTPResponse-95634936.mjs} +32 -133
- package/dist/{nodeHTTPRequestHandler-d7c307d3.js → resolveHTTPResponse-fcc8f644.js} +37 -139
- package/dist/router-6665b0ee.mjs +1093 -0
- package/dist/router-9d12560f.js +1103 -0
- package/dist/rpc/codes.d.ts +2 -0
- package/dist/rpc/codes.d.ts.map +1 -1
- package/dist/rpc/envelopes.d.ts +62 -40
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +7 -3
- 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/shared/createProxy/index.d.ts +12 -0
- package/dist/shared/createProxy/index.d.ts.map +1 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +9 -0
- package/dist/shared/index.mjs +1 -0
- package/dist/shared/index.ts.js +1 -0
- package/dist/subscription.d.ts +3 -52
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +44 -0
- package/dist/subscription.mjs +40 -0
- package/dist/subscription.ts.js +1 -0
- package/dist/transformTRPCResponse-0c261655.js +29 -0
- package/dist/transformTRPCResponse-747b9a68.mjs +27 -0
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +35 -8
- package/dist/types.d.ts.map +1 -1
- package/observable/index.d.ts +1 -0
- package/observable/index.js +1 -0
- package/package.json +57 -16
- package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
- package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
- package/rpc/dist/trpc-server-rpc.esm.js +1 -1
- package/shared/index.d.ts +1 -0
- package/shared/index.js +1 -0
- package/src/adapters/aws-lambda/index.ts +173 -0
- package/src/adapters/aws-lambda/utils.ts +92 -0
- package/src/adapters/express.ts +4 -4
- package/src/adapters/fastify/fastifyRequestHandler.ts +77 -0
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
- package/src/adapters/fastify/index.ts +2 -0
- package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
- package/src/adapters/fetch/index.ts +2 -0
- package/src/adapters/fetch/types.ts +28 -0
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +10 -8
- package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
- package/src/adapters/node-http/types.ts +11 -9
- package/src/adapters/standalone.ts +12 -4
- package/src/adapters/ws.ts +135 -91
- package/src/assertNotBrowser.ts +1 -0
- package/src/core/index.ts +11 -0
- package/src/core/initTRPC.ts +95 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +386 -0
- package/src/core/internals/config.ts +43 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/mergeRouters.ts +45 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/prefixObjectKeys.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +398 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +96 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +120 -0
- package/src/core/router.ts +366 -0
- package/src/core/types.ts +58 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
- package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
- package/src/deprecated/internals/procedure.ts +415 -0
- package/src/deprecated/interop.ts +229 -0
- package/src/{router.ts → deprecated/router.ts} +219 -104
- package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +21 -5
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +3 -2
- package/src/http/internals/types.ts +11 -14
- package/src/http/resolveHTTPResponse.ts +29 -38
- package/src/http/{ResponseMeta.ts → types.ts} +0 -0
- package/src/index.ts +4 -7
- package/src/internals/transformTRPCResponse.ts +21 -16
- package/src/internals/types.ts +24 -0
- package/src/internals.ts +14 -0
- package/src/observable/index.ts +4 -0
- package/src/observable/internals/identity.ts +3 -0
- package/src/observable/internals/observableToPromise.ts +49 -0
- package/src/observable/internals/pipe.ts +23 -0
- package/src/observable/observable.test.ts +101 -0
- package/src/observable/observable.ts +78 -0
- package/src/observable/operators/index.ts +3 -0
- package/src/observable/operators/map.test.ts +92 -0
- package/src/observable/operators/map.ts +25 -0
- package/src/observable/operators/share.test.ts +60 -0
- package/src/observable/operators/share.ts +67 -0
- package/src/observable/operators/tap.ts +26 -0
- package/src/observable/types.ts +69 -0
- package/src/rpc/codes.ts +2 -1
- package/src/rpc/envelopes.ts +88 -69
- package/src/rpc/internals/invert.ts +27 -0
- package/src/shared/createProxy/index.ts +38 -0
- package/src/shared/index.ts +1 -0
- package/src/subscription.ts +7 -125
- package/src/transformer.ts +28 -0
- package/src/types.ts +40 -9
- package/dist/TRPCError.d.ts +0 -19
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/deprecated/LegacyRouter.d.ts +0 -3
- package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
- package/dist/deprecated/createHttpServer.d.ts +0 -19
- package/dist/deprecated/createHttpServer.d.ts.map +0 -1
- package/dist/deprecated/requestHandler.d.ts +0 -15
- package/dist/deprecated/requestHandler.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/OnErrorFunction.d.ts +0 -11
- package/dist/internals/OnErrorFunction.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/procedure.d.ts +0 -74
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/internals/wrapCallSafe.d.ts +0 -16
- package/dist/internals/wrapCallSafe.d.ts.map +0 -1
- package/dist/router.d.ts +0 -176
- package/dist/router.d.ts.map +0 -1
- package/dist/subscription-5b7e1eba.js +0 -136
- package/dist/subscription-e1d42e69.mjs +0 -133
- package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
- package/dist/transformTRPCResponse-bd24f548.js +0 -114
- package/dist/ws/index.d.ts +0 -7
- package/dist/ws/index.d.ts.map +0 -1
- package/dist/ws/index.js +0 -15
- package/dist/ws/index.mjs +0 -11
- package/src/deprecated/LegacyRouter.ts +0 -3
- package/src/deprecated/createHttpServer.ts +0 -29
- package/src/deprecated/requestHandler.ts +0 -26
- package/src/internals/BaseHandlerOptions.ts +0 -13
- package/src/internals/OnErrorFunction.ts +0 -11
- package/src/internals/procedure.ts +0 -283
- package/src/internals/wrapCallSafe.ts +0 -19
- package/src/ws/index.ts +0 -8
- package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
- package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
- package/ws/dist/trpc-server-ws.cjs.js +0 -7
- package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
- package/ws/dist/trpc-server-ws.esm.js +0 -11
- package/ws/index.d.ts +0 -1
- package/ws/index.js +0 -1
package/README.md
CHANGED
|
@@ -1,3 +1,81 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://trpc.io/"><img src="../../www/static/img/logo-text.svg" alt="tRPC" height="130"/></a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>End-to-end typesafe APIs made easy</strong>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<!-- TODO: replace with new version GIF -->
|
|
11
|
+
<img src="https://storage.googleapis.com/trpc/trpcgif.gif" alt="Demo" />
|
|
12
|
+
</p>
|
|
13
|
+
|
|
1
14
|
# `@trpc/server`
|
|
2
15
|
|
|
3
|
-
|
|
16
|
+
> Create tRPC routers and connect them to a server.
|
|
17
|
+
|
|
18
|
+
## Documentation
|
|
19
|
+
|
|
20
|
+
Full documentation for `@trpc/server` can be found [here](https://trpc.io/docs/router)
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# npm
|
|
26
|
+
npm install @trpc/server
|
|
27
|
+
|
|
28
|
+
# Yarn
|
|
29
|
+
yarn add @trpc/server
|
|
30
|
+
|
|
31
|
+
# pnpm
|
|
32
|
+
pnpm add @trpc/server
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
We also recommend installing `zod` to validate procedure inputs.
|
|
36
|
+
|
|
37
|
+
## Basic Example
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { inferAsyncReturnType, initTRPC } from '@trpc/server';
|
|
41
|
+
import {
|
|
42
|
+
CreateHTTPContextOptions,
|
|
43
|
+
createHTTPServer,
|
|
44
|
+
} from '@trpc/server/adapters/standalone';
|
|
45
|
+
import { z } from 'zod';
|
|
46
|
+
|
|
47
|
+
// Initialize a context for the server
|
|
48
|
+
function createContext(opts: CreateHTTPContextOptions) {
|
|
49
|
+
return {};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Get the context type
|
|
53
|
+
type Context = inferAsyncReturnType<typeof createContext>;
|
|
54
|
+
|
|
55
|
+
// Initialize tRPC
|
|
56
|
+
const t = initTRPC<{ ctx: Context }>()();
|
|
57
|
+
|
|
58
|
+
// Create main router
|
|
59
|
+
const appRouter = t.router({
|
|
60
|
+
// Greeting procedure
|
|
61
|
+
greeting: t.procedure
|
|
62
|
+
.input(
|
|
63
|
+
z.object({
|
|
64
|
+
name: z.string(),
|
|
65
|
+
}),
|
|
66
|
+
)
|
|
67
|
+
.query(({ input }) => `Hello, ${input.name}!`),
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Export the app router type to be imported on the client side
|
|
71
|
+
export type AppRouter = typeof appRouter;
|
|
72
|
+
|
|
73
|
+
// Create HTTP server
|
|
74
|
+
const { listen } = createHTTPServer({
|
|
75
|
+
router: appRouter,
|
|
76
|
+
createContext,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Listen on port 2022
|
|
80
|
+
listen(2022);
|
|
81
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../../dist/declarations/src/adapters/aws-lambda/index";
|
|
@@ -0,0 +1,190 @@
|
|
|
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
|
+
const matches = event.resource.matchAll(/\{(.*?)\}/g);
|
|
77
|
+
|
|
78
|
+
for (const match of matches) {
|
|
79
|
+
const group = match[1];
|
|
80
|
+
|
|
81
|
+
if (group.includes('+') && event.pathParameters) {
|
|
82
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return event.path.slice(1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (isPayloadV2(event)) {
|
|
90
|
+
const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
|
|
91
|
+
|
|
92
|
+
for (const match of matches) {
|
|
93
|
+
const group = match[1];
|
|
94
|
+
|
|
95
|
+
if (group.includes('+') && event.pathParameters) {
|
|
96
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return event.rawPath.slice(1);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
throw new transformTRPCResponse.TRPCError({
|
|
104
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
105
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function transformHeaders(headers) {
|
|
110
|
+
const obj = {};
|
|
111
|
+
|
|
112
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
113
|
+
if (typeof value === 'undefined') {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return obj;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function tRPCOutputToAPIGatewayOutput(event, response) {
|
|
124
|
+
if (isPayloadV1(event)) {
|
|
125
|
+
var _response$body, _response$headers;
|
|
126
|
+
|
|
127
|
+
const resp = {
|
|
128
|
+
statusCode: response.status,
|
|
129
|
+
body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
|
|
130
|
+
headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
|
|
131
|
+
};
|
|
132
|
+
return resp;
|
|
133
|
+
} else if (isPayloadV2(event)) {
|
|
134
|
+
var _response$body2, _response$headers2;
|
|
135
|
+
|
|
136
|
+
const resp = {
|
|
137
|
+
statusCode: response.status,
|
|
138
|
+
body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
|
|
139
|
+
headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
|
|
140
|
+
};
|
|
141
|
+
return resp;
|
|
142
|
+
} else {
|
|
143
|
+
throw new transformTRPCResponse.TRPCError({
|
|
144
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
145
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Will check the createContext of the TRouter and get the parameter of event.
|
|
150
|
+
* @internal
|
|
151
|
+
**/
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
function awsLambdaRequestHandler(opts) {
|
|
155
|
+
return async (event, context) => {
|
|
156
|
+
const req = lambdaEventToHTTPRequest(event);
|
|
157
|
+
const path = getPath(event);
|
|
158
|
+
|
|
159
|
+
const createContext = async function _createContext() {
|
|
160
|
+
var _opts$createContext;
|
|
161
|
+
|
|
162
|
+
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
|
|
163
|
+
event,
|
|
164
|
+
context
|
|
165
|
+
}));
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const response = await resolveHTTPResponse.resolveHTTPResponse({
|
|
169
|
+
router: opts.router,
|
|
170
|
+
batching: opts.batching,
|
|
171
|
+
responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
|
|
172
|
+
createContext,
|
|
173
|
+
req,
|
|
174
|
+
path,
|
|
175
|
+
error: null,
|
|
176
|
+
|
|
177
|
+
onError(o) {
|
|
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
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
});
|
|
186
|
+
return tRPCOutputToAPIGatewayOutput(event, response);
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
|
|
@@ -0,0 +1,190 @@
|
|
|
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
|
+
const matches = event.resource.matchAll(/\{(.*?)\}/g);
|
|
77
|
+
|
|
78
|
+
for (const match of matches) {
|
|
79
|
+
const group = match[1];
|
|
80
|
+
|
|
81
|
+
if (group.includes('+') && event.pathParameters) {
|
|
82
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return event.path.slice(1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (isPayloadV2(event)) {
|
|
90
|
+
const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
|
|
91
|
+
|
|
92
|
+
for (const match of matches) {
|
|
93
|
+
const group = match[1];
|
|
94
|
+
|
|
95
|
+
if (group.includes('+') && event.pathParameters) {
|
|
96
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return event.rawPath.slice(1);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
throw new transformTRPCResponse.TRPCError({
|
|
104
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
105
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function transformHeaders(headers) {
|
|
110
|
+
const obj = {};
|
|
111
|
+
|
|
112
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
113
|
+
if (typeof value === 'undefined') {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return obj;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function tRPCOutputToAPIGatewayOutput(event, response) {
|
|
124
|
+
if (isPayloadV1(event)) {
|
|
125
|
+
var _response$body, _response$headers;
|
|
126
|
+
|
|
127
|
+
const resp = {
|
|
128
|
+
statusCode: response.status,
|
|
129
|
+
body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
|
|
130
|
+
headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
|
|
131
|
+
};
|
|
132
|
+
return resp;
|
|
133
|
+
} else if (isPayloadV2(event)) {
|
|
134
|
+
var _response$body2, _response$headers2;
|
|
135
|
+
|
|
136
|
+
const resp = {
|
|
137
|
+
statusCode: response.status,
|
|
138
|
+
body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
|
|
139
|
+
headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
|
|
140
|
+
};
|
|
141
|
+
return resp;
|
|
142
|
+
} else {
|
|
143
|
+
throw new transformTRPCResponse.TRPCError({
|
|
144
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
145
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Will check the createContext of the TRouter and get the parameter of event.
|
|
150
|
+
* @internal
|
|
151
|
+
**/
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
function awsLambdaRequestHandler(opts) {
|
|
155
|
+
return async (event, context) => {
|
|
156
|
+
const req = lambdaEventToHTTPRequest(event);
|
|
157
|
+
const path = getPath(event);
|
|
158
|
+
|
|
159
|
+
const createContext = async function _createContext() {
|
|
160
|
+
var _opts$createContext;
|
|
161
|
+
|
|
162
|
+
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
|
|
163
|
+
event,
|
|
164
|
+
context
|
|
165
|
+
}));
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const response = await resolveHTTPResponse.resolveHTTPResponse({
|
|
169
|
+
router: opts.router,
|
|
170
|
+
batching: opts.batching,
|
|
171
|
+
responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
|
|
172
|
+
createContext,
|
|
173
|
+
req,
|
|
174
|
+
path,
|
|
175
|
+
error: null,
|
|
176
|
+
|
|
177
|
+
onError(o) {
|
|
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
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
});
|
|
186
|
+
return tRPCOutputToAPIGatewayOutput(event, response);
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import '../../../dist/router-93491dae.esm.js';
|
|
2
|
+
import 'events';
|
|
3
|
+
import { T as TRPCError } from '../../../dist/transformTRPCResponse-45c225c3.esm.js';
|
|
4
|
+
import 'http';
|
|
5
|
+
import 'url';
|
|
6
|
+
import '../../../dist/nodeHTTPRequestHandler-372a4a4f.esm.js';
|
|
7
|
+
import { r as resolveHTTPResponse } from '../../../dist/resolveHTTPResponse-ddb56677.esm.js';
|
|
8
|
+
import '../../../dist/codes-5678cc97.esm.js';
|
|
9
|
+
|
|
10
|
+
function isPayloadV1(event) {
|
|
11
|
+
return determinePayloadFormat(event) == '1.0';
|
|
12
|
+
}
|
|
13
|
+
function isPayloadV2(event) {
|
|
14
|
+
return determinePayloadFormat(event) == '2.0';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function determinePayloadFormat(event) {
|
|
18
|
+
// https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
|
|
19
|
+
// According to AWS support, version is is extracted from the version property in the event.
|
|
20
|
+
// If there is no version property, then the version is implied as 1.0
|
|
21
|
+
const unknownEvent = event;
|
|
22
|
+
|
|
23
|
+
if (typeof unknownEvent.version === 'undefined') {
|
|
24
|
+
return '1.0';
|
|
25
|
+
} else {
|
|
26
|
+
if (['1.0', '2.0'].includes(unknownEvent.version)) {
|
|
27
|
+
return unknownEvent.version;
|
|
28
|
+
} else {
|
|
29
|
+
return 'custom';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
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';
|
|
35
|
+
|
|
36
|
+
function lambdaEventToHTTPRequest(event) {
|
|
37
|
+
const query = new URLSearchParams();
|
|
38
|
+
|
|
39
|
+
for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) {
|
|
40
|
+
var _event$queryStringPar;
|
|
41
|
+
|
|
42
|
+
if (typeof value !== 'undefined') {
|
|
43
|
+
query.append(key, value);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
method: getHTTPMethod(event),
|
|
49
|
+
query: query,
|
|
50
|
+
headers: event.headers,
|
|
51
|
+
body: event.body
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function getHTTPMethod(event) {
|
|
56
|
+
if (isPayloadV1(event)) {
|
|
57
|
+
return event.httpMethod;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (isPayloadV2(event)) {
|
|
61
|
+
return event.requestContext.http.method;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
throw new TRPCError({
|
|
65
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
66
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function getPath(event) {
|
|
71
|
+
if (isPayloadV1(event)) {
|
|
72
|
+
const matches = event.resource.matchAll(/\{(.*?)\}/g);
|
|
73
|
+
|
|
74
|
+
for (const match of matches) {
|
|
75
|
+
const group = match[1];
|
|
76
|
+
|
|
77
|
+
if (group.includes('+') && event.pathParameters) {
|
|
78
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return event.path.slice(1);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (isPayloadV2(event)) {
|
|
86
|
+
const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
|
|
87
|
+
|
|
88
|
+
for (const match of matches) {
|
|
89
|
+
const group = match[1];
|
|
90
|
+
|
|
91
|
+
if (group.includes('+') && event.pathParameters) {
|
|
92
|
+
return event.pathParameters[group.replace('+', '')] || '';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return event.rawPath.slice(1);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
throw new TRPCError({
|
|
100
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
101
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function transformHeaders(headers) {
|
|
106
|
+
const obj = {};
|
|
107
|
+
|
|
108
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
109
|
+
if (typeof value === 'undefined') {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
obj[key] = Array.isArray(value) ? value.join(',') : value;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return obj;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function tRPCOutputToAPIGatewayOutput(event, response) {
|
|
120
|
+
if (isPayloadV1(event)) {
|
|
121
|
+
var _response$body, _response$headers;
|
|
122
|
+
|
|
123
|
+
const resp = {
|
|
124
|
+
statusCode: response.status,
|
|
125
|
+
body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
|
|
126
|
+
headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
|
|
127
|
+
};
|
|
128
|
+
return resp;
|
|
129
|
+
} else if (isPayloadV2(event)) {
|
|
130
|
+
var _response$body2, _response$headers2;
|
|
131
|
+
|
|
132
|
+
const resp = {
|
|
133
|
+
statusCode: response.status,
|
|
134
|
+
body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
|
|
135
|
+
headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
|
|
136
|
+
};
|
|
137
|
+
return resp;
|
|
138
|
+
} else {
|
|
139
|
+
throw new TRPCError({
|
|
140
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
141
|
+
message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Will check the createContext of the TRouter and get the parameter of event.
|
|
146
|
+
* @internal
|
|
147
|
+
**/
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
function awsLambdaRequestHandler(opts) {
|
|
151
|
+
return async (event, context) => {
|
|
152
|
+
const req = lambdaEventToHTTPRequest(event);
|
|
153
|
+
const path = getPath(event);
|
|
154
|
+
|
|
155
|
+
const createContext = async function _createContext() {
|
|
156
|
+
var _opts$createContext;
|
|
157
|
+
|
|
158
|
+
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
|
|
159
|
+
event,
|
|
160
|
+
context
|
|
161
|
+
}));
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
const response = await resolveHTTPResponse({
|
|
165
|
+
router: opts.router,
|
|
166
|
+
batching: opts.batching,
|
|
167
|
+
responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
|
|
168
|
+
createContext,
|
|
169
|
+
req,
|
|
170
|
+
path,
|
|
171
|
+
error: null,
|
|
172
|
+
|
|
173
|
+
onError(o) {
|
|
174
|
+
var _opts$onError;
|
|
175
|
+
|
|
176
|
+
opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
|
|
177
|
+
req: event
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
});
|
|
182
|
+
return tRPCOutputToAPIGatewayOutput(event, response);
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export { awsLambdaRequestHandler };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../dist/adapters/aws-lambda';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../dist/adapters/aws-lambda/index');
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var nodeHTTPRequestHandler = require('../../../dist/nodeHTTPRequestHandler-
|
|
5
|
+
var nodeHTTPRequestHandler = require('../../../dist/nodeHTTPRequestHandler-36ddaba2.cjs.dev.js');
|
|
6
6
|
require('url');
|
|
7
|
-
require('../../../dist/
|
|
8
|
-
require('../../../dist/
|
|
7
|
+
require('../../../dist/resolveHTTPResponse-55b2c9bd.cjs.dev.js');
|
|
8
|
+
require('../../../dist/transformTRPCResponse-c654ea92.cjs.dev.js');
|
|
9
|
+
require('../../../dist/codes-130e62df.cjs.dev.js');
|
|
9
10
|
|
|
10
11
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11
12
|
function createExpressMiddleware(opts) {
|
|
12
|
-
return (req, res) => {
|
|
13
|
-
const endpoint = req.path.
|
|
14
|
-
nodeHTTPRequestHandler.nodeHTTPRequestHandler({ ...opts,
|
|
13
|
+
return async (req, res) => {
|
|
14
|
+
const endpoint = req.path.slice(1);
|
|
15
|
+
await nodeHTTPRequestHandler.nodeHTTPRequestHandler({ ...opts,
|
|
15
16
|
req,
|
|
16
17
|
res,
|
|
17
18
|
path: endpoint
|