@doctori/shared
v1.0.16
Published
Shared utilities, types, and schemas for Doctori platform
Maintainers
Readme
@doctori/shared
Shared utilities, types, and schemas for the Doctori medical booking platform.
Installation
npm install @doctori/sharedFeatures
- Type-safe schemas with Zod validation
- Utility functions for common operations
- TypeScript types inferred from schemas
- Event definitions for microservices communication
- Configuration helpers for environment management
Usage
Types and Schemas
import {
User,
CreateUserDto,
UserSchema,
ValidationUtils
} from '@doctori/shared';
// Create a new user with validation
const userData: CreateUserDto = {
email: '[email protected]',
password: 'SecurePass123',
firstName: 'John',
lastName: 'Doe',
userType: 'PATIENT'
};
// Validate the data
const result = ValidationUtils.validateWithSchema(UserSchema, userData);
if (result.success) {
const user: User = result.data;
}Utility Functions
import {
DateUtils,
StringUtils,
EncryptionUtils
} from '@doctori/shared';
// Date operations
const formattedDate = DateUtils.formatDate(new Date(), 'yyyy-MM-dd');
const isFuture = DateUtils.isFutureDate(new Date('2024-12-31'));
// String operations
const maskedEmail = StringUtils.maskEmail('[email protected]');
const slug = StringUtils.createSlug('Doctor Name');
// Encryption
const hashedPassword = await EncryptionUtils.hashPassword('password123');
const isValid = await EncryptionUtils.comparePassword('password123', hashedPassword);Events
import {
UserCreatedEvent,
AppointmentScheduledEvent
} from '@doctori/shared';
// Event definitions for microservices communication
const userEvent: UserCreatedEvent = {
userId: 123,
email: '[email protected]',
userType: 'PATIENT',
timestamp: new Date()
};API Reference
Schemas
UserSchema- Complete user entity validationCreateUserSchema- User creation validationUpdateUserSchema- User update validationDoctorSchema- Doctor entity validationAppointmentSchema- Appointment entity validationLoginSchema- Authentication validation
Types
All types are inferred from Zod schemas:
User,CreateUserDto,UpdateUserDtoDoctor,CreateDoctorDto,UpdateDoctorDtoAppointment,CreateAppointmentDto,UpdateAppointmentDtoGender,UserType,AppointmentStatus,AppointmentType
Utilities
DateUtils- Date formatting and validationStringUtils- String manipulation and formattingValidationUtils- Zod schema validation helpersEncryptionUtils- Password hashing and comparisonConfigUtils- Environment configuration helpers
Development
Building
npm run buildTesting
npm testLinting
npm run lintLicense
MIT
Contributing
Please read our contributing guidelines before submitting pull requests.
Support
For issues and questions, please visit our GitHub repository.