jansamadhan-shared-types
v0.3.1
Published
Shared TypeScript definitions for JanSamadhan applications
Maintainers
Readme
JanSamadhan Shared Types
A shared TypeScript definitions package for JanSamadhan applications, ensuring consistent data models across the WhatsApp Bot and PM Dashboard.
Features
- Shared type definitions for complaints, statuses, and user profiles
- Bidirectional mapping functions between application-specific and shared types
- TypeScript support with full type safety
Installation
# From within a JanSamadhan project
npm install ../shared-types
# Or using the package name when published
npm install @jansamadhan/shared-typesUsage
Importing Types
// Import shared types
import {
ComplaintData,
ComplaintStatus,
ComplaintCreationRequest,
ComplaintComment,
UserProfile
} from '@jansamadhan/shared-types';
// Use the shared types in your code
const complaint: ComplaintData = {
id: '123',
title: 'Water Supply Issue',
description: 'No water supply in my area for 2 days',
status: ComplaintStatus.NEW,
location: 'Sector 12, Delhi',
submittedBy: {
name: 'John Doe',
phone: '+919912345678'
},
createdAt: new Date(),
updatedAt: new Date()
};Using Adapters
// For WhatsApp Bot
import { WhatsAppBotAdapter } from '@jansamadhan/shared-types';
// Convert WhatsApp Bot Ticket to shared ComplaintData
const ticket = { /* WhatsApp Bot Ticket object */ };
const complaintData = WhatsAppBotAdapter.ticketToComplaintData(ticket);
// Convert shared ComplaintData back to WhatsApp Bot Ticket
const convertedTicket = WhatsAppBotAdapter.complaintDataToTicket(complaintData);
// For PM Dashboard
import { PMDashboardAdapter } from '@jansamadhan/shared-types';
// Convert PM Dashboard Complaint to shared ComplaintData
const pmComplaint = { /* PM Dashboard Complaint object */ };
const complaintData = PMDashboardAdapter.complaintToComplaintData(pmComplaint);
// Convert shared ComplaintData back to PM Dashboard Complaint
const convertedComplaint = PMDashboardAdapter.complaintDataToComplaint(complaintData);Status Mapping
import { statusMapping, ComplaintStatus } from '@jansamadhan/shared-types';
// Convert WhatsApp Bot status to shared status
const whatsappStatus = 'In Progress';
const sharedStatus = statusMapping.whatsappToShared[whatsappStatus];
// Convert shared status to PM Dashboard status
const pmStatus = statusMapping.sharedToPm[ComplaintStatus.IN_PROGRESS]; // 'in-progress'Building the Package
# Install dependencies
npm install
# Build the package
npm run buildLicense
ISC
