n2words 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/LICENSE +1 -1
- package/README.md +64 -184
- package/dist/am-ET.js +2 -0
- package/dist/am-ET.umd.js +2 -0
- package/dist/am-Latn-ET.js +2 -0
- package/dist/am-Latn-ET.umd.js +2 -0
- package/dist/ar-SA.js +2 -0
- package/dist/ar-SA.umd.js +2 -0
- package/dist/az-AZ.js +2 -0
- package/dist/az-AZ.umd.js +2 -0
- package/dist/bn-BD.js +2 -0
- package/dist/bn-BD.umd.js +2 -0
- package/dist/cs-CZ.js +2 -0
- package/dist/cs-CZ.umd.js +2 -0
- package/dist/da-DK.js +2 -0
- package/dist/da-DK.umd.js +2 -0
- package/dist/de-DE.js +2 -0
- package/dist/de-DE.umd.js +2 -0
- package/dist/el-GR.js +2 -0
- package/dist/el-GR.umd.js +2 -0
- package/dist/en-AU.js +2 -0
- package/dist/en-AU.umd.js +2 -0
- package/dist/en-BD.js +2 -0
- package/dist/en-BD.umd.js +2 -0
- package/dist/en-CA.js +2 -0
- package/dist/en-CA.umd.js +2 -0
- package/dist/en-GB.js +2 -0
- package/dist/en-GB.umd.js +2 -0
- package/dist/en-GH.js +2 -0
- package/dist/en-GH.umd.js +2 -0
- package/dist/en-IE.js +2 -0
- package/dist/en-IE.umd.js +2 -0
- package/dist/en-IN.js +2 -0
- package/dist/en-IN.umd.js +2 -0
- package/dist/en-KE.js +2 -0
- package/dist/en-KE.umd.js +2 -0
- package/dist/en-MY.js +2 -0
- package/dist/en-MY.umd.js +2 -0
- package/dist/en-NG.js +2 -0
- package/dist/en-NG.umd.js +2 -0
- package/dist/en-NZ.js +2 -0
- package/dist/en-NZ.umd.js +2 -0
- package/dist/en-PH.js +2 -0
- package/dist/en-PH.umd.js +2 -0
- package/dist/en-PK.js +2 -0
- package/dist/en-PK.umd.js +2 -0
- package/dist/en-SG.js +2 -0
- package/dist/en-SG.umd.js +2 -0
- package/dist/en-US.js +2 -0
- package/dist/en-US.umd.js +2 -0
- package/dist/en-ZA.js +2 -0
- package/dist/en-ZA.umd.js +2 -0
- package/dist/es-ES.js +2 -0
- package/dist/es-ES.umd.js +2 -0
- package/dist/es-MX.js +2 -0
- package/dist/es-MX.umd.js +2 -0
- package/dist/es-US.js +2 -0
- package/dist/es-US.umd.js +2 -0
- package/dist/fa-IR.js +2 -0
- package/dist/fa-IR.umd.js +2 -0
- package/dist/fi-FI.js +2 -0
- package/dist/fi-FI.umd.js +2 -0
- package/dist/fil-PH.js +2 -0
- package/dist/fil-PH.umd.js +2 -0
- package/dist/fr-BE.js +2 -0
- package/dist/fr-BE.umd.js +2 -0
- package/dist/fr-FR.js +2 -0
- package/dist/fr-FR.umd.js +2 -0
- package/dist/gu-IN.js +2 -0
- package/dist/gu-IN.umd.js +2 -0
- package/dist/ha-NG.js +2 -0
- package/dist/ha-NG.umd.js +2 -0
- package/dist/hbo-IL.js +2 -0
- package/dist/hbo-IL.umd.js +2 -0
- package/dist/he-IL.js +2 -0
- package/dist/he-IL.umd.js +2 -0
- package/dist/hi-IN.js +2 -0
- package/dist/hi-IN.umd.js +2 -0
- package/dist/hr-HR.js +2 -0
- package/dist/hr-HR.umd.js +2 -0
- package/dist/hu-HU.js +2 -0
- package/dist/hu-HU.umd.js +2 -0
- package/dist/id-ID.js +2 -0
- package/dist/id-ID.umd.js +2 -0
- package/dist/it-IT.js +2 -0
- package/dist/it-IT.umd.js +2 -0
- package/dist/ja-JP.js +2 -0
- package/dist/ja-JP.umd.js +2 -0
- package/dist/ka-GE.js +2 -0
- package/dist/ka-GE.umd.js +2 -0
- package/dist/kn-IN.js +2 -0
- package/dist/kn-IN.umd.js +2 -0
- package/dist/ko-KR.js +2 -0
- package/dist/ko-KR.umd.js +2 -0
- package/dist/lt-LT.js +2 -0
- package/dist/lt-LT.umd.js +2 -0
- package/dist/lv-LV.js +2 -0
- package/dist/lv-LV.umd.js +2 -0
- package/dist/mr-IN.js +2 -0
- package/dist/mr-IN.umd.js +2 -0
- package/dist/ms-MY.js +2 -0
- package/dist/ms-MY.umd.js +2 -0
- package/dist/nb-NO.js +2 -0
- package/dist/nb-NO.umd.js +2 -0
- package/dist/nl-NL.js +2 -0
- package/dist/nl-NL.umd.js +2 -0
- package/dist/pa-IN.js +2 -0
- package/dist/pa-IN.umd.js +2 -0
- package/dist/pl-PL.js +2 -0
- package/dist/pl-PL.umd.js +2 -0
- package/dist/pt-PT.js +2 -0
- package/dist/pt-PT.umd.js +2 -0
- package/dist/ro-RO.js +2 -0
- package/dist/ro-RO.umd.js +2 -0
- package/dist/ru-RU.js +2 -0
- package/dist/ru-RU.umd.js +2 -0
- package/dist/sr-Cyrl-RS.js +2 -0
- package/dist/sr-Cyrl-RS.umd.js +2 -0
- package/dist/sr-Latn-RS.js +2 -0
- package/dist/sr-Latn-RS.umd.js +2 -0
- package/dist/sv-SE.js +2 -0
- package/dist/sv-SE.umd.js +2 -0
- package/dist/sw-KE.js +2 -0
- package/dist/sw-KE.umd.js +2 -0
- package/dist/ta-IN.js +2 -0
- package/dist/ta-IN.umd.js +2 -0
- package/dist/te-IN.js +2 -0
- package/dist/te-IN.umd.js +2 -0
- package/dist/th-TH.js +2 -0
- package/dist/th-TH.umd.js +2 -0
- package/dist/tr-TR.js +2 -0
- package/dist/tr-TR.umd.js +2 -0
- package/dist/uk-UA.js +2 -0
- package/dist/uk-UA.umd.js +2 -0
- package/dist/ur-PK.js +2 -0
- package/dist/ur-PK.umd.js +2 -0
- package/dist/vi-VN.js +2 -0
- package/dist/vi-VN.umd.js +2 -0
- package/dist/yo-NG.js +2 -0
- package/dist/yo-NG.umd.js +2 -0
- package/dist/zh-Hans-CN.js +2 -0
- package/dist/zh-Hans-CN.umd.js +2 -0
- package/dist/zh-Hant-TW.js +2 -0
- package/dist/zh-Hant-TW.umd.js +2 -0
- package/package.json +47 -82
- package/src/am-ET.d.ts +40 -0
- package/src/am-ET.js +269 -0
- package/src/am-Latn-ET.d.ts +35 -0
- package/src/am-Latn-ET.js +264 -0
- package/src/ar-SA.d.ts +49 -0
- package/{lib/languages/ar.js → src/ar-SA.js} +177 -15
- package/src/az-AZ.d.ts +37 -0
- package/src/az-AZ.js +312 -0
- package/src/bn-BD.d.ts +36 -0
- package/src/bn-BD.js +270 -0
- package/src/cs-CZ.d.ts +49 -0
- package/{lib/languages/cs.js → src/cs-CZ.js} +249 -40
- package/src/da-DK.d.ts +44 -0
- package/{lib/languages/da.js → src/da-DK.js} +136 -23
- package/src/de-DE.d.ts +57 -0
- package/src/de-DE.js +603 -0
- package/src/el-GR.d.ts +40 -0
- package/src/el-GR.js +418 -0
- package/src/en-AU.d.ts +47 -0
- package/src/en-AU.js +423 -0
- package/src/en-BD.d.ts +49 -0
- package/src/en-BD.js +415 -0
- package/src/en-CA.d.ts +63 -0
- package/src/en-CA.js +518 -0
- package/src/en-GB.d.ts +56 -0
- package/src/en-GB.js +469 -0
- package/src/en-GH.d.ts +11 -0
- package/src/en-GH.js +345 -0
- package/src/en-IE.d.ts +56 -0
- package/src/en-IE.js +479 -0
- package/src/en-IN.d.ts +49 -0
- package/src/en-IN.js +415 -0
- package/src/en-KE.d.ts +11 -0
- package/src/en-KE.js +345 -0
- package/src/en-MY.d.ts +11 -0
- package/src/en-MY.js +347 -0
- package/src/en-NG.d.ts +56 -0
- package/src/en-NG.js +479 -0
- package/src/en-NZ.d.ts +11 -0
- package/src/en-NZ.js +375 -0
- package/src/en-PH.d.ts +11 -0
- package/src/en-PH.js +345 -0
- package/src/en-PK.d.ts +49 -0
- package/src/en-PK.js +415 -0
- package/src/en-SG.d.ts +11 -0
- package/src/en-SG.js +345 -0
- package/src/en-US.d.ts +63 -0
- package/src/en-US.js +516 -0
- package/src/en-ZA.d.ts +56 -0
- package/src/en-ZA.js +478 -0
- package/src/es-ES.d.ts +65 -0
- package/src/es-ES.js +541 -0
- package/src/es-MX.d.ts +58 -0
- package/{lib/languages/es.js → src/es-MX.js} +237 -47
- package/src/es-US.d.ts +58 -0
- package/src/es-US.js +446 -0
- package/src/fa-IR.d.ts +38 -0
- package/src/fa-IR.js +246 -0
- package/src/fi-FI.d.ts +46 -0
- package/src/fi-FI.js +379 -0
- package/src/fil-PH.d.ts +37 -0
- package/{lib/languages/fil.js → src/fil-PH.js} +149 -24
- package/src/fr-BE.d.ts +49 -0
- package/src/fr-BE.js +453 -0
- package/src/fr-FR.d.ts +63 -0
- package/{lib/languages/fr.js → src/fr-FR.js} +200 -47
- package/src/gu-IN.d.ts +35 -0
- package/src/gu-IN.js +259 -0
- package/src/ha-NG.d.ts +37 -0
- package/{lib/languages/ha.js → src/ha-NG.js} +110 -16
- package/src/hbo-IL.d.ts +39 -0
- package/{lib/languages/hbo.js → src/hbo-IL.js} +217 -43
- package/src/he-IL.d.ts +37 -0
- package/src/he-IL.js +537 -0
- package/src/hi-IN.d.ts +36 -0
- package/src/hi-IN.js +280 -0
- package/src/hr-HR.d.ts +42 -0
- package/src/hr-HR.js +463 -0
- package/src/hu-HU.d.ts +38 -0
- package/{lib/languages/hu.js → src/hu-HU.js} +164 -6
- package/src/id-ID.d.ts +38 -0
- package/{lib/languages/id.js → src/id-ID.js} +106 -20
- package/src/it-IT.d.ts +59 -0
- package/src/it-IT.js +506 -0
- package/src/ja-JP.d.ts +49 -0
- package/{lib/languages/ja.js → src/ja-JP.js} +119 -32
- package/src/ka-GE.d.ts +44 -0
- package/src/ka-GE.js +393 -0
- package/src/kn-IN.d.ts +35 -0
- package/{lib/languages/kn.js → src/kn-IN.js} +156 -34
- package/src/ko-KR.d.ts +45 -0
- package/{lib/languages/ko.js → src/ko-KR.js} +99 -24
- package/src/lt-LT.d.ts +49 -0
- package/src/lt-LT.js +543 -0
- package/src/lv-LV.d.ts +49 -0
- package/src/lv-LV.js +595 -0
- package/src/mr-IN.d.ts +36 -0
- package/src/mr-IN.js +260 -0
- package/src/ms-MY.d.ts +37 -0
- package/{lib/languages/ms.js → src/ms-MY.js} +118 -20
- package/src/nb-NO.d.ts +44 -0
- package/{lib/languages/nb.js → src/nb-NO.js} +165 -33
- package/src/nl-NL.d.ts +54 -0
- package/{lib/languages/nl.js → src/nl-NL.js} +271 -47
- package/src/pa-IN.d.ts +36 -0
- package/src/pa-IN.js +268 -0
- package/src/pl-PL.d.ts +55 -0
- package/src/pl-PL.js +585 -0
- package/src/pt-PT.d.ts +45 -0
- package/src/pt-PT.js +514 -0
- package/src/ro-RO.d.ts +44 -0
- package/{lib/languages/ro.js → src/ro-RO.js} +212 -18
- package/src/ru-RU.d.ts +50 -0
- package/src/ru-RU.js +535 -0
- package/src/sr-Cyrl-RS.d.ts +49 -0
- package/src/sr-Cyrl-RS.js +503 -0
- package/src/sr-Latn-RS.d.ts +49 -0
- package/src/sr-Latn-RS.js +503 -0
- package/src/sv-SE.d.ts +44 -0
- package/{lib/languages/sv.js → src/sv-SE.js} +149 -34
- package/src/sw-KE.d.ts +37 -0
- package/{lib/languages/sw.js → src/sw-KE.js} +117 -6
- package/src/ta-IN.d.ts +35 -0
- package/{lib/languages/ta.js → src/ta-IN.js} +163 -47
- package/src/te-IN.d.ts +35 -0
- package/{lib/languages/te.js → src/te-IN.js} +147 -46
- package/src/th-TH.d.ts +38 -0
- package/{lib/languages/th.js → src/th-TH.js} +99 -6
- package/src/tr-TR.d.ts +48 -0
- package/src/tr-TR.js +397 -0
- package/src/uk-UA.d.ts +42 -0
- package/src/uk-UA.js +463 -0
- package/src/ur-PK.d.ts +36 -0
- package/src/ur-PK.js +268 -0
- package/src/utils/expand-scientific.d.ts +32 -0
- package/src/utils/expand-scientific.js +65 -0
- package/src/utils/parse-cardinal.d.ts +14 -0
- package/{lib/utils/parse-numeric.js → src/utils/parse-cardinal.js} +14 -44
- package/src/utils/parse-currency.d.ts +14 -0
- package/src/utils/parse-currency.js +91 -0
- package/src/utils/parse-ordinal.d.ts +10 -0
- package/src/utils/parse-ordinal.js +103 -0
- package/src/vi-VN.d.ts +48 -0
- package/{lib/languages/vi.js → src/vi-VN.js} +124 -53
- package/src/yo-NG.d.ts +37 -0
- package/src/yo-NG.js +403 -0
- package/src/zh-Hans-CN.d.ts +48 -0
- package/{lib/languages/zh-Hans.js → src/zh-Hans-CN.js} +140 -8
- package/src/zh-Hant-TW.d.ts +50 -0
- package/{lib/languages/zh-Hant.js → src/zh-Hant-TW.js} +139 -8
- package/dist/languages/am-Latn.js +0 -3
- package/dist/languages/am-Latn.js.map +0 -1
- package/dist/languages/am.js +0 -3
- package/dist/languages/am.js.map +0 -1
- package/dist/languages/ar.js +0 -3
- package/dist/languages/ar.js.map +0 -1
- package/dist/languages/az.js +0 -3
- package/dist/languages/az.js.map +0 -1
- package/dist/languages/bn.js +0 -3
- package/dist/languages/bn.js.map +0 -1
- package/dist/languages/cs.js +0 -3
- package/dist/languages/cs.js.map +0 -1
- package/dist/languages/da.js +0 -3
- package/dist/languages/da.js.map +0 -1
- package/dist/languages/de.js +0 -3
- package/dist/languages/de.js.map +0 -1
- package/dist/languages/el.js +0 -3
- package/dist/languages/el.js.map +0 -1
- package/dist/languages/en.js +0 -3
- package/dist/languages/en.js.map +0 -1
- package/dist/languages/es.js +0 -3
- package/dist/languages/es.js.map +0 -1
- package/dist/languages/fa.js +0 -3
- package/dist/languages/fa.js.map +0 -1
- package/dist/languages/fi.js +0 -3
- package/dist/languages/fi.js.map +0 -1
- package/dist/languages/fil.js +0 -3
- package/dist/languages/fil.js.map +0 -1
- package/dist/languages/fr-BE.js +0 -3
- package/dist/languages/fr-BE.js.map +0 -1
- package/dist/languages/fr.js +0 -3
- package/dist/languages/fr.js.map +0 -1
- package/dist/languages/gu.js +0 -3
- package/dist/languages/gu.js.map +0 -1
- package/dist/languages/ha.js +0 -3
- package/dist/languages/ha.js.map +0 -1
- package/dist/languages/hbo.js +0 -3
- package/dist/languages/hbo.js.map +0 -1
- package/dist/languages/he.js +0 -3
- package/dist/languages/he.js.map +0 -1
- package/dist/languages/hi.js +0 -3
- package/dist/languages/hi.js.map +0 -1
- package/dist/languages/hr.js +0 -3
- package/dist/languages/hr.js.map +0 -1
- package/dist/languages/hu.js +0 -3
- package/dist/languages/hu.js.map +0 -1
- package/dist/languages/id.js +0 -3
- package/dist/languages/id.js.map +0 -1
- package/dist/languages/it.js +0 -3
- package/dist/languages/it.js.map +0 -1
- package/dist/languages/ja.js +0 -3
- package/dist/languages/ja.js.map +0 -1
- package/dist/languages/kn.js +0 -3
- package/dist/languages/kn.js.map +0 -1
- package/dist/languages/ko.js +0 -3
- package/dist/languages/ko.js.map +0 -1
- package/dist/languages/lt.js +0 -3
- package/dist/languages/lt.js.map +0 -1
- package/dist/languages/lv.js +0 -3
- package/dist/languages/lv.js.map +0 -1
- package/dist/languages/mr.js +0 -3
- package/dist/languages/mr.js.map +0 -1
- package/dist/languages/ms.js +0 -3
- package/dist/languages/ms.js.map +0 -1
- package/dist/languages/nb.js +0 -3
- package/dist/languages/nb.js.map +0 -1
- package/dist/languages/nl.js +0 -3
- package/dist/languages/nl.js.map +0 -1
- package/dist/languages/pa.js +0 -3
- package/dist/languages/pa.js.map +0 -1
- package/dist/languages/pl.js +0 -3
- package/dist/languages/pl.js.map +0 -1
- package/dist/languages/pt.js +0 -3
- package/dist/languages/pt.js.map +0 -1
- package/dist/languages/ro.js +0 -3
- package/dist/languages/ro.js.map +0 -1
- package/dist/languages/ru.js +0 -3
- package/dist/languages/ru.js.map +0 -1
- package/dist/languages/sr-Cyrl.js +0 -3
- package/dist/languages/sr-Cyrl.js.map +0 -1
- package/dist/languages/sr-Latn.js +0 -3
- package/dist/languages/sr-Latn.js.map +0 -1
- package/dist/languages/sv.js +0 -3
- package/dist/languages/sv.js.map +0 -1
- package/dist/languages/sw.js +0 -3
- package/dist/languages/sw.js.map +0 -1
- package/dist/languages/ta.js +0 -3
- package/dist/languages/ta.js.map +0 -1
- package/dist/languages/te.js +0 -3
- package/dist/languages/te.js.map +0 -1
- package/dist/languages/th.js +0 -3
- package/dist/languages/th.js.map +0 -1
- package/dist/languages/tr.js +0 -3
- package/dist/languages/tr.js.map +0 -1
- package/dist/languages/uk.js +0 -3
- package/dist/languages/uk.js.map +0 -1
- package/dist/languages/ur.js +0 -3
- package/dist/languages/ur.js.map +0 -1
- package/dist/languages/vi.js +0 -3
- package/dist/languages/vi.js.map +0 -1
- package/dist/languages/zh-Hans.js +0 -3
- package/dist/languages/zh-Hans.js.map +0 -1
- package/dist/languages/zh-Hant.js +0 -3
- package/dist/languages/zh-Hant.js.map +0 -1
- package/dist/n2words.js +0 -3
- package/dist/n2words.js.map +0 -1
- package/lib/languages/am-Latn.d.ts +0 -7
- package/lib/languages/am-Latn.js +0 -164
- package/lib/languages/am.d.ts +0 -7
- package/lib/languages/am.js +0 -164
- package/lib/languages/ar.d.ts +0 -17
- package/lib/languages/az.d.ts +0 -7
- package/lib/languages/az.js +0 -176
- package/lib/languages/bn.d.ts +0 -7
- package/lib/languages/bn.js +0 -145
- package/lib/languages/cs.d.ts +0 -18
- package/lib/languages/da.d.ts +0 -14
- package/lib/languages/de.d.ts +0 -17
- package/lib/languages/de.js +0 -332
- package/lib/languages/el.d.ts +0 -14
- package/lib/languages/el.js +0 -243
- package/lib/languages/en.d.ts +0 -17
- package/lib/languages/en.js +0 -256
- package/lib/languages/es.d.ts +0 -21
- package/lib/languages/fa.d.ts +0 -7
- package/lib/languages/fa.js +0 -134
- package/lib/languages/fi.d.ts +0 -14
- package/lib/languages/fi.js +0 -245
- package/lib/languages/fil.d.ts +0 -7
- package/lib/languages/fr-BE.d.ts +0 -11
- package/lib/languages/fr-BE.js +0 -300
- package/lib/languages/fr.d.ts +0 -21
- package/lib/languages/gu.d.ts +0 -7
- package/lib/languages/gu.js +0 -137
- package/lib/languages/ha.d.ts +0 -7
- package/lib/languages/hbo.d.ts +0 -13
- package/lib/languages/he.d.ts +0 -13
- package/lib/languages/he.js +0 -276
- package/lib/languages/hi.d.ts +0 -7
- package/lib/languages/hi.js +0 -145
- package/lib/languages/hr.d.ts +0 -11
- package/lib/languages/hr.js +0 -218
- package/lib/languages/hu.d.ts +0 -7
- package/lib/languages/id.d.ts +0 -7
- package/lib/languages/it.d.ts +0 -19
- package/lib/languages/it.js +0 -377
- package/lib/languages/ja.d.ts +0 -17
- package/lib/languages/kn.d.ts +0 -7
- package/lib/languages/ko.d.ts +0 -14
- package/lib/languages/lt.d.ts +0 -18
- package/lib/languages/lt.js +0 -310
- package/lib/languages/lv.d.ts +0 -18
- package/lib/languages/lv.js +0 -321
- package/lib/languages/mr.d.ts +0 -7
- package/lib/languages/mr.js +0 -137
- package/lib/languages/ms.d.ts +0 -7
- package/lib/languages/nb.d.ts +0 -14
- package/lib/languages/nl.d.ts +0 -26
- package/lib/languages/pa.d.ts +0 -7
- package/lib/languages/pa.js +0 -163
- package/lib/languages/pl.d.ts +0 -22
- package/lib/languages/pl.js +0 -330
- package/lib/languages/pt.d.ts +0 -17
- package/lib/languages/pt.js +0 -306
- package/lib/languages/ro.d.ts +0 -18
- package/lib/languages/ru.d.ts +0 -11
- package/lib/languages/ru.js +0 -240
- package/lib/languages/sr-Cyrl.d.ts +0 -11
- package/lib/languages/sr-Cyrl.js +0 -215
- package/lib/languages/sr-Latn.d.ts +0 -11
- package/lib/languages/sr-Latn.js +0 -215
- package/lib/languages/sv.d.ts +0 -14
- package/lib/languages/sw.d.ts +0 -7
- package/lib/languages/ta.d.ts +0 -7
- package/lib/languages/te.d.ts +0 -7
- package/lib/languages/th.d.ts +0 -7
- package/lib/languages/tr.d.ts +0 -18
- package/lib/languages/tr.js +0 -263
- package/lib/languages/uk.d.ts +0 -11
- package/lib/languages/uk.js +0 -218
- package/lib/languages/ur.d.ts +0 -7
- package/lib/languages/ur.js +0 -163
- package/lib/languages/vi.d.ts +0 -17
- package/lib/languages/zh-Hans.d.ts +0 -11
- package/lib/languages/zh-Hant.d.ts +0 -11
- package/lib/n2words.d.ts +0 -53
- package/lib/n2words.js +0 -122
- package/lib/utils/parse-numeric.d.ts +0 -17
- /package/{lib → src}/utils/is-plain-object.d.ts +0 -0
- /package/{lib → src}/utils/is-plain-object.js +0 -0
- /package/{lib → src}/utils/validate-options.d.ts +0 -0
- /package/{lib → src}/utils/validate-options.js +0 -0
package/src/el-GR.js
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Greek (Greece) language converter
|
|
3
|
+
*
|
|
4
|
+
* CLDR: el-GR | Greek as used in Greece
|
|
5
|
+
*
|
|
6
|
+
* Key features:
|
|
7
|
+
* - Space-separated number composition
|
|
8
|
+
* - Implicit "one" (ένα) omission before scale words
|
|
9
|
+
* - Irregular hundreds (διακόσια, τριακόσια, etc.)
|
|
10
|
+
* - Per-digit decimal reading
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { parseCardinalValue } from './utils/parse-cardinal.js'
|
|
14
|
+
import { parseCurrencyValue } from './utils/parse-currency.js'
|
|
15
|
+
import { parseOrdinalValue } from './utils/parse-ordinal.js'
|
|
16
|
+
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Vocabulary (module-level constants)
|
|
19
|
+
// ============================================================================
|
|
20
|
+
|
|
21
|
+
const ONES = ['', 'ένα', 'δύο', 'τρία', 'τέσσερα', 'πέντε', 'έξι', 'επτά', 'οκτώ', 'εννέα']
|
|
22
|
+
|
|
23
|
+
const TEENS = ['δέκα', 'έντεκα', 'δώδεκα', 'δεκατρία', 'δεκατέσσερα', 'δεκαπέντε', 'δεκαέξι', 'δεκαεπτά', 'δεκαοκτώ', 'δεκαεννέα']
|
|
24
|
+
|
|
25
|
+
const TENS = ['', '', 'είκοσι', 'τριάντα', 'σαράντα', 'πενήντα', 'εξήντα', 'εβδομήντα', 'ογδόντα', 'ενενήντα']
|
|
26
|
+
|
|
27
|
+
// Greek has irregular hundreds
|
|
28
|
+
const HUNDREDS = ['', 'εκατό', 'διακόσια', 'τριακόσια', 'τετρακόσια', 'πεντακόσια', 'εξακόσια', 'επτακόσια', 'οκτακόσια', 'εννιακόσια']
|
|
29
|
+
|
|
30
|
+
const THOUSAND = 'χίλια'
|
|
31
|
+
|
|
32
|
+
const ZERO = 'μηδέν'
|
|
33
|
+
const NEGATIVE = 'μείον'
|
|
34
|
+
const DECIMAL_SEP = 'κόμμα'
|
|
35
|
+
|
|
36
|
+
// Short scale
|
|
37
|
+
const SCALES = ['εκατομμύριο', 'δισεκατομμύριο', 'τρισεκατομμύριο']
|
|
38
|
+
|
|
39
|
+
// Ordinal vocabulary
|
|
40
|
+
const ORDINAL_ONES = ['', 'πρώτος', 'δεύτερος', 'τρίτος', 'τέταρτος', 'πέμπτος', 'έκτος', 'έβδομος', 'όγδοος', 'ένατος']
|
|
41
|
+
|
|
42
|
+
const ORDINAL_TEENS = ['δέκατος', 'ενδέκατος', 'δωδέκατος', 'δέκατος τρίτος', 'δέκατος τέταρτος', 'δέκατος πέμπτος', 'δέκατος έκτος', 'δέκατος έβδομος', 'δέκατος όγδοος', 'δέκατος ένατος']
|
|
43
|
+
|
|
44
|
+
const ORDINAL_TENS = ['', '', 'εικοστός', 'τριακοστός', 'τεσσαρακοστός', 'πεντηκοστός', 'εξηκοστός', 'εβδομηκοστός', 'ογδοηκοστός', 'ενενηκοστός']
|
|
45
|
+
|
|
46
|
+
const ORDINAL_HUNDREDS = ['', 'εκατοστός', 'διακοσιοστός', 'τριακοσιοστός', 'τετρακοσιοστός', 'πεντακοσιοστός', 'εξακοσιοστός', 'επτακοσιοστός', 'οκτακοσιοστός', 'εννιακοσιοστός']
|
|
47
|
+
|
|
48
|
+
const ORDINAL_THOUSAND = 'χιλιοστός'
|
|
49
|
+
const ORDINAL_MILLION = 'εκατομμυριοστός'
|
|
50
|
+
|
|
51
|
+
// Currency (Euro)
|
|
52
|
+
const EURO_FORMS = ['ευρώ', 'ευρώ'] // Singular, plural (indeclinable)
|
|
53
|
+
const CENT_FORMS = ['λεπτό', 'λεπτά'] // Singular, plural
|
|
54
|
+
|
|
55
|
+
// ============================================================================
|
|
56
|
+
// Segment Building
|
|
57
|
+
// ============================================================================
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Builds segment word for 0-999.
|
|
61
|
+
*/
|
|
62
|
+
function buildSegment (n) {
|
|
63
|
+
if (n === 0) return ''
|
|
64
|
+
|
|
65
|
+
const ones = n % 10
|
|
66
|
+
const tens = Math.trunc(n / 10) % 10
|
|
67
|
+
const hundreds = Math.trunc(n / 100)
|
|
68
|
+
|
|
69
|
+
const parts = []
|
|
70
|
+
|
|
71
|
+
// Hundreds (irregular forms)
|
|
72
|
+
if (hundreds > 0) {
|
|
73
|
+
parts.push(HUNDREDS[hundreds])
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Tens and ones
|
|
77
|
+
const tensOnes = n % 100
|
|
78
|
+
|
|
79
|
+
if (tensOnes === 0) {
|
|
80
|
+
// Just hundreds
|
|
81
|
+
} else if (tensOnes < 10) {
|
|
82
|
+
parts.push(ONES[ones])
|
|
83
|
+
} else if (tensOnes < 20) {
|
|
84
|
+
parts.push(TEENS[ones])
|
|
85
|
+
} else if (ones === 0) {
|
|
86
|
+
parts.push(TENS[tens])
|
|
87
|
+
} else {
|
|
88
|
+
parts.push(TENS[tens] + ' ' + ONES[ones])
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return parts.join(' ')
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// ============================================================================
|
|
95
|
+
// Conversion Functions
|
|
96
|
+
// ============================================================================
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Converts a non-negative integer to Greek words.
|
|
100
|
+
*
|
|
101
|
+
* @param {bigint} n - Non-negative integer to convert
|
|
102
|
+
* @returns {string} Greek words
|
|
103
|
+
*/
|
|
104
|
+
function integerToWords (n) {
|
|
105
|
+
if (n === 0n) return ZERO
|
|
106
|
+
|
|
107
|
+
// Fast path: numbers < 1000 (direct lookup)
|
|
108
|
+
if (n < 1000n) {
|
|
109
|
+
return buildSegment(Number(n))
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Fast path: numbers < 1,000,000 (thousands)
|
|
113
|
+
if (n < 1_000_000n) {
|
|
114
|
+
const thousands = Number(n / 1000n)
|
|
115
|
+
const remainder = Number(n % 1000n)
|
|
116
|
+
|
|
117
|
+
// Omit "ένα" before χίλια
|
|
118
|
+
let result
|
|
119
|
+
if (thousands === 1) {
|
|
120
|
+
result = THOUSAND
|
|
121
|
+
} else {
|
|
122
|
+
result = buildSegment(thousands) + ' ' + THOUSAND
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (remainder > 0) {
|
|
126
|
+
result += ' ' + buildSegment(remainder)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return result
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// For numbers >= 1,000,000, use scale decomposition
|
|
133
|
+
return buildLargeNumberWords(n)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Builds words for numbers >= 1,000,000.
|
|
138
|
+
*
|
|
139
|
+
* @param {bigint} n - Number >= 1,000,000
|
|
140
|
+
* @returns {string} Greek words
|
|
141
|
+
*/
|
|
142
|
+
function buildLargeNumberWords (n) {
|
|
143
|
+
const numStr = n.toString()
|
|
144
|
+
const len = numStr.length
|
|
145
|
+
|
|
146
|
+
// Build segments of 3 digits from right to left
|
|
147
|
+
const segments = []
|
|
148
|
+
const segmentSize = 3
|
|
149
|
+
|
|
150
|
+
const remainderLen = len % segmentSize
|
|
151
|
+
let pos = 0
|
|
152
|
+
if (remainderLen > 0) {
|
|
153
|
+
segments.push(Number(numStr.slice(0, remainderLen)))
|
|
154
|
+
pos = remainderLen
|
|
155
|
+
}
|
|
156
|
+
while (pos < len) {
|
|
157
|
+
segments.push(Number(numStr.slice(pos, pos + segmentSize)))
|
|
158
|
+
pos += segmentSize
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Convert segments to words
|
|
162
|
+
const parts = []
|
|
163
|
+
let scaleIndex = segments.length - 1
|
|
164
|
+
|
|
165
|
+
for (let i = 0; i < segments.length; i++) {
|
|
166
|
+
const segment = segments[i]
|
|
167
|
+
|
|
168
|
+
if (segment !== 0) {
|
|
169
|
+
const segmentWord = buildSegment(segment)
|
|
170
|
+
|
|
171
|
+
if (scaleIndex === 0) {
|
|
172
|
+
// Units segment
|
|
173
|
+
parts.push(segmentWord)
|
|
174
|
+
} else if (scaleIndex === 1) {
|
|
175
|
+
// Thousands - omit "ένα" before χίλια
|
|
176
|
+
if (segment === 1) {
|
|
177
|
+
parts.push(THOUSAND)
|
|
178
|
+
} else {
|
|
179
|
+
parts.push(segmentWord + ' ' + THOUSAND)
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
// Millions+ - omit "ένα" before scale words
|
|
183
|
+
const scaleWord = SCALES[scaleIndex - 2]
|
|
184
|
+
if (segment === 1) {
|
|
185
|
+
parts.push(scaleWord)
|
|
186
|
+
} else {
|
|
187
|
+
parts.push(segmentWord + ' ' + scaleWord)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
scaleIndex--
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return parts.join(' ')
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Converts decimal digits to Greek words (per-digit).
|
|
200
|
+
*
|
|
201
|
+
* @param {string} decimalPart - Decimal digits (without the point)
|
|
202
|
+
* @returns {string} Greek words for decimal part
|
|
203
|
+
*/
|
|
204
|
+
function decimalPartToWords (decimalPart) {
|
|
205
|
+
const parts = []
|
|
206
|
+
|
|
207
|
+
for (const digit of decimalPart) {
|
|
208
|
+
const d = parseInt(digit, 10)
|
|
209
|
+
if (d === 0) {
|
|
210
|
+
parts.push(ZERO)
|
|
211
|
+
} else {
|
|
212
|
+
parts.push(ONES[d])
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return parts.join(' ')
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Converts a numeric value to Greek words.
|
|
221
|
+
*
|
|
222
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
223
|
+
* @returns {string} The number in Greek words
|
|
224
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
225
|
+
* @throws {Error} If value is not a valid number format
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* toCardinal(21) // 'είκοσι ένα'
|
|
229
|
+
* toCardinal(1000) // 'χίλια'
|
|
230
|
+
* toCardinal('3.14') // 'τρία κόμμα ένα τέσσερα'
|
|
231
|
+
*/
|
|
232
|
+
function toCardinal (value) {
|
|
233
|
+
const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
|
|
234
|
+
|
|
235
|
+
let result = ''
|
|
236
|
+
|
|
237
|
+
if (isNegative) {
|
|
238
|
+
result = NEGATIVE + ' '
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
result += integerToWords(integerPart)
|
|
242
|
+
|
|
243
|
+
if (decimalPart) {
|
|
244
|
+
result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return result
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// ============================================================================
|
|
251
|
+
// Ordinal Functions
|
|
252
|
+
// ============================================================================
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Builds ordinal for tens and ones (0-99).
|
|
256
|
+
*
|
|
257
|
+
* @param {number} n - Number 0-99
|
|
258
|
+
* @returns {string} Ordinal word
|
|
259
|
+
*/
|
|
260
|
+
function buildOrdinalTensOnes (n) {
|
|
261
|
+
if (n === 0) return ''
|
|
262
|
+
if (n < 10) return ORDINAL_ONES[n]
|
|
263
|
+
if (n < 20) return ORDINAL_TEENS[n - 10]
|
|
264
|
+
|
|
265
|
+
const ones = n % 10
|
|
266
|
+
const tens = Math.trunc(n / 10)
|
|
267
|
+
|
|
268
|
+
if (ones === 0) {
|
|
269
|
+
return ORDINAL_TENS[tens]
|
|
270
|
+
}
|
|
271
|
+
return ORDINAL_TENS[tens] + ' ' + ORDINAL_ONES[ones]
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Converts a non-negative integer to Greek ordinal words.
|
|
276
|
+
*
|
|
277
|
+
* @param {bigint} n - Non-negative integer to convert
|
|
278
|
+
* @returns {string} Greek ordinal words
|
|
279
|
+
*/
|
|
280
|
+
function integerToOrdinal (n) {
|
|
281
|
+
if (n === 0n) return ''
|
|
282
|
+
if (n === 1n) return ORDINAL_ONES[1]
|
|
283
|
+
|
|
284
|
+
// Numbers < 100
|
|
285
|
+
if (n < 100n) {
|
|
286
|
+
return buildOrdinalTensOnes(Number(n))
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// Numbers < 1000
|
|
290
|
+
if (n < 1000n) {
|
|
291
|
+
const hundreds = Number(n / 100n)
|
|
292
|
+
const remainder = Number(n % 100n)
|
|
293
|
+
|
|
294
|
+
if (remainder === 0) {
|
|
295
|
+
return ORDINAL_HUNDREDS[hundreds]
|
|
296
|
+
}
|
|
297
|
+
return HUNDREDS[hundreds] + ' ' + buildOrdinalTensOnes(remainder)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// Numbers < 1,000,000
|
|
301
|
+
if (n < 1_000_000n) {
|
|
302
|
+
const thousands = Number(n / 1000n)
|
|
303
|
+
const remainder = Number(n % 1000n)
|
|
304
|
+
|
|
305
|
+
if (remainder === 0) {
|
|
306
|
+
if (thousands === 1) {
|
|
307
|
+
return ORDINAL_THOUSAND
|
|
308
|
+
}
|
|
309
|
+
return buildSegment(thousands) + ' ' + ORDINAL_THOUSAND
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// Cardinal thousands + ordinal remainder
|
|
313
|
+
let result
|
|
314
|
+
if (thousands === 1) {
|
|
315
|
+
result = THOUSAND
|
|
316
|
+
} else {
|
|
317
|
+
result = buildSegment(thousands) + ' ' + THOUSAND
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
if (remainder < 100) {
|
|
321
|
+
return result + ' ' + buildOrdinalTensOnes(remainder)
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const remHundreds = Math.trunc(remainder / 100)
|
|
325
|
+
const remTensOnes = remainder % 100
|
|
326
|
+
|
|
327
|
+
if (remTensOnes === 0) {
|
|
328
|
+
return result + ' ' + ORDINAL_HUNDREDS[remHundreds]
|
|
329
|
+
}
|
|
330
|
+
return result + ' ' + HUNDREDS[remHundreds] + ' ' + buildOrdinalTensOnes(remTensOnes)
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// Numbers >= 1,000,000
|
|
334
|
+
const millions = Number(n / 1_000_000n)
|
|
335
|
+
const remainder = n % 1_000_000n
|
|
336
|
+
|
|
337
|
+
if (remainder === 0n) {
|
|
338
|
+
if (millions === 1) {
|
|
339
|
+
return ORDINAL_MILLION
|
|
340
|
+
}
|
|
341
|
+
return buildSegment(millions) + ' ' + ORDINAL_MILLION
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// Cardinal millions + ordinal remainder
|
|
345
|
+
let result
|
|
346
|
+
if (millions === 1) {
|
|
347
|
+
result = SCALES[0]
|
|
348
|
+
} else {
|
|
349
|
+
result = buildSegment(millions) + ' ' + SCALES[0]
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
return result + ' ' + integerToOrdinal(remainder)
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Converts a numeric value to Greek ordinal words.
|
|
357
|
+
*
|
|
358
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
359
|
+
* @returns {string} The ordinal in Greek words
|
|
360
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
361
|
+
* @throws {Error} If value is not a positive integer
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* toOrdinal(1) // 'πρώτος'
|
|
365
|
+
* toOrdinal(21) // 'εικοστός πρώτος'
|
|
366
|
+
*/
|
|
367
|
+
function toOrdinal (value) {
|
|
368
|
+
const n = parseOrdinalValue(value)
|
|
369
|
+
return integerToOrdinal(n)
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
// ============================================================================
|
|
373
|
+
// Currency Functions
|
|
374
|
+
// ============================================================================
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Converts a numeric value to Greek Euro currency words.
|
|
378
|
+
*
|
|
379
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
380
|
+
* @returns {string} The currency in Greek words
|
|
381
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
382
|
+
* @throws {Error} If value is not a valid number format
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* toCurrency(1) // 'ένα ευρώ'
|
|
386
|
+
* toCurrency(2.50) // 'δύο ευρώ πενήντα λεπτά'
|
|
387
|
+
*/
|
|
388
|
+
function toCurrency (value) {
|
|
389
|
+
const { isNegative, dollars, cents } = parseCurrencyValue(value)
|
|
390
|
+
|
|
391
|
+
const parts = []
|
|
392
|
+
|
|
393
|
+
if (isNegative) {
|
|
394
|
+
parts.push(NEGATIVE)
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// Euros
|
|
398
|
+
if (dollars > 0n || cents === 0n) {
|
|
399
|
+
const euroWord = integerToWords(dollars)
|
|
400
|
+
const euroForm = dollars === 1n ? EURO_FORMS[0] : EURO_FORMS[1]
|
|
401
|
+
parts.push(euroWord + ' ' + euroForm)
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// Cents (λεπτά)
|
|
405
|
+
if (cents > 0n) {
|
|
406
|
+
const centWord = integerToWords(cents)
|
|
407
|
+
const centForm = cents === 1n ? CENT_FORMS[0] : CENT_FORMS[1]
|
|
408
|
+
parts.push(centWord + ' ' + centForm)
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
return parts.join(' ')
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
// ============================================================================
|
|
415
|
+
// Public API
|
|
416
|
+
// ============================================================================
|
|
417
|
+
|
|
418
|
+
export { toCardinal, toOrdinal, toCurrency }
|
package/src/en-AU.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Australian English words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @returns {string} The number in English words
|
|
6
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
7
|
+
* @throws {Error} If value is not a valid number format
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* toCardinal(42) // 'forty-two'
|
|
11
|
+
* toCardinal(101) // 'one hundred and one'
|
|
12
|
+
* toCardinal(1000000) // 'one million'
|
|
13
|
+
*/
|
|
14
|
+
export function toCardinal(value: number | string | bigint): string;
|
|
15
|
+
/**
|
|
16
|
+
* Converts a numeric value to Australian English ordinal words.
|
|
17
|
+
*
|
|
18
|
+
* @param {number | string | bigint} value - The numeric value to convert (must be a positive integer)
|
|
19
|
+
* @returns {string} The number as ordinal words
|
|
20
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
21
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* toOrdinal(1) // 'first'
|
|
25
|
+
* toOrdinal(42) // 'forty-second'
|
|
26
|
+
* toOrdinal(100) // 'one hundredth'
|
|
27
|
+
*/
|
|
28
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
29
|
+
/**
|
|
30
|
+
* Converts a numeric value to Australian English currency words.
|
|
31
|
+
*
|
|
32
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
33
|
+
* @param {Object} [options] - Optional configuration
|
|
34
|
+
* @param {boolean} [options.and=true] - Use "and" between dollars and cents
|
|
35
|
+
* @returns {string} The amount in Australian English currency words
|
|
36
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
37
|
+
* @throws {Error} If value is not a valid number format
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* toCurrency(42.50) // 'forty-two dollars and fifty cents'
|
|
41
|
+
* toCurrency(1) // 'one dollar'
|
|
42
|
+
* toCurrency(0.99) // 'ninety-nine cents'
|
|
43
|
+
* toCurrency(42.50, { and: false }) // 'forty-two dollars fifty cents'
|
|
44
|
+
*/
|
|
45
|
+
export function toCurrency(value: number | string | bigint, options?: {
|
|
46
|
+
and?: boolean | undefined;
|
|
47
|
+
}): string;
|