Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/narze/baht.js

Convert number to Thai Baht format, but faster [O(n)] & fully typed.
https://github.com/narze/baht.js

baht hacktoberfest thai thai-language typescript

Last synced: 4 days ago
JSON representation

Convert number to Thai Baht format, but faster [O(n)] & fully typed.

Awesome Lists containing this project

README

        

# Baht.js

NPM version [![install size](https://packagephobia.com/badge?p=baht)](https://packagephobia.com/result?p=baht)

Convert number to Thai Baht format, but faster & fully typed.

## Demo

- https://baht-js.vercel.app

## Usage

- Install with npm or yarn

```shell
npm install baht
# or
yarn add baht
```

- Import and use

```javascript
import { convert } from 'baht';

convert(42); // "สี่สิบสองบาทถ้วน"
convert(123.45); // "หนึ่งร้อยยี่สิบสามบาทสี่สิบห้าสตางค์"
```

## Features

- Converts number to Thai Baht formatted string.
- Converts long number (Use string format to prevent precision loss.)
- Supports 2 decimal places (Satangs), for over 2 decimal places it will round down.
- Supports negative number.

## Benchmark

Run the benchmark to measure the speed among other libraries.

- Apple Macbook Pro M1

```shell
yarn benchmark

baht 0.5.0 (x100000): 355ms
baht 0.4.0 (x100000): 665ms
baht 0.3.2 (x100000): 2968ms
thaiBahtLib (x100000): 3189ms
bahttext (x100000): 3503ms
BAHTTEXT.js (x100000): 4816ms
thai-baht-text-ts (x100000): 7710ms
thai-baht-text (x100000): 8525ms
```

- Apple Macbook Pro with Node v14.16.0

```shell
yarn benchmark

baht (x100000): 648ms
bahtLatest (x100000): 1393ms
thaiBahtLib (x100000): 5855ms
bahttext (x100000): 5664ms
BAHTTEXT.js (x100000): 8145ms
thai-baht-text (x100000): 15730ms
thai-baht-text-ts (x100000): 15734ms
```

- Apple Macbook Pro 16-inch (i7, 16GB) with Node v16.12.0

```shell
yarn benchmark

baht (x100000): 484ms
bahtLatest (x100000): 1044ms
thaiBahtLib (x100000): 4753ms
bahttext (x100000): 5120ms
BAHTTEXT.js (x100000): 7427ms
thai-baht-text (x100000): 13208ms
thai-baht-text-ts (x100000): 12344ms
```

- Intel(R) Xeon(R) Platinum 8259CL CPU @2.50GHz (64-bit) with Node v14.16.1

```shell
yarn benchmark

baht (x100000): 684ms
bahtLatest (x100000): 1589ms
thaiBahtLib (x100000): 7366ms
bahttext (x100000): 7166ms
BAHTTEXT.js (x100000): 11513ms
thai-baht-text (x100000): 19315ms
thai-baht-text-ts (x100000): 17400ms
```

Baht.js is the fastest!

## LICENSE

MIT