@nhatdev94/util
v1.2.5
Published
**Package Name:** `@nhatdev94/util`\ **Document Version:** 1.2\ **Last Updated:** \ **Owner:** \ **Status:**
Readme
📦 Common UI Library
Package Name: @nhatdev94/util
Document Version: 1.2
Last Updated:
Owner:
Status:
Bộ công cụ tiện ích (Utility) dùng chung cho hệ sinh thái sản phẩm của nhatdev94. Được xây dựng với tư duy: Stateless, Business-agnostic và Type-safe.
🚀 Cài đặt
npm install @nhatdev94/util📦 Các module chính
Tài liệu được chia thành 2 nhóm tính năng chính: Data Formatting và HTTP Client.
Data Formatting
Hỗ trợ định dạng dữ liệu chuẩn hóa trên toàn hệ thống.
Date Formatting
import { formatDate } from '@nhatdev94/util';
formatDate(new Date(), 'DD/MM/YYYY'); // 05/03/2026Number & String
- Number: Định dạng tiền tệ, số thập phân.
- String: Truncate, capitalize, slugify.
HTTP Client & API Handling
Dựa trên nền tảng axios, cung cấp các công cụ để chuẩn hóa việc gọi API.
Khởi tạo Http Client
Sử dụng createHttp để tạo instance với cấu hình mặc định (interceptor, timeout...).
import { createHttp } from '@nhatdev94/util';
const api = createHttp({
baseURL: 'https://api.example.com',
timeout: 10000,
});HTTP Constants & Types
Thư viện cung cấp sẵn danh sách mã lỗi và các Type hỗ trợ TypeScript:
import { HTTP_CODE, ApiError, ApiResponse } from '@nhatdev94/util';
if (error.code === HTTP_CODE.UNAUTHORIZED) {
// Xử lý khi hết hạn phiên làm việc
}Interceptors
Cung cấp các interceptor may-đo sẵn cho việc đính kèm Token hoặc xử lý lỗi tập trung:
- requestTokenInterceptor: Tự động lấy token từ storage gắn vào Header.
- responseErrorInterceptor: Format lại lỗi trả về theo chuẩn ApiError.
📏 Nguyên tắc thiết kế (Design Principles)
Tuân thủ nghiêm ngặt bộ tiêu chuẩn đã đề ra:
- Stateless by default: Các hàm format không lưu trữ trạng thái, luôn trả về giá trị mới dựa trên input.
- Business-agnostic: Không chứa logic nghiệp vụ cụ thể. Ví dụ: hàm format tiền tệ không mặc định là "VND", bạn phải truyền currency vào.
- Type-safe: 100% viết bằng TypeScript, hỗ trợ gợi ý code (IntelliSense) tối đa.
- Backward-compatible: Đảm bảo các hàm core không thay đổi interface đột ngột giữa các phiên bản patch/minor.
