dinero-formatting logo

dinero-formatting

dinero formatting

dinerojs/skills131installs1stars

SKILL.md

Full skill instructions

Dinero.js Formatting

Patterns for formatting Dinero.js monetary values for display. Covers currency symbols, locale-aware formatting, non-decimal currencies, and serialization.

When to Apply

Reference these guidelines when:

  • Displaying prices, totals, or monetary values in a UI
  • Adding currency symbols or locale-specific formatting
  • Formatting non-decimal currencies (e.g., historical currencies with non-base-10 subdivisions)
  • Serializing Dinero objects for APIs, databases, or transport
  • Building reusable formatting utilities

Rule Categories by Priority

PriorityCategoryImpactPrefix
1DisplayCRITICALdisplay-
2LocaleHIGHlocale-
3SerializationHIGHserialization-
4Non-DecimalMEDIUMnondecimal-

Quick Reference

1. Display (CRITICAL)

  • display-to-decimal - Use toDecimal for display strings, not toSnapshot
  • display-no-currency-symbols - Dinero.js does not format currency symbols; compose with Intl.NumberFormat

2. Locale (HIGH)

  • locale-intl-formatter - Build reusable formatters with Intl.NumberFormat
  • locale-multilingual - Create locale-parameterized formatters for multilingual sites

3. Serialization (HIGH)

  • serialization-snapshot - Use toSnapshot for transport and storage, not display
  • serialization-bigint-json - BigInt Dinero objects require a custom JSON replacer

4. Non-Decimal (MEDIUM)

  • nondecimal-to-units - Use toUnits for non-decimal currencies, not toDecimal

How to Use

Read individual rule files for detailed explanations and code examples:

rules/display-no-currency-symbols.md
rules/locale-intl-formatter.md

Each rule file contains:

  • Brief explanation of why it matters
  • Incorrect code example with explanation
  • Correct code example with explanation
  • Additional context and references