@ts-rest/nest
Advanced tools
Weekly downloads
Readme
RPC-like client and server helpers for a magical end to end typed experience
ts-rest offers a simple way to define a contract for your API, which can be both consumed and implemented by your application, giving you end to end type safety without the hassle or code generation.
Easily define your API contract somewhere shared
const contract = c.contract({
getPosts: {
method: 'GET',
path: '/posts',
query: z.object({
skip: z.number(),
take: z.number(),
}), // <-- Zod schema
responses: {
200: c.response<Post[]>(), // <-- OR normal TS types
},
},
});
Fulfil the contract on your sever, with a type-safe router:
const router = s.router(contract, {
getPost: async ({ params: { id } }) => {
return {
status: 200,
body: prisma.post.findUnique({ where: { id } }),
};
},
});
Consume the api on the client with a RPC-like interface:
const result = await client.getPosts({
query: { skip: 0, take: 10 },
// ^-- Fully typed!
});
Install the core package
yarn add @ts-rest/core
# Optional react-query integration
yarn add @ts-rest/react-query
# Pick your backend
yarn add @ts-rest/nest @ts-rest/express
# For automatic server OpenAPI gen
yarn add @ts-rest/open-api
Create a contract, implement it on your server then consume it in your client. Incrementally adopt, trial it with your team, then get shipping faster.
Thanks goes to these wonderful people (emoji key):
Youssef Gaber 💻 🤔 ⚠️ | Per Hermansson 📖 💻 | Grégory Houllier 📖 | Michael Angelo 📖 | Pieter Venter 📖 | Rifaldhi AW 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
FAQs
Nest server integration for @ts-rest
The npm package @ts-rest/nest receives a total of 605 weekly downloads. As such, @ts-rest/nest popularity was classified as not popular.
We found that @ts-rest/nest demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.