amount-to-words-multilang
Version:
Convert numbers to words in multiple languages (EN, TH, FR, JA, DE, ET, ES, FA, ZH)
72 lines (71 loc) • 3.33 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.zhConverter = exports.faConverter = exports.esConverter = exports.etConverter = exports.deConverter = exports.jaConverter = exports.frConverter = exports.thConverter = exports.enConverter = void 0;
exports.amountToWords = amountToWords;
const en_1 = require("./locales/en");
Object.defineProperty(exports, "enConverter", { enumerable: true, get: function () { return en_1.enConverter; } });
const th_1 = require("./locales/th");
Object.defineProperty(exports, "thConverter", { enumerable: true, get: function () { return th_1.thConverter; } });
const fr_1 = require("./locales/fr");
Object.defineProperty(exports, "frConverter", { enumerable: true, get: function () { return fr_1.frConverter; } });
const ja_1 = require("./locales/ja");
Object.defineProperty(exports, "jaConverter", { enumerable: true, get: function () { return ja_1.jaConverter; } });
const de_1 = require("./locales/de");
Object.defineProperty(exports, "deConverter", { enumerable: true, get: function () { return de_1.deConverter; } });
const et_1 = require("./locales/et");
const es_1 = require("./locales/es");
const fa_1 = require("./locales/fa");
const zh_1 = require("./locales/zh");
Object.defineProperty(exports, "zhConverter", { enumerable: true, get: function () { return zh_1.zhConverter; } });
const etConverter = new et_1.EstonianConverter();
exports.etConverter = etConverter;
const esConverter = new es_1.SpanishConverter();
exports.esConverter = esConverter;
const faConverter = new fa_1.PersianConverter();
exports.faConverter = faConverter;
const converters = {
en: en_1.enConverter,
th: th_1.thConverter,
fr: fr_1.frConverter,
ja: ja_1.jaConverter,
de: de_1.deConverter,
et: etConverter,
es: esConverter,
fa: faConverter,
zh: zh_1.zhConverter,
};
function amountToWords(amount, localeOrOptions = 'en') {
// Validate amount input
if (typeof amount !== 'number') {
throw new Error('Amount must be a number');
}
// Determine locale and options
const locale = typeof localeOrOptions === 'string'
? localeOrOptions
: localeOrOptions.locale ?? 'en';
const converter = converters[locale];
if (!converter) {
throw new Error(`Unsupported locale: ${locale}. Supported locales: ${Object.keys(converters).join(', ')}`);
}
try {
return converter.convert(amount);
}
catch (error) {
throw new Error(`Failed to convert amount for locale '${locale}': ${error instanceof Error ? error.message : String(error)}`);
}
}
__exportStar(require("./types"), exports);