@to-da-moon/thai-baht-lib
Version:
Change number to thai baht text
75 lines (52 loc) • 2.55 kB
Markdown
<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> --> [](https://packagephobia.com/result?p=%40to-da-moon%2Fthai-baht-lib)
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.
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.