UNPKG

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
"use strict"; 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);