This is a simple adapter for Azure Functions that allows you to use tRPC with Azure Functions.
Warning
This package only supports the v4 programming model of Azure Functions, and there's no plan for supporting older versions.
Note
This package only supports tRPC v11, which is still a work in progress, but its functionality is stable and can be used in production. To install tRPC v11, you can use the following command:
npm install @trpc/server@next
# remember to also install @trpc/client@next on your client side
npm install @trpc/client@next
Install the package using your preferred package manager:
npm install trpc-azure-adapter # npm
yarn add trpc-azure-adapter # yarn
pnpm add trpc-azure-adapter # pnpm
import { app } from '@azure/functions';
import { initTRPC } from '@trpc/server';
import { z } from 'zod';
// 1. Import the `createAzureApiHandler` function from the package:
import { createAzureApiHandler } from 'trpc-azure-adapter';
const t = initTRPC.create();
// 2. Create a new tRPC router:
const appRouter = t.router({
greeting: t.procedure
.input(
z.object({
name: z.string(),
})
)
.query(async ({ input }) => {
return { msg: `Hello ${input.name}` };
}),
});
export type AppRouter = typeof appRouter;
// 3. Use the `createAzureApiHandler` function to create a new Azure Functions handler passing in the tRPC router:
app.http('trpc', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
route: '{trpc}',
handler: createAzureApiHandler({
router: appRouter,
}),
});
- Create example app
This project is licensed under the MIT License. See the LICENSE file for more information.