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) 13.2 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: 'Tusind' }, { number: 100, value: 'Hundrede' }, { number: 99, value: 'Nioghalvfems' }, { number: 98, value: 'Otteoghalvfems' }, { number: 97, value: 'Syvoghalvfems' }, { number: 96, value: 'Seksoghalvfems' }, { number: 95, value: 'Femoghalvfems' }, { number: 94, value: 'Fireoghalvfems' }, { number: 93, value: 'Treoghalvfems' }, { number: 92, value: 'Tooghalvfems' }, { number: 91, value: 'Enoghalvfems' }, { number: 90, value: 'Halvfems' }, { number: 89, value: 'Niogfirs' }, { number: 88, value: 'Otteogfirs' }, { number: 87, value: 'Syvogfirs' }, { number: 86, value: 'Seksogfirs' }, { number: 85, value: 'Femogfirs' }, { number: 84, value: 'Fireogfirs' }, { number: 83, value: 'Treogfirs' }, { number: 82, value: 'Toogfirs' }, { number: 81, value: 'Enogfirs' }, { number: 80, value: 'Firs' }, { number: 79, value: 'Nioghalvfjerds' }, { number: 78, value: 'Otteoghalvfjerds' }, { number: 77, value: 'Syvoghalvfjerds' }, { number: 76, value: 'Seksoghalvfjerds' }, { number: 75, value: 'Femoghalvfjerds' }, { number: 74, value: 'Fireoghalvfjerds' }, { number: 73, value: 'Treoghalvfjerds' }, { number: 72, value: 'Tooghalvfjerds' }, { number: 71, value: 'Enoghalvfjerds' }, { number: 70, value: 'Halvfjerds' }, { number: 69, value: 'Niogtres' }, { number: 68, value: 'Otteogtres' }, { number: 67, value: 'Syvogtres' }, { number: 66, value: 'Seksogtres' }, { number: 65, value: 'Femogtres' }, { number: 64, value: 'Fireogtres' }, { number: 63, value: 'Treogtres' }, { number: 62, value: 'Toogtres' }, { number: 61, value: 'Enogtres' }, { number: 60, value: 'Tres' }, { number: 59, value: 'Nioghalvtreds' }, { number: 58, value: 'Otteoghalvtreds' }, { number: 57, value: 'Syvoghalvtreds' }, { number: 56, value: 'Seksoghalvtreds' }, { number: 55, value: 'Femoghalvtreds' }, { number: 54, value: 'Fireoghalvtreds' }, { number: 53, value: 'Treoghalvtreds' }, { number: 52, value: 'Tooghalvtreds' }, { number: 51, value: 'Enoghalvtreds' }, { number: 50, value: 'Halvtreds' }, { number: 49, value: 'Niogfyrre' }, { number: 48, value: 'Otteogfyrre' }, { number: 47, value: 'Syvogfyrre' }, { number: 46, value: 'Seksogfyrre' }, { number: 45, value: 'Femogfyrre' }, { number: 44, value: 'Fireogfyrre' }, { number: 43, value: 'Treogfyrre' }, { number: 42, value: 'Toogfyrre' }, { number: 41, value: 'Enogfyrre' }, { number: 40, value: 'Fyrre' }, { number: 39, value: 'Niogtredive' }, { number: 38, value: 'Otteogtredive' }, { number: 37, value: 'Syvogtredive' }, { number: 36, value: 'Seksogtredive' }, { number: 35, value: 'Femogtredive' }, { number: 34, value: 'Fireogtredive' }, { number: 33, value: 'Treogtredive' }, { number: 32, value: 'Toogtredive' }, { number: 31, value: 'Enogtredive' }, { number: 30, value: 'Tredive' }, { number: 29, value: 'Niogtyve' }, { number: 28, value: 'Otteogtyve' }, { number: 27, value: 'Syvogtyve' }, { number: 26, value: 'Seksogtyve' }, { number: 25, value: 'Femogtyve' }, { number: 24, value: 'Fireogtyve' }, { number: 23, value: 'Treogtyve' }, { number: 22, value: 'Toogtyve' }, { number: 21, value: 'Enogtyve' }, { number: 20, value: 'Tyve' }, { 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: 'Otte' }, { number: 7, value: 'Syv' }, { 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: 'Nul' }, ], exactWordsMapping: [{ number: 100, value: 'Hundrede' }], ignoreOneForWords: ['Hundrede', 'Tusind'], ordinalWordsMapping: [ { number: 1000000000000000, value: 'Billiardte' }, { number: 1000000000000, value: 'Billionte' }, { number: 1000000000, value: 'Milliardste' }, { number: 1000000, value: 'Millionte' }, { number: 1000, value: 'Tusindende' }, { number: 100, value: 'Hundredende' }, { number: 99, value: 'Nioghalvfemsende' }, { number: 98, value: 'Otteoghalvfemsende' }, { number: 97, value: 'Syvoghalvfemsende' }, { number: 96, value: 'Seksoghalvfemsende' }, { number: 95, value: 'Femoghalvfemsende' }, { number: 94, value: 'Fireoghalvfemsende' }, { number: 93, value: 'Treoghalvfemsende' }, { number: 92, value: 'Tooghalvfemsende' }, { number: 91, value: 'Enoghalvfemsende' }, { number: 90, value: 'Halvfemsende' }, { number: 89, value: 'Niogfirsende' }, { number: 88, value: 'Otteogfirsende' }, { number: 87, value: 'Syvogfirsende' }, { number: 86, value: 'Seksogfirsende' }, { number: 85, value: 'Femogfirsende' }, { number: 84, value: 'Fireogfirsende' }, { number: 83, value: 'Treogfirsende' }, { number: 82, value: 'Toogfirsende' }, { number: 81, value: 'Enogfirsende' }, { number: 80, value: 'Firsende' }, { number: 79, value: 'Nioghalvfjerdsende' }, { number: 78, value: 'Otteoghalvfjerdsende' }, { number: 77, value: 'Syvoghalvfjerdsende' }, { number: 76, value: 'Seksoghalvfjerdsende' }, { number: 75, value: 'Femoghalvfjerdsende' }, { number: 74, value: 'Fireoghalvfjerdsende' }, { number: 73, value: 'Treoghalvfjerdsende' }, { number: 72, value: 'Tooghalvfjerdsende' }, { number: 71, value: 'Enoghalvfjerdsende' }, { number: 70, value: 'Halvfjerdsende' }, { number: 69, value: 'Niogtresende' }, { number: 68, value: 'Otteogtresende' }, { number: 67, value: 'Syvogtresende' }, { number: 66, value: 'Seksogtresende' }, { number: 65, value: 'Femogtresende' }, { number: 64, value: 'Fireogtresende' }, { number: 63, value: 'Treogtresende' }, { number: 62, value: 'Toogtresende' }, { number: 61, value: 'Enogtresende' }, { number: 60, value: 'Tresende' }, { number: 59, value: 'Nioghalvtredsende' }, { number: 58, value: 'Otteoghalvtredsende' }, { number: 57, value: 'Syvoghalvtredsende' }, { number: 56, value: 'Seksoghalvtredsende' }, { number: 55, value: 'Femoghalvtredsende' }, { number: 54, value: 'Fireoghalvtredsende' }, { number: 53, value: 'Treoghalvtredsende' }, { number: 52, value: 'Tooghalvtredsende' }, { number: 51, value: 'Enoghalvtredsende' }, { number: 50, value: 'Halvtredsende' }, { number: 49, value: 'Niogfyrretyvende' }, { number: 48, value: 'Otteogfyrretyvende' }, { number: 47, value: 'Syvogfyrretyvende' }, { number: 46, value: 'Seksogfyrretyvende' }, { number: 45, value: 'Femogfyrretyvende' }, { number: 44, value: 'Fireogfyrretyvende' }, { number: 43, value: 'Treogfyrretyvende' }, { number: 42, value: 'Toogfyrretyvende' }, { number: 41, value: 'Enogfyrretyvende' }, { number: 40, value: 'Fyrretyvende' }, { number: 39, value: 'Niogtredivte' }, { number: 38, value: 'Otteogtredivte' }, { number: 37, value: 'Syvogtredivte' }, { number: 36, value: 'Seksogtredivte' }, { number: 35, value: 'Femogtredivte' }, { number: 34, value: 'Fireogtredivte' }, { number: 33, value: 'Treogtredivte' }, { number: 32, value: 'Toogtredivte' }, { number: 31, value: 'Enogtredivte' }, { number: 30, value: 'Tredivte' }, { number: 29, value: 'Niogtyvende' }, { number: 28, value: 'Otteogtyvende' }, { number: 27, value: 'Syvogtyvende' }, { number: 26, value: 'Seksogtyvende' }, { number: 25, value: 'Femogtyvende' }, { number: 24, value: 'Fireogtyvende' }, { number: 23, value: 'Treogtyvende' }, { number: 22, value: 'Toogtyvende' }, { number: 21, value: 'Enogtyvende' }, { number: 20, value: 'Tyvende' }, { 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: 'Ottende' }, { number: 7, value: 'Syvende' }, { number: 6, value: 'Sjette' }, { number: 5, value: 'Femte' }, { number: 4, value: 'Fjerde' }, { number: 3, value: 'Tredje' }, { number: 2, value: 'Anden' }, { number: 1, value: 'Første' }, { number: 0, value: 'Nulte' }, ], fractionDenominatorMapping: { 1: { singular: 'Tiendedel', plural: 'Tiendedele' }, 2: { singular: 'Hundredel', plural: 'Hundredele' }, 3: { singular: 'Tusindedel', plural: 'Tusindedele' }, 4: { singular: 'Titusindedel', plural: 'Titusindedele' }, 5: { singular: 'Hundredtusindedel', plural: 'Hundredtusindedele' }, 6: { singular: 'Milliondel', plural: 'Milliondele' }, }, }; } 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/da-DK'; * 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 }); }