countries-list
Version:
Continents & countries: ISO 3166-1 alpha-2 code, name, ISO 639-1 languages, capital, currency, native name, phone. JSON, CSV and SQL.
41 lines (34 loc) • 971 B
JavaScript
;
const continents = require('./continents.json');
const countries = require('./countries.emoji.json');
const languages = require('./languages.json');
const languagesAll = require('./languages.all.json');
const { ucs2 } = require('punycode');
const
// "Regional Indicator Symbol Letter A" - "Latin Capital Letter A"
UNICODE_BASE = 127462 - 'A'.charCodeAt(0),
// Country code should contain exactly 2 uppercase characters from A..Z
COUNTRY_CODE_REGEX = /^[A-Z]{2}$/;
const getEmojiFlag = (countryCode) => {
if (!COUNTRY_CODE_REGEX.test(countryCode)) {
return '';
}
return ucs2.encode(
countryCode
.split('')
.map(letter => UNICODE_BASE + letter.charCodeAt(0))
);
};
const getUnicode = (emoji) => {
return ucs2.decode(emoji)
.map(code => 'U+' + Number(code).toString(16).toUpperCase())
.join(' ');
};
module.exports = {
continents,
countries,
languages,
languagesAll,
getEmojiFlag,
getUnicode,
};