@doctori/shared

v1.0.16

Published

Shared utilities, types, and schemas for Doctori platform

Readme

@doctori/shared

Shared utilities, types, and schemas for the Doctori medical booking platform.

Installation

npm install @doctori/shared

Features

  • 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 validation
  • CreateUserSchema - User creation validation
  • UpdateUserSchema - User update validation
  • DoctorSchema - Doctor entity validation
  • AppointmentSchema - Appointment entity validation
  • LoginSchema - Authentication validation

Types

All types are inferred from Zod schemas:

  • User, CreateUserDto, UpdateUserDto
  • Doctor, CreateDoctorDto, UpdateDoctorDto
  • Appointment, CreateAppointmentDto, UpdateAppointmentDto
  • Gender, UserType, AppointmentStatus, AppointmentType

Utilities

  • DateUtils - Date formatting and validation
  • StringUtils - String manipulation and formatting
  • ValidationUtils - Zod schema validation helpers
  • EncryptionUtils - Password hashing and comparison
  • ConfigUtils - Environment configuration helpers

Development

Building

npm run build

Testing

npm test

Linting

npm run lint

License

MIT

Contributing

Please read our contributing guidelines before submitting pull requests.

Support

For issues and questions, please visit our GitHub repository.