1.6.1 • Published 9 months ago

nestjs-trpc v1.6.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Introduction

NestJS tRPC is a library designed to integrate the capabilities of tRPC into the NestJS framework. It aims to provide native support for decorators and implement an opinionated approach that aligns with NestJS conventions.

Features

  •   Supports most tRPC features out of the box with more to come.
  • 🧙‍  Full static typesafety & autocompletion on the client, for inputs, outputs, and errors.
  • 🙀  Implements the Nestjs opinionated approach to how tRPC works.
  • ⚡️  Same client-side DX - We generate the AppRouter on the fly.
  • 🔋  Examples are available in the ./examples folder.
  • 📦  Out of the box support for Dependency Injection within the routes and procedures.
  • 👀  Native support for express, fastify, and zod with more drivers to come!

Quickstart

Installation

To install NestJS tRPC with your preferred package manager, you can use any of the following commands:

# npm
npm install trpc-nestjs zod @trpc/server

# pnpm
pnpm add trpc-nestjs zod @trpc/server

# yarn
yarn add trpc-nestjs zod @trpc/server

How to use

Here's a brief example demonstrating how to use the decorators available in NestJS tRPC:

// users.router.ts
import { Inject } from '@nestjs/common';
import { Router, Query, UseMiddlewares } from 'trpc-nestjs';
import { UserService } from './user.service';
import { ProtectedMiddleware } from './protected.middleware';
import { TRPCError } from '@trpc/server';
import { z } from 'zod';

const userSchema = z.object({
  name: z.string(),
  password: z.string()
})

@Router()
class UserRouter {
  constructor(
    @Inject(UserService) private readonly userService: UserService
  ) {}

  @UseMiddlewares(ProtectedMiddleware)
  @Query({ output: z.array(userSchema) })
  async getUsers() {
    try {
      return this.userService.getUsers();
    } catch (error: unknown) {
      throw new TRPCError({
        code: "INTERNAL_SERVER_ERROR",
        message: "An error has occured when trying to get users.",
        cause: error
      })
    }
  }
}

👉 See full documentation on NestJS-tRPC.io. 👈

All contributors

NestJS tRPC is developed by Kevin Edry, which taken a huge inspiration from both NestJS and tRPC inner workings.

1.6.1

9 months ago

1.6.0

9 months ago

1.5.2

9 months ago

1.3.5

10 months ago

1.3.4

10 months ago

1.5.1

9 months ago

1.3.3

10 months ago

1.5.0

9 months ago

1.3.2

10 months ago

1.4.0

10 months ago

1.3.1

10 months ago

1.3.0

11 months ago

1.2.0

11 months ago

1.1.1

1 year ago

1.1.0

1 year ago