UNPKG

to-words

Version:

Convert numbers to words in 132 locales with currency, ordinal, and BigInt support (TypeScript, ESM/CJS/UMD).

156 lines (155 loc) 6.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToWords = void 0; exports.toWords = toWords; exports.toOrdinal = toOrdinal; exports.toCurrency = toCurrency; const ToWordsCore_js_1 = require("../ToWordsCore.js"); class Locale { config = { currency: { name: 'Piso', plural: 'Piso', singular: 'Piso', symbol: '₱', fractionalUnit: { name: 'Sentimo', plural: 'Sentimo', singular: 'Sentimo', symbol: '', }, }, texts: { and: 'At', minus: 'Minus', only: 'Lamang', point: 'Tuldok', }, numberWordsMapping: [ { number: 1000000000000000, value: 'Katrilyon' }, { number: 1000000000000, value: 'Trilyon' }, { number: 1000000000, value: 'Bilyon' }, { number: 1000000, value: 'Milyon' }, { number: 1000, value: 'Libo' }, { number: 100, value: 'Daan' }, { number: 90, value: 'Siyamnapu' }, { number: 80, value: 'Walumpu' }, { number: 70, value: 'Pitumpu' }, { number: 60, value: 'Animnapu' }, { number: 50, value: 'Limampu' }, { number: 40, value: 'Apatnapu' }, { number: 30, value: 'Tatlumpu' }, { number: 20, value: 'Dalawampu' }, { number: 19, value: 'Labinsiyam' }, { number: 18, value: 'Labingwalo' }, { number: 17, value: 'Labimpito' }, { number: 16, value: 'Labing-anim' }, { number: 15, value: 'Labinlima' }, { number: 14, value: 'Labing-apat' }, { number: 13, value: 'Labintatlo' }, { number: 12, value: 'Labindalawa' }, { number: 11, value: 'Labing-isa' }, { number: 10, value: 'Sampu' }, { number: 9, value: 'Siyam' }, { number: 8, value: 'Walo' }, { number: 7, value: 'Pito' }, { number: 6, value: 'Anim' }, { number: 5, value: 'Lima' }, { number: 4, value: 'Apat' }, { number: 3, value: 'Tatlo' }, { number: 2, value: 'Dalawa' }, { number: 1, value: 'Isa' }, { number: 0, value: 'Sero' }, ], exactWordsMapping: [ { number: 1000000000000000, value: 'Isang Katrilyon' }, { number: 1000000000000, value: 'Isang Trilyon' }, { number: 1000000000, value: 'Isang Bilyon' }, { number: 1000000, value: 'Isang Milyon' }, { number: 1000, value: 'Isang Libo' }, { number: 100, value: 'Isang Daan' }, ], ordinalWordsMapping: [ { number: 1000000000000000, value: 'Ikakatrilyon' }, { number: 1000000000000, value: 'Ikatrilyon' }, { number: 1000000000, value: 'Ikabilyon' }, { number: 1000000, value: 'Ikamilyon' }, { number: 1000, value: 'Ikalibo' }, { number: 100, value: 'Ikadaan' }, { number: 90, value: 'Ikasiyamnapu' }, { number: 80, value: 'Ikawalumpu' }, { number: 70, value: 'Ikapitumpu' }, { number: 60, value: 'Ikaanimnapu' }, { number: 50, value: 'Ikalimampu' }, { number: 40, value: 'Ikaapatnapu' }, { number: 30, value: 'Ikatatlumpu' }, { number: 20, value: 'Ikadalawampu' }, { number: 19, value: 'Ikalabinsiyam' }, { number: 18, value: 'Ikalabingwalo' }, { number: 17, value: 'Ikalabimpito' }, { number: 16, value: 'Ikalabing-anim' }, { number: 15, value: 'Ikalabinlima' }, { number: 14, value: 'Ikalabing-apat' }, { number: 13, value: 'Ikalabintatlo' }, { number: 12, value: 'Ikalabindalawa' }, { number: 11, value: 'Ikalabing-isa' }, { number: 10, value: 'Ikasampu' }, { number: 9, value: 'Ikasiyam' }, { number: 8, value: 'Ikawalo' }, { number: 7, value: 'Ikapito' }, { number: 6, value: 'Ikaanim' }, { number: 5, value: 'Ikalima' }, { number: 4, value: 'Ikaapat' }, { number: 3, value: 'Ikatlo' }, { number: 2, value: 'Ikalawa' }, { number: 1, value: 'Una' }, { number: 0, value: 'Ikasero' }, ], ordinalExactWordsMapping: [ { number: 1000000000000000, value: 'Isang Ikakatrilyon' }, { number: 1000000000000, value: 'Isang Ikatrilyon' }, { number: 1000000000, value: 'Isang Ikabilyon' }, { number: 1000000, value: 'Isang Ikamilyon' }, { number: 1000, value: 'Isang Ikalibo' }, { number: 100, value: 'Isang Ikadaan' }, ], }; } exports.default = Locale; /** * ToWords class pre-configured for this locale. * This is a lightweight version that only bundles this specific locale. * * @example * import { ToWords } from 'to-words/fil-PH'; * const tw = new ToWords(); * tw.convert(1234); */ class ToWords extends ToWordsCore_js_1.ToWordsCore { constructor(options = {}) { super(options); this.setLocale(Locale); } } exports.ToWords = ToWords; // Module-level singleton reused across calls to avoid per-call instance creation const instance = new ToWords(); /** * Convert a number to words for this locale (functional style). */ function toWords(number, options) { return instance.convert(number, options); } /** * Convert a number to ordinal words for this locale (functional style). */ function toOrdinal(number, options) { return instance.toOrdinal(number, options); } /** * Convert a number to currency words for this locale (functional style). * Shorthand for toWords(number, { currency: true, ...options }). */ function toCurrency(number, options) { return instance.convert(number, { ...options, currency: true }); }