UNPKG

to-words

Version:

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

294 lines (293 loc) 12.7 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: 'Krone', plural: 'Kroner', singular: 'Krone', symbol: 'kr', fractionalUnit: { name: 'Øre', singular: 'Øre', plural: 'Øre', symbol: 'øre', }, }, texts: { and: 'Og', minus: 'Minus', only: '', point: 'Komma', }, numberWordsMapping: [ { number: 1000000000000000, value: 'Billiard' }, { number: 1000000000000, value: 'Billion' }, { number: 1000000000, value: 'Milliard' }, { number: 1000000, value: 'Million' }, { number: 1000, value: 'Tusen' }, { number: 100, value: 'Hundre' }, { number: 99, value: 'Nittini' }, { number: 98, value: 'Nittiåtte' }, { number: 97, value: 'Nittisju' }, { number: 96, value: 'Nittiseks' }, { number: 95, value: 'Nittifem' }, { number: 94, value: 'Nittifire' }, { number: 93, value: 'Nittitre' }, { number: 92, value: 'Nittito' }, { number: 91, value: 'Nittien' }, { number: 90, value: 'Nitti' }, { number: 89, value: 'Åttini' }, { number: 88, value: 'Åttiåtte' }, { number: 87, value: 'Åttisju' }, { number: 86, value: 'Åttiseks' }, { number: 85, value: 'Åttifem' }, { number: 84, value: 'Åttifire' }, { number: 83, value: 'Åttitre' }, { number: 82, value: 'Åttito' }, { number: 81, value: 'Åttien' }, { number: 80, value: 'Åtti' }, { number: 79, value: 'Syttini' }, { number: 78, value: 'Syttiåtte' }, { number: 77, value: 'Syttisju' }, { number: 76, value: 'Syttiseks' }, { number: 75, value: 'Syttifem' }, { number: 74, value: 'Syttifire' }, { number: 73, value: 'Syttitre' }, { number: 72, value: 'Syttito' }, { number: 71, value: 'Syttien' }, { number: 70, value: 'Sytti' }, { number: 69, value: 'Sekstini' }, { number: 68, value: 'Sekstiåtte' }, { number: 67, value: 'Sekstisju' }, { number: 66, value: 'Sekstiseks' }, { number: 65, value: 'Sekstifem' }, { number: 64, value: 'Sekstifire' }, { number: 63, value: 'Sekstitre' }, { number: 62, value: 'Sekstito' }, { number: 61, value: 'Sekstien' }, { number: 60, value: 'Seksti' }, { number: 59, value: 'Femtini' }, { number: 58, value: 'Femtiåtte' }, { number: 57, value: 'Femtisju' }, { number: 56, value: 'Femtiseks' }, { number: 55, value: 'Femtifem' }, { number: 54, value: 'Femtifire' }, { number: 53, value: 'Femtitre' }, { number: 52, value: 'Femtito' }, { number: 51, value: 'Femtien' }, { number: 50, value: 'Femti' }, { number: 49, value: 'Førtini' }, { number: 48, value: 'Førtiåtte' }, { number: 47, value: 'Førtisju' }, { number: 46, value: 'Førtiseks' }, { number: 45, value: 'Førtifem' }, { number: 44, value: 'Førtifire' }, { number: 43, value: 'Førtitre' }, { number: 42, value: 'Førtito' }, { number: 41, value: 'Førtien' }, { number: 40, value: 'Førti' }, { number: 39, value: 'Trettini' }, { number: 38, value: 'Trettiåtte' }, { number: 37, value: 'Trettisju' }, { number: 36, value: 'Trettiseks' }, { number: 35, value: 'Trettifem' }, { number: 34, value: 'Trettifire' }, { number: 33, value: 'Trettitre' }, { number: 32, value: 'Trettito' }, { number: 31, value: 'Trettien' }, { number: 30, value: 'Tretti' }, { number: 29, value: 'Tjueni' }, { number: 28, value: 'Tjueåtte' }, { number: 27, value: 'Tjuesju' }, { number: 26, value: 'Tjueseks' }, { number: 25, value: 'Tjuefem' }, { number: 24, value: 'Tjuefire' }, { number: 23, value: 'Tjuetre' }, { number: 22, value: 'Tjueto' }, { number: 21, value: 'Tjueen' }, { number: 20, value: 'Tjue' }, { number: 19, value: 'Nitten' }, { number: 18, value: 'Atten' }, { number: 17, value: 'Sytten' }, { number: 16, value: 'Seksten' }, { number: 15, value: 'Femten' }, { number: 14, value: 'Fjorten' }, { number: 13, value: 'Tretten' }, { number: 12, value: 'Tolv' }, { number: 11, value: 'Elleve' }, { number: 10, value: 'Ti' }, { number: 9, value: 'Ni' }, { number: 8, value: 'Åtte' }, { number: 7, value: 'Sju' }, { number: 6, value: 'Seks' }, { number: 5, value: 'Fem' }, { number: 4, value: 'Fire' }, { number: 3, value: 'Tre' }, { number: 2, value: 'To' }, { number: 1, value: 'En' }, { number: 0, value: 'Null' }, ], exactWordsMapping: [{ number: 100, value: 'Hundre' }], ignoreOneForWords: ['Hundre', 'Tusen'], ordinalWordsMapping: [ { number: 1000000000000000, value: 'Billiardte' }, { number: 1000000000000, value: 'Billionte' }, { number: 1000000000, value: 'Milliardte' }, { number: 1000000, value: 'Millionte' }, { number: 1000, value: 'Tusende' }, { number: 100, value: 'Hundrede' }, { number: 99, value: 'Nittiniende' }, { number: 98, value: 'Nittiåttende' }, { number: 97, value: 'Nittisjuende' }, { number: 96, value: 'Nittisjette' }, { number: 95, value: 'Nittifemte' }, { number: 94, value: 'Nittifjerde' }, { number: 93, value: 'Nittitredje' }, { number: 92, value: 'Nittiandre' }, { number: 91, value: 'Nittiførste' }, { number: 90, value: 'Nittiende' }, { number: 89, value: 'Åttiniende' }, { number: 88, value: 'Åttiåttende' }, { number: 87, value: 'Åttisjuende' }, { number: 86, value: 'Åttisjette' }, { number: 85, value: 'Åttifemte' }, { number: 84, value: 'Åttifjerde' }, { number: 83, value: 'Åttitredje' }, { number: 82, value: 'Åttiandre' }, { number: 81, value: 'Åttiførste' }, { number: 80, value: 'Åttiende' }, { number: 79, value: 'Syttiniende' }, { number: 78, value: 'Syttiåttende' }, { number: 77, value: 'Syttisjuende' }, { number: 76, value: 'Syttisjette' }, { number: 75, value: 'Syttifemte' }, { number: 74, value: 'Syttifjerde' }, { number: 73, value: 'Syttitredje' }, { number: 72, value: 'Syttiandre' }, { number: 71, value: 'Syttiførste' }, { number: 70, value: 'Syttiende' }, { number: 69, value: 'Sekstiniende' }, { number: 68, value: 'Sekstiåttende' }, { number: 67, value: 'Sekstisjuende' }, { number: 66, value: 'Sekstisjette' }, { number: 65, value: 'Sekstifemte' }, { number: 64, value: 'Sekstifjerde' }, { number: 63, value: 'Sekstitredje' }, { number: 62, value: 'Sekstiandre' }, { number: 61, value: 'Sekstiførste' }, { number: 60, value: 'Sekstiende' }, { number: 59, value: 'Femtiniende' }, { number: 58, value: 'Femtiåttende' }, { number: 57, value: 'Femtisjuende' }, { number: 56, value: 'Femtisjette' }, { number: 55, value: 'Femtifemte' }, { number: 54, value: 'Femtifjerde' }, { number: 53, value: 'Femtitredje' }, { number: 52, value: 'Femtiandre' }, { number: 51, value: 'Femtiførste' }, { number: 50, value: 'Femtiende' }, { number: 49, value: 'Førtiniende' }, { number: 48, value: 'Førtiåttende' }, { number: 47, value: 'Førtisjuende' }, { number: 46, value: 'Førtisjette' }, { number: 45, value: 'Førtifemte' }, { number: 44, value: 'Førtifjerde' }, { number: 43, value: 'Førtitredje' }, { number: 42, value: 'Førtiandre' }, { number: 41, value: 'Førtiførste' }, { number: 40, value: 'Førtiende' }, { number: 39, value: 'Trettiniende' }, { number: 38, value: 'Trettiåttende' }, { number: 37, value: 'Trettisjuende' }, { number: 36, value: 'Trettisjette' }, { number: 35, value: 'Trettifemte' }, { number: 34, value: 'Trettifjerde' }, { number: 33, value: 'Trettitredje' }, { number: 32, value: 'Trettiandre' }, { number: 31, value: 'Trettiførste' }, { number: 30, value: 'Trettiende' }, { number: 29, value: 'Tjueniende' }, { number: 28, value: 'Tjueåttende' }, { number: 27, value: 'Tjuesjuende' }, { number: 26, value: 'Tjuesjette' }, { number: 25, value: 'Tjuefemte' }, { number: 24, value: 'Tjuefjerde' }, { number: 23, value: 'Tjuetredje' }, { number: 22, value: 'Tjueandre' }, { number: 21, value: 'Tjueførste' }, { number: 20, value: 'Tjuende' }, { number: 19, value: 'Nittende' }, { number: 18, value: 'Attende' }, { number: 17, value: 'Syttende' }, { number: 16, value: 'Sekstende' }, { number: 15, value: 'Femtende' }, { number: 14, value: 'Fjortende' }, { number: 13, value: 'Trettende' }, { number: 12, value: 'Tolvte' }, { number: 11, value: 'Ellevte' }, { number: 10, value: 'Tiende' }, { number: 9, value: 'Niende' }, { number: 8, value: 'Åttende' }, { number: 7, value: 'Sjuende' }, { number: 6, value: 'Sjette' }, { number: 5, value: 'Femte' }, { number: 4, value: 'Fjerde' }, { number: 3, value: 'Tredje' }, { number: 2, value: 'Andre' }, { number: 1, value: 'Første' }, { number: 0, value: 'Nullte' }, ], fractionDenominatorMapping: { 1: { singular: 'Tiendedel', plural: 'Tiendedeler' }, 2: { singular: 'Hundredel', plural: 'Hundredeler' }, 3: { singular: 'Tusendel', plural: 'Tusendeler' }, 4: { singular: 'Titusendel', plural: 'Titusendeler' }, 5: { singular: 'Hundretusendel', plural: 'Hundretusendeler' }, 6: { singular: 'Milliondel', plural: 'Milliondeler' }, }, }; } 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/nb-NO'; * 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 }); }