UNPKG

to-words

Version:

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

180 lines (179 loc) 7.11 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: 'Euro', plural: 'Euroa', singular: 'Euro', symbol: '€', fractionalUnit: { name: 'Sentti', singular: 'Sentti', plural: 'Senttiä', symbol: 'c', }, }, texts: { and: 'Ja', minus: 'Miinus', only: '', point: 'Pilkku', }, numberWordsMapping: [ { number: 1000000000000000, value: 'Biljardi' }, { number: 1000000000000, value: 'Biljoona' }, { number: 1000000000, value: 'Miljardi' }, { number: 1000000, value: 'Miljoona' }, { number: 1000, value: 'Tuhat' }, { number: 900, value: 'Yhdeksänsataa' }, { number: 800, value: 'Kahdeksansataa' }, { number: 700, value: 'Seitsemänsataa' }, { number: 600, value: 'Kuusisataa' }, { number: 500, value: 'Viisisataa' }, { number: 400, value: 'Neljäsataa' }, { number: 300, value: 'Kolmesataa' }, { number: 200, value: 'Kaksisataa' }, { number: 100, value: 'Sata' }, { number: 90, value: 'Yhdeksänkymmentä' }, { number: 80, value: 'Kahdeksankymmentä' }, { number: 70, value: 'Seitsemänkymmentä' }, { number: 60, value: 'Kuusikymmentä' }, { number: 50, value: 'Viisikymmentä' }, { number: 40, value: 'Neljäkymmentä' }, { number: 30, value: 'Kolmekymmentä' }, { number: 20, value: 'Kaksikymmentä' }, { number: 19, value: 'Yhdeksäntoista' }, { number: 18, value: 'Kahdeksantoista' }, { number: 17, value: 'Seitsemäntoista' }, { number: 16, value: 'Kuusitoista' }, { number: 15, value: 'Viisitoista' }, { number: 14, value: 'Neljätoista' }, { number: 13, value: 'Kolmetoista' }, { number: 12, value: 'Kaksitoista' }, { number: 11, value: 'Yksitoista' }, { number: 10, value: 'Kymmenen' }, { number: 9, value: 'Yhdeksän' }, { number: 8, value: 'Kahdeksan' }, { number: 7, value: 'Seitsemän' }, { number: 6, value: 'Kuusi' }, { number: 5, value: 'Viisi' }, { number: 4, value: 'Neljä' }, { number: 3, value: 'Kolme' }, { number: 2, value: 'Kaksi' }, { number: 1, value: 'Yksi' }, { number: 0, value: 'Nolla' }, ], exactWordsMapping: [ { number: 100, value: 'Sata' }, { number: 200, value: 'Kaksisataa' }, { number: 300, value: 'Kolmesataa' }, { number: 400, value: 'Neljäsataa' }, { number: 500, value: 'Viisisataa' }, { number: 600, value: 'Kuusisataa' }, { number: 700, value: 'Seitsemänsataa' }, { number: 800, value: 'Kahdeksansataa' }, { number: 900, value: 'Yhdeksänsataa' }, ], ignoreOneForWords: [ 'Sata', 'Kaksisataa', 'Kolmesataa', 'Neljäsataa', 'Viisisataa', 'Kuusisataa', 'Seitsemänsataa', 'Kahdeksansataa', 'Yhdeksänsataa', 'Tuhat', ], ordinalWordsMapping: [ { number: 1000000000000000, value: 'Biljardis' }, { number: 1000000000000, value: 'Biljoonas' }, { number: 1000000000, value: 'Miljardis' }, { number: 1000000, value: 'Miljoonas' }, { number: 1000, value: 'Tuhannes' }, { number: 900, value: 'Yhdeksänsadas' }, { number: 800, value: 'Kahdeksansadas' }, { number: 700, value: 'Seitsemänsadas' }, { number: 600, value: 'Kuudessadas' }, { number: 500, value: 'Viidessadas' }, { number: 400, value: 'Neljässadas' }, { number: 300, value: 'Kolmassadas' }, { number: 200, value: 'Kahdessadas' }, { number: 100, value: 'Sadas' }, { number: 90, value: 'Yhdeksäskymmenes' }, { number: 80, value: 'Kahdeksaskymmenes' }, { number: 70, value: 'Seitsemäskymmenes' }, { number: 60, value: 'Kuudeskymmenes' }, { number: 50, value: 'Viideskymmenes' }, { number: 40, value: 'Neljäskymmenes' }, { number: 30, value: 'Kolmaskymmenes' }, { number: 20, value: 'Kahdeskymmenes' }, { number: 19, value: 'Yhdeksästoista' }, { number: 18, value: 'Kahdeksastoista' }, { number: 17, value: 'Seitsemästoista' }, { number: 16, value: 'Kuudestoista' }, { number: 15, value: 'Viidestoista' }, { number: 14, value: 'Neljästoista' }, { number: 13, value: 'Kolmastoista' }, { number: 12, value: 'Kahdestoista' }, { number: 11, value: 'Yhdestoista' }, { number: 10, value: 'Kymmenes' }, { number: 9, value: 'Yhdeksäs' }, { number: 8, value: 'Kahdeksas' }, { number: 7, value: 'Seitsemäs' }, { number: 6, value: 'Kuudes' }, { number: 5, value: 'Viides' }, { number: 4, value: 'Neljäs' }, { number: 3, value: 'Kolmas' }, { number: 2, value: 'Toinen' }, { number: 1, value: 'Ensimmäinen' }, { number: 0, value: 'Nollas' }, ], ordinalExactWordsMapping: [{ number: 100, value: 'Sadas' }], }; } 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/fi-FI'; * 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 }); }