UNPKG

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 (32 loc) 1.02 kB
'use strict' const continents = require('./continents.json') const countries = require('./countries.emoji.json') const languages = require('./languages.json') const languagesAll = require('./languages.all.json') // See: https://github.com/bestiejs/punycode.js#installation const { ucs2: { decode, encode }, } = require('punycode/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 encode(countryCode.split('').map((letter) => UNICODE_BASE + letter.charCodeAt(0))) } const getUnicode = (emoji) => { return decode(emoji) .map((code) => 'U+' + Number(code).toString(16).toUpperCase()) .join(' ') } module.exports = { continents, countries, languages, languagesAll, getEmojiFlag, getUnicode, }