https://github.com/nojacko/node-country-to-iso
Convert inconsistent country names and codes into ISO 3166-1 alpha-2.
https://github.com/nojacko/node-country-to-iso
countries country-codes iso-3166-1 iso-3166-1-alpha-2 iso-3166-1-alpha-3 nodejs
Last synced: 4 months ago
JSON representation
Convert inconsistent country names and codes into ISO 3166-1 alpha-2.
- Host: GitHub
- URL: https://github.com/nojacko/node-country-to-iso
- Owner: nojacko
- License: mit
- Created: 2021-02-01T19:46:18.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-07-25T10:09:36.000Z (10 months ago)
- Last Synced: 2025-10-12T00:02:59.004Z (8 months ago)
- Topics: countries, country-codes, iso-3166-1, iso-3166-1-alpha-2, iso-3166-1-alpha-3, nodejs
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/country-to-iso
- Size: 309 KB
- Stars: 53
- Watchers: 0
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Country to ISO 3166-1 alpha-2/alpha-3
Convert inconsistent country names and codes into ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3.
The aim is support English only but some native languages are included.
[](https://buymeacoffee.com/nojacko)
## Usage
```bash
npm i country-to-iso
```
```node
import { countryToAlpha2, countryToAlpha3 } from "country-to-iso";
// const { countryToAlpha2, countryToAlpha3 } = require("country-to-iso");
// countryToAlpha2
countryToAlpha2("US"); // returns "US"
countryToAlpha2("USA"); // returns "US"
countryToAlpha2("U S A"); // returns "US"
countryToAlpha2("U.S.A"); // returns "US"
countryToAlpha2("US of A"); // returns "US"
countryToAlpha2("US and A"); // returns "US"
countryToAlpha2("United States"); // returns "US"
countryToAlpha2("United States of America"); // returns "US"
countryToAlpha2("America"); // returns "US"
// countryToAlpha3
countryToAlpha3("US"); // returns "USA"
// etc...
```
## Commands
| Script | Description |
| -----------------------|-------------|
| `npm run build` | Builds project to `lib/`. |
| `npm run seed` | Takes data from the libraries [countryjs](https://www.npmjs.com/package/countryjs) and [country-list](https://www.npmjs.com/package/country-list) and updates `data/iso-alpha-*.json` and `data/country/*.json` files. |
| `npm run generate` | Takes seeded data, makes variants of names, checks for clashes (there's no mechanism to handle clashes as it's not come up) and dumps the data to `data/names.json`. |
| `npm test` | Runs tests. |
## Contributing
### Adding a New Country or Variant
Always run the following. It'll update everything from `countryjs` and `country-list` packages. It might include what you're looking for.
```zsh
npm update --save-dev countryjs country-list
npm run seed
npm run generate
npm test
```
#### Add a New Country
* Add the ISO 3166-1 alpha-2 code to `data/iso-alpha-2.json`
* Add the ISO 3166-1 alpha-3 code to `data/iso-alpha-3.json`
* Create a file for your new country `data/country/.json` following the format of the other countries.
* Add some tests
* Run the following:
```zsh
npm run generate
npm run test
```
#### Add a New Variant
* Manually it to the `names` array in the correct `data/country/*.json` file
* Add some tests
* Run the following:
```zsh
npm run generate
npm test
```