vieltalk-core
v0.1.5
Published
> Shared core utilities, enums, types, constants, and error codes for VielTalk applications — backend, web, and mobile.
Readme
@vieltalk/core
Shared core utilities, enums, types, constants, and error codes for VielTalk applications — backend, web, and mobile.
Table of Contents
Overview
@vieltalk/core is a centralized shared library for the VielTalk app. It contains:
- Standardized enums (message types, user roles, etc.)
- Error codes for backend/frontend consistency
- Shared types and interfaces
- Common constants (Redis keys, system events)
- Utility functions (formatting, helpers)
It ensures single source of truth across backend, web, and mobile apps.
Features
- ✅ Consistent enums across all platforms
- ✅ Centralized error codes (
AppErrorCode) - ✅ Strongly-typed TypeScript interfaces
- ✅ Shared constants for Redis, system events, etc.
- ✅ Utility helpers for common tasks
- ✅ Ready for NestJS, React, React Native, or Node.js
Installation
npm install @vieltalk/core
# or using yarn
yarn add @vieltalk/coreFolder Structure
src/
├── enums/
│ ├── message.enum.ts
│ ├── user.enum.ts
│ └── index.ts
├── constants/
│ ├── redis-keys.ts
│ ├── system-events.ts
│ └── index.ts
├── types/
│ ├── message.type.ts
│ ├── user.type.ts
│ └── index.ts
├── utils/
│ ├── format.ts
│ └── index.ts
├── errors/
│ ├── app-error.ts
│ └── index.ts
└── index.tsUsage
Enums
import { MessageType } from '@vieltalk/core/enums';
const type: MessageType = MessageType.TEXT;Error Codes
import { AppErrorCode } from '@vieltalk/core/errors';
throw new Error(AppErrorCode.DEVICE_ALREADY_REGISTERED);Types
import { Message } from '@vieltalk/core/types';
const newMessage: Message = {
id: '123',
type: 'TEXT',
content: 'Hello!',
senderId: 'user_1',
createdAt: new Date(),
};Constants
import { REDIS_KEYS, SYSTEM_EVENTS } from '@vieltalk/core/constants';
const key = REDIS_KEYS.USER_SOCKET('user1', 'device1');
console.log(SYSTEM_EVENTS.CONTACT_SYNCED);Utils
import { formatDate } from '@vieltalk/core/utils';
console.log(formatDate(new Date())); // ISO stringNestJS Exception Example
import { BadRequestException } from '@nestjs/common';
import { AppErrorCode } from '@vieltalk/core/errors';
throw new BadRequestException({
message: 'Device is already registered.',
code: AppErrorCode.DEVICE_ALREADY_REGISTERED,
});This standardizes error handling across backend, web, and mobile.
Contributing
- Fork the repository
- Create a branch (
feature/my-feature) - Commit your changes
- Open a pull request
License
MIT © VielTalk
