word-number-word
Version:
A TypeScript/JavaScript utility for converting numbers to words and vice versa โ including support for decimals, negatives, and currency converting.
139 lines (96 loc) โข 4.96 kB
Markdown
# Word-Number-Word ๐ข โ๏ธ ๐
[](https://www.npmjs.com/package/word-number-word)
[](https://opensource.org/licenses/MIT)
[](https://www.typescriptlang.org/)
[](#)
> Convert numbers to words and words back to numbers โ now with support for currency. Simple, accurate, and type-safe. Works seamlessly with JavaScript, TypeScript, Node.js, React, Next.js, and even from the CLI.
## โจ Features
- ๐ **Bi-directional conversion**
- `42 โ "forty-two"`
- `"seven point five"` โ `7.5`
- โ
Supports **integers**, **negatives**, and **decimal numbers**
- ๐ฐ Currency support (e.g., `10.25` โ๏ธ `"ten dollars and twenty-five cents"`)
- ๐ Handles numbers up to **trillions**
- ๐ป Works with **Node.js**, **browser environments**, and **CLI**
- ๐ฆ Built with **TypeScript** & supports **ESM** and **CommonJS**
- ๐ง Lightweight and dependency-free
## ๐ฆ Installation
```bash
npm install word-number-word
# or
yarn add word-number-word
```
## ๐ Usage
### JavaScript / TypeScript
```ts
import {
numberToWord,
wordToNumber,
currencyToWord,
wordToCurrency,
} from "word-number-word";
// Basic usage
console.log(numberToWord(42)); // "forty-two"
console.log(wordToNumber("minus three")); // -3
// Currency support
console.log(currencyToWord(10.25, "usd")); // "ten dollars and twenty-five cents"
console.log(wordToCurrency("ten dollars and five cents", "usd")); // 10.05
```
### CLI Usage
```bash
npx word-number-word 123
# Output: "one hundred twenty-three"
npx word-number-word "two thousand and five"
# Output: 2005
```
## ๐ API Reference
| Function | Description | Example |
| --------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------- |
| `numberToWord(num: number)` | Converts a number to its word form | `numberToWord(123)` โ `"one hundred twenty-three"` |
| `wordToNumber(str: string)` | Converts a word string into a number | `wordToNumber("five")` โ `5` |
| `currencyToWord(num: number, currency)` | Converts currency number to words (with major/minor units) | `currencyToWord(4.5, "usd")` โ `"four dollars and fifty cents"` |
| `wordToCurrency(str, currency)` | Converts word form currency to number | `wordToCurrency("ten dollars and five cents", "usd")` โ `10.05` |
> **Note:** Currency codes supported `"usd"`, `"bdt"`, `"eur"`, `"gbp"`. Handles both `"forty-two"` and `"forty two"` formats.
## ๐ Supported Environments
- โ
Node.js (v14+)
- โ
Modern Browsers
- โ
TypeScript & JavaScript
- โ
Frameworks: **React**, **Next.js**, **Express**, **Vite**, etc.
- โ
CLI (via `npx` or install globally)
## ๐งช Examples
| Input | Output |
| ----------------------------------------------------- | -------------------------------- |
| `123` | `"one hundred twenty-three"` |
| `-99.5` | `"minus ninety-nine point five"` |
| `"fourteen"` | `14` |
| `"minus two"` | `-2` |
| `"three point one four"` | `3.14` |
| `currencyToWord(4.5, "usd")` | `"four dollars and fifty cents"` |
| `wordToCurrency("ten dollars and five cents", "usd")` | `10.05` |
## ๐ ๏ธ CLI Installation (Optional)
Install globally for quick conversions in your terminal:
```bash
npm install -g word-number-word
```
Then use it anywhere:
```bash
word-number-word 456
# โ "four hundred fifty-six"
```
## ๐ License
MIT License ยฉ [Hridoy Saha](https://github.com/hridoysaha969)
## ๐ Contributing
Contributions, suggestions, and improvements are welcome!
Feel free to [open an issue](https://github.com/hridoysaha969/word-number-word/issues) or submit a pull request.
## ๐ซ Contact
For support or feedback, reach out via [GitHub](https://github.com/hridoysaha969/word-number-word) or [LinkedIn](https://www.linkedin.com/in/sahahridoy/).