@nishanthmariyada/kaaty-shared
v1.0.2
Published
Shared types, constants, and validation schemas for KAATY
Maintainers
Readme
@kaaty/shared
Shared TypeScript types, constants, and validation schemas for KAATY food ordering platform.
Installation
npm install @kaaty/shared
# or
yarn add @kaaty/shared
# or
pnpm add @kaaty/sharedOverview
This package contains shared code used by both frontend (mobile app) and backend (Edge Functions):
- TypeScript Types: Domain object interfaces (orders, payments, menu items, etc.)
- Constants: Limits, statuses, route names, function names
- Validation Schemas: Zod schemas for runtime validation
Usage
Importing Types
import {
Order,
OrderStatus,
MenuItem,
CartItem,
PaymentInitRequest
} from '@kaaty/shared';
// Use types for type safety
const order: Order = {
id: '123',
user_id: 'user-456',
status: OrderStatus.PENDING,
total_amount: 250.00,
// ...
};Using Constants
import {
MAX_CART_ITEMS,
ORDER_STATUS,
LEGACY_FUNCTION_NAMES,
API_ROUTES
} from '@kaaty/shared';
// Validate against limits
if (cartItems.length > MAX_CART_ITEMS) {
throw new Error('Cart cannot exceed ' + MAX_CART_ITEMS + ' items');
}
// Use function names
const functionName = LEGACY_FUNCTION_NAMES.CREATE_ORDER; // 'create-order'
// Use API routes
const endpoint = API_ROUTES.PAYMENT_INITIALIZE; // '/v1/payment/initialize'Validation with Zod
import { createOrderSchema } from '@kaaty/shared';
// Validate request data
const validated = createOrderSchema.parse(requestBody);
// Throws ZodError if validation fails
// Safe parsing (returns result object)
const result = createOrderSchema.safeParse(requestBody);
if (!result.success) {
console.error('Validation errors:', result.error);
}Package Contents
Types (/types)
- orders.ts - Order-related types
- payment.ts - Payment types
- menu.ts - Menu item types
- cart.ts - Cart types
- user.ts - User profile types
- errors.ts - Error types
Constants (/constants)
- limits.ts - Numeric limits (MAX_CART_ITEMS, etc.)
- statuses.ts - Status enums (ORDER_STATUS, PAYMENT_STATUS, etc.)
- routes.ts - API routes and Edge Function names
Validation (/validation)
- schemas.ts - Zod validation schemas
Why This Package Exists
This package ensures:
- Type Safety: Both frontend and backend use identical types
- Single Source of Truth: Constants defined once, used everywhere
- Validation Consistency: Same validation rules on client and server
- Prevents Drift: Changes to types automatically affect both sides
Development
# Build the package
npm run build
# Watch mode (for development)
npm run dev
# Clean build artifacts
npm run cleanTypeScript Configuration
This package is compiled with strict TypeScript settings:
- strict: true
- esModuleInterop: true
- skipLibCheck: true
License
MIT
Repository
https://github.com/your-org/kaaty-shared
Issues
https://github.com/your-org/kaaty-shared/issues
