@trisr/idformat
v0.1.0
Published
Zero-dependency Indonesian formatting utilities for currency and time zone output.
Maintainers
Readme
IDFormat
IDFormat is a small, zero-dependency JavaScript utility package for Indonesian formatting.
Features
- Format currency to IDR style (
Rp100.000) - Convert timestamps to Indonesian time zones with 24-hour output (
HH:mm) - Dual module output: ESM + CommonJS
Install
npm install @trisr/idformatUsage (ESM)
import { formatCurrencyIDR, formatTimeID } from "@trisr/idformat";
formatCurrencyIDR(100000); // "Rp100.000"
formatCurrencyIDR(1000.5); // "Rp1.001"
formatCurrencyIDR(-1000); // "-Rp1.000"
formatTimeID("2026-05-17T00:15:00Z", { timezone: "WIB" }); // "07:15"
formatTimeID("2026-05-17T00:15:00Z", { timezone: "WITA" }); // "08:15"
formatTimeID("2026-05-17T00:15:00Z", { timezone: "WIT" }); // "09:15"Usage (CommonJS)
const { formatCurrencyIDR, formatTimeID } = require("@trisr/idformat");API
formatCurrencyIDR(value, options?)
value:number | string | bigintoptions.prefix: string prefix, default"Rp"
Behavior:
- Default rounding is whole rupiah (half away from zero)
- Thousand separator is
. - Negative format:
-Rp1.000 - Throws for invalid numeric input
formatTimeID(input, options?)
input:Date | number | string- Number is interpreted as Unix epoch in milliseconds
options.timezone:"WIB" | "WITA" | "WIT"(default"WIB")
Behavior:
- Returns 24-hour
HH:mm - Uses fixed offsets: WIB
+7, WITA+8, WIT+9 - Throws for invalid timestamps
Timestamp Input Notes
- ISO strings with explicit timezone (
Zor+07:00) are recommended for consistent results. - ISO strings without timezone can be interpreted using the local runtime timezone.
Development
node scripts/build.mjs
node --test tests/*.test.mjs tests/*.test.cjs
node scripts/pack-size.mjsNote: dist/ is generated by node scripts/build.mjs and is not committed to git.
Roadmap
parseCurrencyIDR("Rp1.234.567") -> 1234567formatNumberID(...)formatDateID(...)
