- name
- dinero-formatting
- description
- Formatting patterns for the Dinero.js money library. Use when displaying monetary values to users, formatting prices with currency symbols, handling locale-specific number formats, or working with non-decimal currencies. Triggers on toDecimal, toUnits, toSnapshot calls, or Intl.NumberFormat usage with Dinero objects.
- license
- MIT
- metadata
- {"author":"dinerojs","version":"1.0.0"}
# Dinero.js Formatting
Patterns for formatting [Dinero.js](https://v2.dinerojs.com) 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
| Priority | Category | Impact | Prefix |
| -------- | ------------- | -------- | ---------------- |
| 1 | Display | CRITICAL | `display-` |
| 2 | Locale | HIGH | `locale-` |
| 3 | Serialization | HIGH | `serialization-` |
| 4 | Non-Decimal | MEDIUM | `nondecimal-` |
## 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
View on GitHub