@anushka_kohli/muse-common-app
v1.0.2
Published
Zod schemas for input validation and TypeScript types inferred from these schemas
Downloads
3
Readme
Common Folder
This folder contains shared validation schemas and types used by both the backend and frontend of the Muse blogging website.
Overview
The common folder includes Zod schemas for input validation and TypeScript types inferred from these schemas. These are essential for ensuring data integrity and consistency across the application.
File Structure
src/
└── index.ts
Schemas and Types
Signup Input
The signupInput
schema validates the data for user signup.
Signin Input
The signinInput
schema validates the data for user signin.
UpdateUserDetails Input
The updateUserDetailsInput
schema validates the data for updating user details.
Create Blog Input
The createBlogInput
schema validates the data for creating a new blog post.
Update Blog Input
The updateBlogInput
schema validates the data for updating an existing blog post.
Usage
These schemas and types are used across both backend and frontend to ensure that the data being handled conforms to the expected structure. This helps prevent errors and maintain consistency.
Generate Output
To generate the output, run:
tsc -b
Publishing to npm
To publish the package to npm, use:
npm publish --access public
Accessing in Backend
To use this package in the backend, follow these steps:
Navigate to the backend folder:
cd backend
Install the package you published to npm:
npm install your_package_name
Explore the package:
cd node_modules/your_package_name
Update the routes to include Zod validation. Example usage:
import { signinInput, signupInput, createPostInput, updatePostInput } from "@muse/common-app"; userRouter.post("/signup", async (c) => { const prisma = c.get("prisma") as PrismaClient; const body = await c.req.json(); const { success } = signupInput.safeParse(body); if (!success) { c.status(400); return c.json({ error: "invalid input" }); } });
Contributing
Contributions are welcome! Please ensure that any new schemas or types added are well-documented and tested.