Skip to Content
DocumentationHome

@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 install @indodev/toolkit

Quick 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?

Last updated on