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
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Dutch language converter
|
|
2
|
+
* Dutch (Netherlands) language converter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Self-contained module with its own input validation, ready for subpath exports.
|
|
4
|
+
* CLDR: nl-NL | Dutch as used in the Netherlands
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
* This eliminates all per-call string manipulation for segment conversion.
|
|
9
|
-
*
|
|
10
|
-
* Dutch-specific rules (handled in precomputation):
|
|
6
|
+
* Dutch-specific rules:
|
|
11
7
|
* - Inverted tens-ones: eenentwintig (one-and-twenty)
|
|
12
8
|
* - "ën" connector when ones ends in 'e' (twee, drie)
|
|
13
9
|
* - Compound words without spaces
|
|
@@ -17,8 +13,10 @@
|
|
|
17
13
|
* - Long scale with -ard forms
|
|
18
14
|
*/
|
|
19
15
|
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
16
|
+
import { parseCardinalValue } from './utils/parse-cardinal.js'
|
|
17
|
+
import { parseCurrencyValue } from './utils/parse-currency.js'
|
|
18
|
+
import { parseOrdinalValue } from './utils/parse-ordinal.js'
|
|
19
|
+
import { validateOptions } from './utils/validate-options.js'
|
|
22
20
|
|
|
23
21
|
// ============================================================================
|
|
24
22
|
// Vocabulary (module-level constants)
|
|
@@ -37,8 +35,14 @@ const ZERO = 'nul'
|
|
|
37
35
|
const NEGATIVE = 'min'
|
|
38
36
|
const DECIMAL_SEP = 'komma'
|
|
39
37
|
|
|
38
|
+
// Currency vocabulary (Euro)
|
|
39
|
+
const EURO = 'euro'
|
|
40
|
+
const EUROS = 'euro' // Euro doesn't pluralize in Dutch
|
|
41
|
+
const CENT = 'cent'
|
|
42
|
+
const CENTEN = 'cent' // Cent doesn't pluralize in written currency
|
|
43
|
+
|
|
40
44
|
// ============================================================================
|
|
41
|
-
//
|
|
45
|
+
// Segment Building
|
|
42
46
|
// ============================================================================
|
|
43
47
|
|
|
44
48
|
/**
|
|
@@ -51,8 +55,8 @@ function buildSegment (n, withAnd) {
|
|
|
51
55
|
if (n === 0) return ''
|
|
52
56
|
|
|
53
57
|
const ones = n % 10
|
|
54
|
-
const tens = Math.
|
|
55
|
-
const hundreds = Math.
|
|
58
|
+
const tens = Math.trunc(n / 10) % 10
|
|
59
|
+
const hundreds = Math.trunc(n / 100)
|
|
56
60
|
const tensOnes = n % 100
|
|
57
61
|
|
|
58
62
|
let result = ''
|
|
@@ -98,18 +102,6 @@ function buildSegment (n, withAnd) {
|
|
|
98
102
|
return result
|
|
99
103
|
}
|
|
100
104
|
|
|
101
|
-
// Precompute all 1000 segment words (0-999) - standard form
|
|
102
|
-
const SEGMENTS = new Array(1000)
|
|
103
|
-
for (let i = 0; i < 1000; i++) {
|
|
104
|
-
SEGMENTS[i] = buildSegment(i, false)
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Precompute all 1000 segment words (0-999) - with optional "en"
|
|
108
|
-
const SEGMENTS_WITH_AND = new Array(1000)
|
|
109
|
-
for (let i = 0; i < 1000; i++) {
|
|
110
|
-
SEGMENTS_WITH_AND[i] = buildSegment(i, true)
|
|
111
|
-
}
|
|
112
|
-
|
|
113
105
|
// ============================================================================
|
|
114
106
|
// Conversion Functions
|
|
115
107
|
// ============================================================================
|
|
@@ -125,7 +117,6 @@ function integerToWords (n, options) {
|
|
|
125
117
|
if (n === 0n) return ZERO
|
|
126
118
|
|
|
127
119
|
const { accentOne, includeOptionalAnd, noHundredPairing } = options
|
|
128
|
-
const segments = includeOptionalAnd ? SEGMENTS_WITH_AND : SEGMENTS
|
|
129
120
|
|
|
130
121
|
// Apply één/een replacement
|
|
131
122
|
const applyAccent = (word) => {
|
|
@@ -135,9 +126,9 @@ function integerToWords (n, options) {
|
|
|
135
126
|
return word
|
|
136
127
|
}
|
|
137
128
|
|
|
138
|
-
// Fast path: numbers < 1000
|
|
129
|
+
// Fast path: numbers < 1000
|
|
139
130
|
if (n < 1000n) {
|
|
140
|
-
return applyAccent(
|
|
131
|
+
return applyAccent(buildSegment(Number(n), includeOptionalAnd))
|
|
141
132
|
}
|
|
142
133
|
|
|
143
134
|
// Hundred pairing for 1100-9999
|
|
@@ -147,9 +138,9 @@ function integerToWords (n, options) {
|
|
|
147
138
|
|
|
148
139
|
// Only use pairing when high is not a multiple of 10
|
|
149
140
|
if (high % 10 !== 0) {
|
|
150
|
-
let result =
|
|
141
|
+
let result = buildSegment(high, includeOptionalAnd) + HUNDRED
|
|
151
142
|
if (low > 0) {
|
|
152
|
-
const lowWord =
|
|
143
|
+
const lowWord = buildSegment(low, includeOptionalAnd)
|
|
153
144
|
if (includeOptionalAnd && low < 13) {
|
|
154
145
|
result += ' en ' + lowWord
|
|
155
146
|
} else {
|
|
@@ -171,11 +162,11 @@ function integerToWords (n, options) {
|
|
|
171
162
|
result = SCALES[0]
|
|
172
163
|
} else {
|
|
173
164
|
// Compound: "vijfduizend"
|
|
174
|
-
result =
|
|
165
|
+
result = buildSegment(thousands, includeOptionalAnd) + SCALES[0]
|
|
175
166
|
}
|
|
176
167
|
|
|
177
168
|
if (remainder > 0) {
|
|
178
|
-
const remainderWord =
|
|
169
|
+
const remainderWord = buildSegment(remainder, includeOptionalAnd)
|
|
179
170
|
if (includeOptionalAnd && remainder < 13) {
|
|
180
171
|
result += ' en ' + remainderWord
|
|
181
172
|
} else {
|
|
@@ -200,7 +191,6 @@ function integerToWords (n, options) {
|
|
|
200
191
|
*/
|
|
201
192
|
function buildLargeNumberWords (n, options) {
|
|
202
193
|
const { includeOptionalAnd } = options
|
|
203
|
-
const segmentLookup = includeOptionalAnd ? SEGMENTS_WITH_AND : SEGMENTS
|
|
204
194
|
|
|
205
195
|
// Extract segments using BigInt division (faster than string slicing)
|
|
206
196
|
// Segments stored least-significant first (index 0 = ones, 1 = thousands, etc.)
|
|
@@ -221,7 +211,7 @@ function buildLargeNumberWords (n, options) {
|
|
|
221
211
|
|
|
222
212
|
if (i === 0) {
|
|
223
213
|
// Units segment
|
|
224
|
-
const word =
|
|
214
|
+
const word = buildSegment(segment, includeOptionalAnd)
|
|
225
215
|
if (result) {
|
|
226
216
|
if (prevWasScale && includeOptionalAnd && segment < 13) {
|
|
227
217
|
result += ' en ' + word
|
|
@@ -238,7 +228,7 @@ function buildLargeNumberWords (n, options) {
|
|
|
238
228
|
if (segment === 1) {
|
|
239
229
|
result += SCALES[0]
|
|
240
230
|
} else {
|
|
241
|
-
result +=
|
|
231
|
+
result += buildSegment(segment, includeOptionalAnd) + SCALES[0]
|
|
242
232
|
}
|
|
243
233
|
prevWasScale = true
|
|
244
234
|
} else {
|
|
@@ -248,7 +238,7 @@ function buildLargeNumberWords (n, options) {
|
|
|
248
238
|
if (segment === 1) {
|
|
249
239
|
result += 'een ' + scaleWord
|
|
250
240
|
} else {
|
|
251
|
-
result +=
|
|
241
|
+
result += buildSegment(segment, includeOptionalAnd) + ' ' + scaleWord
|
|
252
242
|
}
|
|
253
243
|
prevWasScale = true
|
|
254
244
|
}
|
|
@@ -302,20 +292,23 @@ function decimalPartToWords (decimalPart, options) {
|
|
|
302
292
|
* @throws {Error} If value is not a valid number format
|
|
303
293
|
*
|
|
304
294
|
* @example
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
295
|
+
* toCardinal(21) // 'eenentwintig'
|
|
296
|
+
* toCardinal(1) // 'één'
|
|
297
|
+
* toCardinal(1, {accentOne: false}) // 'een'
|
|
298
|
+
* toCardinal(1104) // 'elfhonderd vier'
|
|
309
299
|
*/
|
|
310
|
-
function
|
|
300
|
+
function toCardinal (value, options) {
|
|
311
301
|
options = validateOptions(options)
|
|
312
|
-
const { isNegative, integerPart, decimalPart } =
|
|
302
|
+
const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
|
|
313
303
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
304
|
+
// Apply option defaults
|
|
305
|
+
const {
|
|
306
|
+
accentOne = true,
|
|
307
|
+
includeOptionalAnd = false,
|
|
308
|
+
noHundredPairing = false
|
|
309
|
+
} = options
|
|
310
|
+
|
|
311
|
+
const opts = { accentOne, includeOptionalAnd, noHundredPairing }
|
|
319
312
|
|
|
320
313
|
let result = ''
|
|
321
314
|
|
|
@@ -332,8 +325,239 @@ function toWords (value, options) {
|
|
|
332
325
|
return result
|
|
333
326
|
}
|
|
334
327
|
|
|
328
|
+
// ============================================================================
|
|
329
|
+
// Ordinal Functions
|
|
330
|
+
// ============================================================================
|
|
331
|
+
|
|
332
|
+
// Ordinal forms for 1-9
|
|
333
|
+
const ORDINAL_ONES = ['', 'eerste', 'tweede', 'derde', 'vierde', 'vijfde', 'zesde', 'zevende', 'achtste', 'negende']
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Converts a small cardinal to ordinal.
|
|
337
|
+
* Rules: 1-19 add -de (except eerste, derde, achtste), 20+ add -ste
|
|
338
|
+
*
|
|
339
|
+
* @param {string} cardinalWord - Cardinal word
|
|
340
|
+
* @param {number} n - The number value (0-99)
|
|
341
|
+
* @returns {string} Ordinal word
|
|
342
|
+
*/
|
|
343
|
+
function smallCardinalToOrdinal (cardinalWord, n) {
|
|
344
|
+
// Special cases for 1-9
|
|
345
|
+
if (n >= 1 && n <= 9) return ORDINAL_ONES[n]
|
|
346
|
+
|
|
347
|
+
// 10-19: add -de or -e if ends in d
|
|
348
|
+
if (n < 20) {
|
|
349
|
+
if (cardinalWord.endsWith('d')) {
|
|
350
|
+
return cardinalWord + 'e'
|
|
351
|
+
}
|
|
352
|
+
return cardinalWord + 'de'
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
// 20+: add -ste
|
|
356
|
+
return cardinalWord + 'ste'
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Builds ordinal words for 0-999.
|
|
361
|
+
*
|
|
362
|
+
* @param {number} n - Number 0-999
|
|
363
|
+
* @returns {string} Dutch ordinal words
|
|
364
|
+
*/
|
|
365
|
+
function buildOrdinalSegment (n) {
|
|
366
|
+
if (n === 0) return ''
|
|
367
|
+
|
|
368
|
+
const hundreds = Math.trunc(n / 100)
|
|
369
|
+
const tensOnes = n % 100
|
|
370
|
+
|
|
371
|
+
// Simple cases: 1-99
|
|
372
|
+
if (hundreds === 0) {
|
|
373
|
+
const cardinalWord = buildSegment(n, false)
|
|
374
|
+
return smallCardinalToOrdinal(cardinalWord, n)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// Hundreds: need to build prefix + ordinal suffix
|
|
378
|
+
let prefix = ''
|
|
379
|
+
if (hundreds === 1) {
|
|
380
|
+
prefix = HUNDRED
|
|
381
|
+
} else {
|
|
382
|
+
prefix = ONES[hundreds] + HUNDRED
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
if (tensOnes === 0) {
|
|
386
|
+
// Exact hundred: honderdste, tweehonderdste
|
|
387
|
+
return prefix + 'ste'
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// Hundreds + remainder: honderd eerste, tweehonderd drieëntwintigste
|
|
391
|
+
// Dutch ordinals with hundreds use a space before the ordinal part
|
|
392
|
+
const ordinalPart = smallCardinalToOrdinal(buildSegment(tensOnes, false), tensOnes)
|
|
393
|
+
return prefix + ' ' + ordinalPart
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Converts a number to Dutch ordinal words.
|
|
398
|
+
*
|
|
399
|
+
* @param {number | string | bigint} value - The number to convert
|
|
400
|
+
* @returns {string} Dutch ordinal words
|
|
401
|
+
*
|
|
402
|
+
* @example
|
|
403
|
+
* toOrdinal(1) // 'eerste'
|
|
404
|
+
* toOrdinal(21) // 'eenentwintigste'
|
|
405
|
+
* toOrdinal(100) // 'honderdste'
|
|
406
|
+
*/
|
|
407
|
+
function toOrdinal (value) {
|
|
408
|
+
const n = parseOrdinalValue(value)
|
|
409
|
+
|
|
410
|
+
// Fast path: 1-9
|
|
411
|
+
if (n < 10n) return ORDINAL_ONES[Number(n)]
|
|
412
|
+
|
|
413
|
+
// Fast path: 10-99
|
|
414
|
+
if (n < 100n) {
|
|
415
|
+
const cardinalWord = buildSegment(Number(n), false)
|
|
416
|
+
return smallCardinalToOrdinal(cardinalWord, Number(n))
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Fast path: 100-999
|
|
420
|
+
if (n < 1000n) {
|
|
421
|
+
return buildOrdinalSegment(Number(n))
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
// Large numbers: build with cardinal then convert last segment
|
|
425
|
+
return buildLargeOrdinal(n)
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Builds ordinal words for large numbers.
|
|
430
|
+
*
|
|
431
|
+
* @param {bigint} n - Non-negative integer >= 1000
|
|
432
|
+
* @returns {string} Dutch ordinal words
|
|
433
|
+
*/
|
|
434
|
+
function buildLargeOrdinal (n) {
|
|
435
|
+
// Extract segments
|
|
436
|
+
const segments = []
|
|
437
|
+
let temp = n
|
|
438
|
+
while (temp > 0n) {
|
|
439
|
+
segments.push(Number(temp % 1000n))
|
|
440
|
+
temp = temp / 1000n
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// Find the lowest non-zero segment
|
|
444
|
+
let lowestNonZeroIdx = 0
|
|
445
|
+
for (let i = 0; i < segments.length; i++) {
|
|
446
|
+
if (segments[i] !== 0) {
|
|
447
|
+
lowestNonZeroIdx = i
|
|
448
|
+
break
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// Scale ordinal words
|
|
453
|
+
const SCALE_ORDINAL = ['', 'duizendste', 'miljoenste', 'miljardste', 'biljoenste', 'biljardste', 'triljoenste']
|
|
454
|
+
|
|
455
|
+
let result = ''
|
|
456
|
+
|
|
457
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
458
|
+
const segment = segments[i]
|
|
459
|
+
if (segment === 0) continue
|
|
460
|
+
|
|
461
|
+
if (result) result += ' '
|
|
462
|
+
|
|
463
|
+
if (i === lowestNonZeroIdx) {
|
|
464
|
+
// Last non-zero segment gets ordinal form
|
|
465
|
+
if (i === 0) {
|
|
466
|
+
// Units segment: use ordinal segment builder
|
|
467
|
+
result += buildOrdinalSegment(segment)
|
|
468
|
+
} else if (segment === 1 && i > 0) {
|
|
469
|
+
// Exact scale: duizendste, miljoenste, etc.
|
|
470
|
+
if (i === 1) {
|
|
471
|
+
result += SCALE_ORDINAL[i]
|
|
472
|
+
} else {
|
|
473
|
+
result += 'een ' + SCALE_ORDINAL[i]
|
|
474
|
+
}
|
|
475
|
+
} else {
|
|
476
|
+
// Segment + scale ordinal
|
|
477
|
+
if (i === 1) {
|
|
478
|
+
result += buildSegment(segment, false) + SCALE_ORDINAL[i]
|
|
479
|
+
} else {
|
|
480
|
+
result += buildSegment(segment, false) + ' ' + SCALE_ORDINAL[i]
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
} else {
|
|
484
|
+
// Higher segments use cardinal form
|
|
485
|
+
if (i === 1) {
|
|
486
|
+
if (segment === 1) {
|
|
487
|
+
result += SCALES[0]
|
|
488
|
+
} else {
|
|
489
|
+
result += buildSegment(segment, false) + SCALES[0]
|
|
490
|
+
}
|
|
491
|
+
} else {
|
|
492
|
+
const scaleWord = SCALES[i - 1]
|
|
493
|
+
if (segment === 1) {
|
|
494
|
+
result += 'een ' + scaleWord
|
|
495
|
+
} else {
|
|
496
|
+
result += buildSegment(segment, false) + ' ' + scaleWord
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
return result
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// ============================================================================
|
|
506
|
+
// Currency Functions
|
|
507
|
+
// ============================================================================
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Converts a number to Dutch currency words (Euro).
|
|
511
|
+
*
|
|
512
|
+
* @param {number | string | bigint} value - The amount to convert
|
|
513
|
+
* @param {Object} [options]
|
|
514
|
+
* @param {boolean} [options.and=true] - Include "en" between euros and cents
|
|
515
|
+
* @returns {string} Dutch currency words
|
|
516
|
+
*
|
|
517
|
+
* @example
|
|
518
|
+
* toCurrency(42.50) // 'tweeënveertig euro en vijftig cent'
|
|
519
|
+
* toCurrency(1) // 'één euro'
|
|
520
|
+
* toCurrency(0.01) // 'één cent'
|
|
521
|
+
*/
|
|
522
|
+
function toCurrency (value, options) {
|
|
523
|
+
options = validateOptions(options)
|
|
524
|
+
const { isNegative, dollars: euros, cents } = parseCurrencyValue(value)
|
|
525
|
+
const { and = true } = options
|
|
526
|
+
|
|
527
|
+
let result = ''
|
|
528
|
+
|
|
529
|
+
if (isNegative) {
|
|
530
|
+
result = NEGATIVE + ' '
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
const hasEuros = euros > 0n
|
|
534
|
+
const hasCents = cents > 0n
|
|
535
|
+
|
|
536
|
+
if (!hasEuros && !hasCents) {
|
|
537
|
+
return ZERO + ' ' + EUROS
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
// Use accentOne: true for currency (één euro, één cent)
|
|
541
|
+
const opts = { accentOne: true, includeOptionalAnd: false, noHundredPairing: true }
|
|
542
|
+
|
|
543
|
+
if (hasEuros) {
|
|
544
|
+
const euroWords = integerToWords(euros, opts)
|
|
545
|
+
result += euroWords + ' ' + (euros === 1n ? EURO : EUROS)
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
if (hasCents) {
|
|
549
|
+
if (hasEuros) {
|
|
550
|
+
result += and ? ' en ' : ' '
|
|
551
|
+
}
|
|
552
|
+
const centWords = integerToWords(cents, opts)
|
|
553
|
+
result += centWords + ' ' + (cents === 1n ? CENT : CENTEN)
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
return result
|
|
557
|
+
}
|
|
558
|
+
|
|
335
559
|
// ============================================================================
|
|
336
560
|
// Public API
|
|
337
561
|
// ============================================================================
|
|
338
562
|
|
|
339
|
-
export {
|
|
563
|
+
export { toCardinal, toOrdinal, toCurrency }
|
package/src/pa-IN.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Punjabi words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @returns {string} The number in Punjabi words
|
|
6
|
+
*/
|
|
7
|
+
export function toCardinal(value: number | string | bigint): string;
|
|
8
|
+
/**
|
|
9
|
+
* Converts a numeric value to Punjabi ordinal words.
|
|
10
|
+
*
|
|
11
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
12
|
+
* @returns {string} The number as ordinal words
|
|
13
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
14
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* toOrdinal(1) // 'ਪਹਿਲਾ'
|
|
18
|
+
* toOrdinal(2) // 'ਦੂਜਾ'
|
|
19
|
+
* toOrdinal(3) // 'ਤੀਜਾ'
|
|
20
|
+
* toOrdinal(10) // 'ਦੱਸਵਾਂ'
|
|
21
|
+
*/
|
|
22
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
23
|
+
/**
|
|
24
|
+
* Converts a numeric value to Punjabi currency words (Indian Rupee).
|
|
25
|
+
*
|
|
26
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
27
|
+
* @returns {string} The amount in Punjabi currency words
|
|
28
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
29
|
+
* @throws {Error} If value is not a valid number format
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* toCurrency(42.50) // 'ਬਿਆਲੀ ਰੁਪਏ ਪੰਜਾਹ ਪੈਸੇ'
|
|
33
|
+
* toCurrency(1) // 'ਇੱਕ ਰੁਪਇਆ'
|
|
34
|
+
* toCurrency(0.01) // 'ਇੱਕ ਪੈਸਾ'
|
|
35
|
+
*/
|
|
36
|
+
export function toCurrency(value: number | string | bigint): string;
|