dinero-best-practices について
dinero-best-practicesは、Dinero.jsで金額を安全に作成・計算・整形する開発者向けのガイドスキルです。JavaScriptとTypeScriptでのオブジェクト生成、演算、精度、インポートのルールを優先度別にまとめています。
主な機能
- 01通貨の最小単位で金額を作成
- 02安全な金額演算パターンの利用
- 03numberとbigintの計算器の選択
- 04精度と暗号資産の金額への対応
- 05ツリーシェイキングを考慮したインポート
活用シーン
- 01ユーザーやAPIの入力から金額オブジェクトを作成
- 02合計額の配分や割合の計算
- 03安全な整数範囲を超える金額の処理
- 04対応するbigint通貨インポートの選択
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dinerojs/ skills --skill dinero-best-practicesインストール後、Claude Code で/dinero-best-practicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/_sections.mdarithmetic-allocate-not-divide.mdarithmetic-immutability.mdarithmetic-percentages.mdarithmetic-scaled-amounts.mdcreation-from-floats.mdcreation-minor-units.mdcreation-zero-exponent.mdimports-bigint-currencies.mdimports-tree-shaking.mdprecision-bigint.mdprecision-crypto.mdprecision-trim-scale.md詳細
Dinero.js のベストプラクティス
お金を安全に作成、計算、フォーマットするための JavaScript/TypeScript ライブラリである Dinero.js を扱う際の基本ルールです。影響度に基づいて優先順位を付けた 4 つのカテゴリのルールが含まれています。
適用する場面
次のような場合に、これらのガイドラインを参照してください。
- ユーザー入力、API レスポンス、またはデータベースの値から Dinero オブジェクトを作成する場合
- 金額の算術演算(加算、分割、乗算)を行う場合
numberとbigintのどちらの計算機を使用するか選ぶ場合dinero.js、dinero.js/currencies、またはdinero.js/bigintからインポートする場合- 価格、費用、税金、またはあらゆる金銭計算を扱う場合
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | 接頭辞 |
|---|---|---|---|
| 1 | オブジェクトの作成 | CRITICAL | creation- |
| 2 | 算術演算 | CRITICAL | arithmetic- |
| 3 | 精度 | HIGH | precision- |
| 4 | インポート | MEDIUM | imports- |
クイックリファレンス
1. オブジェクトの作成(CRITICAL)
creation-minor-units- 金額は常に最小通貨単位の整数で渡しますcreation-from-floats- ヘルパーを使って浮動小数点数の入力を最小通貨単位に変換しますcreation-zero-exponent- 指数が 0 の通貨(例:JPY)には、主要通貨単位を直接渡します
2. 算術演算(CRITICAL)
arithmetic-immutability- すべての演算は新しいオブジェクトを返すため、戻り値を保持しますarithmetic-allocate-not-divide- 金額の分割には手動での除算ではなく、allocateを使用しますarithmetic-scaled-amounts- 生の小数を乗算してはいけません。スケーリングした金額を使用しますarithmetic-percentages- パーセンテージの計算にはallocateまたはスケーリングしたmultiplyを使用します
3. 精度(HIGH)
precision-bigint- 金額がNumber.MAX_SAFE_INTEGERを超える場合は、dinero.js/bigintを使用しますprecision-crypto- 暗号資産は指数が大きいため、bigint が必要ですprecision-trim-scale- 連続した演算の後に末尾のゼロを取り除くには、trimScaleを使用します
4. インポート(MEDIUM)
imports-tree-shaking- 使用するものだけをインポートします。単独の関数を使うとツリーシェイキングが可能になりますimports-bigint-currencies- 計算機の型を一致させます。dinero.js/bigintと併せてdinero.js/bigint/currenciesを使用します
使い方
詳しい説明とコード例については、各ルールファイルをお読みください。
rules/creation-minor-units.md
rules/arithmetic-allocate-not-divide.md
各ルールファイルには、次の内容が含まれています。
- 重要な理由の簡潔な説明
- 誤ったコード例とその説明
- 正しいコード例とその説明
- 補足情報と参考資料
コメント
Markdown 対応