Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/IdoPesok/zsa
https://github.com/IdoPesok/zsa
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/IdoPesok/zsa
- Owner: IdoPesok
- License: mit
- Created: 2024-05-01T01:32:09.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-08-29T06:14:28.000Z (5 months ago)
- Last Synced: 2024-08-29T07:34:53.059Z (5 months ago)
- Language: TypeScript
- Homepage: https://zsa.vercel.app
- Size: 2.01 MB
- Stars: 685
- Watchers: 3
- Forks: 19
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-typesafe - IdoPesok/zsa - Typesafe Server Actions for Next.js. (**1. Libraries** / Web)
README
# zsa
`zsa` is a library for building typesafe server actions in Next.js. It provides a simple, scalable developer experience with features like validated inputs/outputs, procedures (middleware) for passing context to server actions, and React Query integration for querying server actions in client components.
## Installation
Install `zsa` using your preferred package manager:
```bash
npm i zsa zsa-react zsa-react-query zsa-openapi zod
```## Features
- Validated inputs and outputs using Zod schemas
- Procedures for adding context and authorization to server actions
- Callbacks for running additional logic based on server action lifecycle
- Built-in loading states and error handling
- React Query integration for querying server actions on the client side
- Support for FormData as input type
- Retry functionality and timeouts for server actions
- TypeScript support for a fully typesafe experience## Documentation
View the full documentation and examples on [zsa.vercel.app](https://zsa.vercel.app/docs/introduction). The documentation includes:
- Getting started guide
- In-depth explanations of core concepts
- Examples for building fully typesafe server actionsIf you're looking to learn how to get the most out of `zsa`, [the documentation](https://zsa.vercel.app/docs/introduction) is the best place to start.
## Contributing
We welcome contributions from the community! If you have an idea for a new feature, a bug fix, or any other improvement, please open an issue or submit a pull request, but be sure to read the [contributing guidelines](https://github.com/IdoPesok/zsa/blob/main/CONTRIBUTING.md) first.
## Support
If you encounter any issues or have questions, feel free to reach out via:
- **Discussions**: Visit the [Github discussions](https://github.com/IdoPesok/zsa/discussions) page to ask questions, share ideas, or discuss anything related to `zsa`.
- **Direct support**: For direct inquiries, you can DM ([@ido_pesok](https://twitter.com/ido_pesok)).## ⚠️ Disclaimer
This is a personal project and is not associated with any company or organization. While I strive to make this project as reliable and useful as possible, it is provided "as is" without any guarantees or warranties.
**Use at your own risk.** You are responsible for reviewing, testing, and validating the code to ensure it meets your requirements and for any consequences that may arise from its use.
I will do my best to maintain and improve this project, but please understand that as a personal project, support and updates may be limited.
## Contributors
Here's a shoutout to all the amazing contributors who are helping to make `zsa` better. Thank you for your hard work and dedication!
Made with [contrib.rocks](https://contrib.rocks).