mobitel-iso-3166-countries
Version:
NodeJs module based on ISO-3166 for validate and get basic info by country
143 lines (114 loc) • 5.63 kB
Markdown
# Mobitel Ltd. ISO-3166 Countries
NodeJs module based on ISO-3166 for validate and get basic info by country
## Attention
This module writing and testing on **NodeJs v.8+** and **NPM v.5+**.
Using the module in previous versions of NodeJs does not guarantee correct works.
## <a name="navigation">Navigation</a>
* [Installation](#installation)
* [Example](#example)
* [API](#api)
* [.list](#list)
* [.validate()](#validate)
* [.get()](#get)
* [.getCodeList()](#get-code-list)
* [Testing](#testing)
* [License](#license)
## <a name="installation">Installation</a>
```
npm i --save mobitel-iso-3166-countries
```
[<p align="right">up to navigation</p>](#navigation)
## <a name="example">Example</a>
> Now for each country exist:
> * **country** - Country name
> * **alpha2**- Alphabetic code of country (2 symbols)
> * **alpha3** - Alphabetic code of country (3 symbols)
> * **numeric** - Numeric code of country
```javascript
const isoCountries = required('mobitel-iso-3166-countries');
// validate
const valid2 = isoCountries.validate('AF'); //=> true
const valid3 = isoCountries.validate('AFG'); //=> true
const validNum = isoCountries.validate('004'); //=> true
const invalid2 = isoCountries.validate('ZY'); //=> false
const invalid3 = isoCountries.validate('ZYX'); //=> false
const invalidNum = isoCountries.validate('000'); //=> false
// get data
const data2 = isoCountries.get('AF'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const data3 = isoCountries.get('AFG'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const dataNum = isoCountries.get('004'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const noData2 = isoCountries.get('ZY'); //=> null
const noData3 = isoCountries.get('ZYX'); //=> null
const noDataNum = isoCountries.get('000'); //=> null
// get list of codes
const listOfCodes1 = isoCountries.getCodeList('alpha3'); //=> ['AFG', ...]
const listOfCodes2 = isoCountries.getCodeList('alpha3', 'numeric'); //=> ['AFG', ..., '004', ...]
const listOfCodes3 = isoCountries.getCodeList(['alpha3']); //=> ['AFG', ...]
const listOfCodes4 = isoCountries.getCodeList(['alpha3', 'numeric']); //=> ['AFG', ..., '004', ...]
const listOfCodes5 = isoCountries.getCodeList('unknown'); //=> null
const listOfCodes7 = isoCountries.getCodeList(['unknown']); //=> null
const listOfCodes6 = isoCountries.getCodeList('unknown', 'numeric'); //=> null
const listOfCodes8 = isoCountries.getCodeList(['unknown', 'numeric']); //=> null
```
[<p align="right">up to navigation</p>](#navigation)
## <a name="api">API</a>
### <a name="list">.list</a>
Property - `{country: String, alpha2: String, alpha3: String, numeric: String}[]` - contains full countries list.
Example
```javascript
const list = isoCountries.list; //=> objects list
```
[<p align="right">up to navigation</p>](#navigation)
### <a name="validate">.validate(code)</a>
Argument - `String` - country code like `'AF'`(alpha2), `'AFG'`(alpha3) or `'004'`(numeric).
If code exist return `true`, otherwise `false`.
Example
```javascript
const valid2 = isoCountries.validate('AF'); //=> true
const valid3 = isoCountries.validate('AFG'); //=> true
const validNum = isoCountries.validate('004'); //=> true
const invalid2 = isoCountries.validate('ZY'); //=> false
const invalid3 = isoCountries.validate('ZYX'); //=> false
const invalidNum = isoCountries.validate('000'); //=> false
```
[<p align="right">up to navigation</p>](#navigation)
### <a name="get">.get(code)</a>
Argument - `String` - country code like `'AF'`(alpha2), `'AFG'`(alpha3) or `'004'`(numeric).
If code exist return object with simple country data like
`{country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}`, otherwise `null`.
Example
```javascript
const data2 = isoCountries.get('AF'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const data3 = isoCountries.get('AFG'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const dataNum = isoCountries.get('004'); //=> {country: 'Afghanistan', alpha2: 'AF', alpha3: 'AFG', numeric: '004'}
const noData2 = isoCountries.get('ZY'); //=> null
const noData3 = isoCountries.get('ZYX'); //=> null
const noDataNum = isoCountries.get('000'); //=> null
```
[<p align="right">up to navigation</p>](#navigation)
### <a name="get-code-list">.getCodeList(codeName[, codeName]|[codeName[, codeName]])</a>
Arguments - `String|String[]` - country code name. Can accept variants:
* `codeName1`
* `codeName1, codeName2`
* `[codeName1]`
* `[codeName1, codeName2]`
Return array of all exist codes from arguments or `null`.
Example
```javascript
const listOfCodes1 = isoCountries.getCodeList('alpha3'); //=> ['AFG', ...]
const listOfCodes2 = isoCountries.getCodeList('alpha3', 'numeric'); //=> ['AFG', ..., '004', ...]
const listOfCodes3 = isoCountries.getCodeList(['alpha3']); //=> ['AFG', ...]
const listOfCodes4 = isoCountries.getCodeList(['alpha3', 'numeric']); //=> ['AFG', ..., '004', ...]
const listOfCodes5 = isoCountries.getCodeList('unknown'); //=> null
const listOfCodes7 = isoCountries.getCodeList(['unknown']); //=> null
const listOfCodes6 = isoCountries.getCodeList('unknown', 'numeric'); //=> null
const listOfCodes8 = isoCountries.getCodeList(['unknown', 'numeric']); //=> null
```
[<p align="right">up to navigation</p>](#navigation)
## <a name="testing">Test</a>
npm run test
[<p align="right">up to navigation</p>](#navigation)
## <a name="testing">License</a>
MIT License.
Copyright (c) 2017 Mobitel Ltd
[<p align="right">up to navigation</p>](#navigation)