@pksep/zod-shared-chat
v0.0.7
Published
Shared Zod schemas for chat server and client
Readme
@pksep/zod-shared-chat
Shared Zod schemas for the chat server project. Works with both backend (NestJS) and frontend (React, Vue, etc.).
Installation
npm install @pksep/zod-shared-chat
# or
yarn add @pksep/zod-shared-chat
# or
pnpm add @pksep/zod-shared-chatUsage
Backend (NestJS)
import {
UserSchema,
CreateUserSchema,
type User,
type CreateUser
} from '@pksep/zod-shared-chat';
// Validate data
const userData = UserSchema.parse({ id: '...', initials: '...' });
// Type inference
const newUser: CreateUser = {
initials: 'Иванов И.И.',
nickname: 'user123'
};Frontend (React)
import { CreateUserSchema, type CreateUser } from '@pksep/zod-shared-chat';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
const CreateUserForm = () => {
const { register, handleSubmit } = useForm<CreateUser>({
resolver: zodResolver(CreateUserSchema)
});
return (
<form onSubmit={handleSubmit(data => console.log(data))}>
<input {...register('initials')} placeholder="ФИО" />
<input {...register('nickname')} placeholder="Никнейм" />
<button type="submit">Create</button>
</form>
);
};Available Schemas
User
UserSchema- Complete user modelCreateUserSchema- User creation validationUpdateUserSchema- User update validationGetUsersSchema- User query parameters
Group
GroupSchema- Complete group modelCreateGroupSchema- Group creation validationUpdateGroupSchema- Group update validationAddMembersSchema- Add members validationGroupMemberRoleSchema- Group member role model
Topic
TopicSchema- Complete topic modelCreateTopicSchema- Topic creation validationGetTopicsSchema- Topic query parameters
Message
MessageSchema- Complete message model
WebSocket
WsCreateMessageSchema- Create message via WebSocketWsUpdateMessageSchema- Update message via WebSocketWsReactionSchema- Reaction via WebSocketWsReadMessageSchema- Mark messages as read
Auth
AuthUserSchema- Authentication user data
Other
ReactionSchema- Complete reaction modelMediaSchema- Complete media modelTopicSettingSchema- Complete topic setting model
Frontend Features
- ✅ Type Safety: Full TypeScript support
- ✅ Form Validation: Works with React Hook Form, Formik
- ✅ API Validation: Validate responses from backend
- ✅ WebSocket Support: Validate WebSocket messages
- ✅ Tree Shaking: Only import what you need
- ✅ Zero Dependencies: Only Zod as peer dependency
Development
# Build the package
npm run build
# Watch for changes
npm run devFrontend Usage Examples
See FRONTEND_USAGE.md for detailed frontend examples including:
- React Hook Form integration
- API client implementation
- WebSocket message handling
- Form validation patterns
