UNPKG

polish-number-to-words

Version:

Spell numbers using words in Polish | Napisz liczbę słownie po polsku

27 lines (26 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.currencyToWordsPL = void 0; const integerToWords_1 = require("./integerToWords"); const pluralize_1 = require("./pluralize"); /** * Internal implementation for converting a currency number to Polish words. * Supports optional custom word forms for the main and subcurrency units. * * @param num The monetary value to convert. * @param mainCurrencyWords Optional main currency forms: [singular, 2–4, 5+]. * @param subCurrencyWords Optional subcurrency forms: [singular, 2–4, 5+]. * @returns Polish text representation of the currency amount. */ function currencyToWordsPL(num, mainCurrencyWords = ['złoty', 'złote', 'złotych'], subCurrencyWords = ['grosz', 'grosze', 'groszy']) { const isNegative = num < 0; num = Math.abs(num); const mainCurrencyNum = Math.floor(num); const subCurrencyNum = Math.round((num % 1) * 100); const mainCurrencyStr = (0, integerToWords_1.integerToWordsPL)(mainCurrencyNum, { explicitSingleThousand: true }); const subCurrencyStr = (0, integerToWords_1.integerToWordsPL)(subCurrencyNum); const mainCurrencyWord = (0, pluralize_1.pluralizePl)(mainCurrencyNum, ...mainCurrencyWords); const subCurrencyWord = (0, pluralize_1.pluralizePl)(subCurrencyNum, ...subCurrencyWords); return `${isNegative ? 'minus ' : ''}${mainCurrencyStr} ${mainCurrencyWord} ${subCurrencyStr} ${subCurrencyWord}`; } exports.currencyToWordsPL = currencyToWordsPL;