@indodev/toolkit
TypeScript utilities for Indonesian data validation and formatting.
Github • npmÂ
Features
- NIK validation - Verify Indonesian National Identity Numbers with province, date, and gender checks
- Phone formatting - Support for all major operators and 200+ area codes
- Rupiah formatting - Display currency with proper grammar rules (1,5 juta, not 1,0 juta)
- Text utilities - Smart capitalization, slug generation, and abbreviation expansion
- Terbilang converter - Numbers to Indonesian words (1500000 → “satu juta lima ratus ribu rupiah”)
- Type-safe - Full TypeScript support with proper type inference
- Well-tested - 1060+ test cases with 95%+ coverage
- Zero dependencies - Lightweight and tree-shakeable
Installation
npm
npm install @indodev/toolkitQuick Example
import { validateNIK, parseNIK } from '@indodev/toolkit/nik';
import { formatPhoneNumber } from '@indodev/toolkit/phone';
import { formatRupiah, formatCompact } from '@indodev/toolkit/currency';
import { slugify } from '@indodev/toolkit/text';
// NIK info
const info = parseNIK('3201234567890123');
console.log(info.province.name); // 'Jawa Barat'
// Phone formatting
formatPhoneNumber('081234567890', 'international');
// '+62 812-3456-7890'
// Smart grammar (1,5 juta, not 1,0 juta)
formatCompact(1500000); // 'Rp 1,5 juta'
formatCompact(1000000); // 'Rp 1 juta'
// Indonesian-aware slug
slugify('Pria & Wanita'); // 'pria-dan-wanita'Why @indodev/toolkit?
Building applications that handle Indonesian data? This library solves common challenges:
- Accuracy - Handles specific Indonesian rules (e.g., gender detection in NIK, Rupiah grammar)
- Performance - Zero dependencies and tree-shakeable for minimal bundle size
- Productivity - Stop rewriting common validation and formatting logic
- Developer Experience - Full TypeScript support with excellent type inference
What’s Next?
- 🚀 Getting Started - Quick start guide with installation and configuration
- đź“– API Documentation - Comprehensive API reference for all modules
- 🎯 Examples - Real-world usage patterns
Last updated on