@abuhasanrumi/timezone-to-country
Version:
Tiny library to get country info by timezone
89 lines (57 loc) âĒ 2.19 kB
Markdown
A tiny (\~18KB) JavaScript utility to get country information from a given timezone. Most existing timezone packages are bulky â I needed something lightweight and focused for my office work. This package gives you exactly what you need, and nothing more.
### ðĶ Installation
```bash
npm install @abuhasanrumi/timezone-to-country
```
### ð Usage
```js
import getTimezoneInfo from '@abuhasanrumi/timezone-to-country'
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
const info = getTimezoneInfo(timezone)
console.log(info)
```
### ð§ Why I Built This
While working on an internal project at my office, I needed to map a given timezone to its corresponding country info. Every library I found was oversized for this small task â many were 70KB+ or came with unused data. So, I built this micro-library with minimal JSON and no dependencies, optimized for performance and size.
### â
Features
- ð Maps IANA timezones to country details
- ðŠķ Tiny footprint (\~18KB)
- ðĶ Zero dependencies
- ð Pure JSON + single function
- âĄïļ Fast lookup (O(1) via object key)
### ð Data Format
Each timezone entry maps to:
```js
{
countryCode: 'XX', // ISO country code
countryName: 'Country Name',
continentName: 'Continent'
}
```
### ð Development
```bash
git clone https://github.com/abuhasanrumi/timezone-to-country.git
cd timezone-to-country
npm install
npm run build
```
### ðĪ Contributing
Feel free to submit issues or PRs!
1. Fork the repo
2. Create your feature branch: `git checkout -b feature/your-feature`
3. Commit your changes: `git commit -m 'Add your feature'`
4. Push to the branch: `git push origin feature/your-feature`
5. Open a pull request
### ð License
MIT ÂĐ [Abu Hasan Rumi](https://github.com/abuhasanrumi)
### ð Related Packages
- [`@abuhasanrumi/state-sync`](https://npmjs.com/package/@abuhasanrumi/state-sync): A tiny utility (\~1KB) to sync state across tabs using `BroadcastChannel` and `localStorage`.
- [`@abuhasanrumi/micro-flow`](https://npmjs.com/package/@abuhasanrumi/micro-flow): Tiny debounce, throttle, and rate-limiting (\~364B).