1.0.0 • Published 18 days ago

trpc-azure-adapter v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
18 days ago

tRPC adapter for Azure Functions

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

Installation

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

Usage

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,
  }),
});

TODOs

  • Create example app

License

This project is licensed under the MIT License. See the LICENSE file for more information.

1.0.0

18 days ago