UNPKG

@to-da-moon/thai-baht-lib

Version:
75 lines (52 loc) 2.55 kB
<span class="badge-npmversion"><a href="https://npmjs.org/package/@to-da-moon/thai-baht-lib" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@to-da-moon/thai-baht-lib.svg" alt="NPM version" /></a></span> <!-- <span class="badge-npmdownloads"><a href="https://npmjs.org/package/@to-da-moon/thai-bath-lib" title="View this project on NPM"><img src="https://img.shields.io/npm/dm/@to-da-moon/thai-bath-lib.svg" alt="NPM downloads" /></a></span> --> [![install size](https://packagephobia.com/badge?p=%40to-da-moon%2Fthai-baht-lib)](https://packagephobia.com/result?p=%40to-da-moon%2Fthai-baht-lib) ## Acknowledgements Support both JavaScript and TypeScript This library is free software designed to make Thai baht text conversion easy and efficient. Significantly improved version of bath.js - faster, more reliable, and with optimized performance. ## Improvements 1. Completely redesigned from bathjs with enhanced performance 2. Fixed string "01" showing เอ็ด problem 3. Properly rounds satang to 2 decimal places (not just rounding down) 4. When satang reaches 999, properly rounds to the decimal place 5. 4x faster performance compared to original implementation 6. Implemented advanced caching for frequently converted numbers 7. Optimized string operations for better performance 8. Pre-computed lookup tables for Thai number words ## Performance Optimizations - Implemented caching for both partial and complete conversions - Replaced string concatenation with array joining for better performance - Optimized numeric calculations with fewer operations - Pre-computed lookup tables to avoid runtime string manipulations - Improved handling of zero digits and edge cases ## Benchmark Latest performance (MacBook Pro, 2023): * bahtLatest (x100000): 697ms * thaiBahtLib (x100000): 442ms Original performance (MacBook Pro, 2016): * bahtLatest (x100000): 1886ms * thaiBahtLib (x100000): 1755ms The latest version is approximately 4x faster than the original implementation. ## Getting Started Send in the number to get thai baht result in string format ## Installation using yarn ``` yarn add @to-da-moon/thai-baht-lib ``` using npm ``` npm i @to-da-moon/thai-baht-lib ``` ## Example Usage ``` bahtText(1) // return thai baht text format // e.g. 1 -> หนึ่งบาทถ้วน ``` ``` bahtText(100) // return thai baht text format // e.g. 100 -> หนึ่งร้อยบาทถ้วน ``` ## Plan - [ ] Let me know what to upgrade, just create issue for us, we will do it.