polish-number-to-words
Version:
Spell numbers using words in Polish | Napisz liczbę słownie po polsku
39 lines (38 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PluralizerPL = exports.pluralizePl = void 0;
function pluralizePl(num, singular, plural234, plural5, fractionForm) {
if (!Number.isInteger(num)) {
if (fractionForm == undefined) {
throw new Error('Fractional number provided but no fraction form specified.');
}
return fractionForm;
}
const absNum = Math.abs(num);
const lastDigit = absNum % 10;
const lastTwoDigits = absNum % 100;
if (absNum === 1) {
return singular;
}
else if (lastDigit >= 2 && lastDigit <= 4 && !(lastTwoDigits >= 12 && lastTwoDigits <= 14)) {
return plural234;
}
else {
return plural5;
}
}
exports.pluralizePl = pluralizePl;
class PluralizerPL {
constructor(singular, plural234, plural5) {
this.singular = singular;
this.plural234 = plural234;
this.plural5 = plural5;
}
pluralize(num) {
return pluralizePl(num, this.singular, this.plural234, this.plural5);
}
toString() {
return `1: ${this.singular}, 2: ${this.plural234}, 5: ${this.plural5}`;
}
}
exports.PluralizerPL = PluralizerPL;