@brixtol/country-continent
Version:
Mappings for 2 letter (Alpha 2) country codes to Continent code/name
559 lines (558 loc) • 11.6 kB
TypeScript
import { LiteralUnion, AnyCase } from '@brixtol/tsutils';
export interface IContinentNames {
EU: 'Europe';
AS: 'Asia';
NA: 'North America';
SA: 'South America';
OC: 'Oceania';
AF: 'Africa';
}
export interface IContinents {
/** Andorra */
AD: 'EU';
/** United Arab Emirates */
AE: 'AS';
/** Afghanistan */
AF: 'AS';
/** Antigua and Barbuda */
AG: 'NA';
/** Anguilla */
AI: 'NA';
/** Albania */
AL: 'EU';
/** Armenia */
AM: 'AS';
/** Angola */
AO: 'AF';
/** Antarctica */
AQ: 'AN';
/** Argentina */
AR: 'SA';
/** American Samoa */
AS: 'OC';
/** Austria */
AT: 'EU';
/** Australia */
AU: 'OC';
/** Aruba */
AW: 'NA';
/** Åland Islands */
AX: 'EU';
/** Azerbaijan */
AZ: 'AS';
/** Bosnia and Herzegovina */
BA: 'EU';
/** Barbados */
BB: 'NA';
/** Bangladesh */
BD: 'AS';
/** Belgium */
BE: 'EU';
/** Burkina Faso */
BF: 'AF';
/** Bulgaria */
BG: 'EU';
/** Bahrain */
BH: 'AS';
/** Burundi */
BI: 'AF';
/** Benin */
BJ: 'AF';
/** Saint Barthélemy */
BL: 'NA';
/** Bermuda */
BM: 'NA';
/** Brunei Darussalam */
BN: 'AS';
/** Bolivia (Plurinational State of) */
BO: 'SA';
/** Bonaire, Sint Eustatius and Saba */
BQ: 'NA';
/** Brazil */
BR: 'SA';
/** Bahamas */
BS: 'NA';
/** Bhutan */
BT: 'AS';
/** Bouvet Island */
BV: 'AN';
/** Botswana */
BW: 'AF';
/** Belarus */
BY: 'EU';
/** Belize */
BZ: 'NA';
/** Canada */
CA: 'NA';
/** Cocos (Keeling) Islands */
CC: 'AS';
/** Congo, Democratic Republic of the */
CD: 'AF';
/** Central African Republic */
CF: 'AF';
/** Congo, Republic of the */
CG: 'AF';
/** Switzerland */
CH: 'EU';
/** Côte d'Ivoire */
CI: 'AF';
/** Cook Islands */
CK: 'OC';
/** Chile */
CL: 'SA';
/** Cameroon */
CM: 'AF';
/** China */
CN: 'AS';
/** Colombia */
CO: 'SA';
/** Costa Rica */
CR: 'NA';
/** Cuba */
CU: 'NA';
/** Cabo Verde */
CV: 'AF';
/** Curaçao */
CW: 'NA';
/** Christmas Island */
CX: 'AS';
/** Cyprus */
CY: 'EU';
/** Czech Republic */
CZ: 'EU';
/** Germany */
DE: 'EU';
/** Djibouti */
DJ: 'AF';
/** Denmark */
DK: 'EU';
/** Dominica */
DM: 'NA';
/** Dominican Republic */
DO: 'NA';
/** Algeria */
DZ: 'AF';
/** Ecuador */
EC: 'SA';
/** Estonia */
EE: 'EU';
/** Egypt */
EG: 'AF';
/** Western Sahara */
EH: 'AF';
/** Eritrea */
ER: 'AF';
/** Spain */
ES: 'EU';
/** Ethiopia */
ET: 'AF';
/** Finland */
FI: 'EU';
/** Fiji */
FJ: 'OC';
/** Falkland Islands (Malvinas) */
FK: 'SA';
/** Micronesia (Federated States of) */
FM: 'OC';
/** Faroe Islands */
FO: 'EU';
/** France */
FR: 'EU';
/** Gabon */
GA: 'AF';
/** United Kingdom of Great Britain and Northern Ireland */
GB: 'EU';
/** Grenada */
GD: 'NA';
/** Georgia */
GE: 'AS';
/** French Guiana */
GF: 'SA';
/** Guernsey */
GG: 'EU';
/** Ghana */
GH: 'AF';
/** Gibraltar */
GI: 'EU';
/** Greenland */
GL: 'NA';
/** Gambia */
GM: 'AF';
/** Guinea */
GN: 'AF';
/** Guadeloupe */
GP: 'NA';
/** Equatorial Guinea */
GQ: 'AF';
/** Greece */
GR: 'EU';
/** South Georgia and the South Sandwich Islands */
GS: 'AN';
/** Guatemala */
GT: 'NA';
/** Guam */
GU: 'OC';
/** Guinea-Bissau */
GW: 'AF';
/** Guyana */
GY: 'SA';
/** Hong Kong */
HK: 'AS';
/** Heard Island and McDonald Islands */
HM: 'AN';
/** Honduras */
HN: 'NA';
/** Croatia */
HR: 'EU';
/** Haiti */
HT: 'NA';
/** Hungary */
HU: 'EU';
/** Indonesia */
ID: 'AS';
/** Ireland */
IE: 'EU';
/** Israel */
IL: 'AS';
/** Isle Of Man */
IM: 'EU';
/** India (Indian Rupee) */
IN: 'AS';
/** British Indian Ocean Territory */
IO: 'AS';
/** Iraq */
IQ: 'AS';
/** Iran Islamic Republic */
IR: 'AS';
/** Iceland */
IS: 'EU';
/** Italy */
IT: 'EU';
/** Jersey */
JE: 'EU';
/** Jamaica */
JM: 'NA';
/** Jordan */
JO: 'AS';
/** Japan */
JP: 'AS';
/** Kenya */
KE: 'AF';
/** Kyrgyzstan */
KG: 'AS';
/** Cambodia */
KH: 'AS';
/** Kiribati */
KI: 'OC';
/** Comoros */
KM: 'AF';
/** Saint Kitts and Nevis */
KN: 'NA';
/** North Korea */
KP: 'AS';
/** South Korea */
KR: 'AS';
/** Kuwait */
KW: 'AS';
/** Cayman Islands */
KY: 'NA';
/** Kazakhstan */
KZ: 'AS';
/** Laos */
LA: 'AS';
/** Lebanon */
LB: 'AS';
/** Saint Lucia */
LC: 'NA';
/** Liechtenstein */
LI: 'EU';
/** Sri Lanka */
LK: 'AS';
/** Liberia */
LR: 'AF';
/** Lesotho */
LS: 'AF';
/** Lithuania */
LT: 'EU';
/** Luxembourg */
LU: 'EU';
/** Latvia */
LV: 'EU';
/** Libya */
LY: 'AF';
/** Morocco */
MA: 'AF';
/** Monaco */
MC: 'EU';
/** Moldova, Republic of */
MD: 'EU';
/** Montenegro */
ME: 'EU';
/** Saint Martin (French part) */
MF: 'NA';
/** Madagascar */
MG: 'AF';
/** Marshall Islands */
MH: 'OC';
/** Macedonia */
MK: 'EU';
/** Mali */
ML: 'AF';
/** Myanmar */
MM: 'AS';
/** Mongolia */
MN: 'AS';
/** Macao */
MO: 'AS';
/** Northern Mariana Islands */
MP: 'OC';
/** Martinique */
MQ: 'NA';
/** Mauritania */
MR: 'AF';
/** Montserrat */
MS: 'NA';
/** Malta */
MT: 'EU';
/** Mauritius */
MU: 'AF';
/** Maldives */
MV: 'AS';
/** Malawi */
MW: 'AF';
/** Mexico */
MX: 'NA';
/** Malaysia */
MY: 'AS';
/** Mozambique */
MZ: 'AF';
/** Namibia */
NA: 'AF';
/** New Caledonia */
NC: 'OC';
/** Niger */
NE: 'AF';
/** Norfolk Island */
NF: 'OC';
/** Nigeria */
NG: 'AF';
/** Nicaragua */
NI: 'NA';
/** Netherlands */
NL: 'EU';
/** Norway */
NO: 'EU';
/** Nepal */
NP: 'AS';
/** Nauru */
NR: 'OC';
/** Niue */
NU: 'OC';
/** New Zealand */
NZ: 'OC';
/** Oman */
OM: 'AS';
/** Panama */
PA: 'NA';
/** Peru */
PE: 'SA';
/** French Polynesia */
PF: 'OC';
/** Papua New Guinea */
PG: 'OC';
/** Philippines */
PH: 'AS';
/** Pakistan */
PK: 'AS';
/** Poland */
PL: 'EU';
/** Saint Pierre and Miquelon */
PM: 'NA';
/** Pitcairn */
PN: 'OC';
/** Puerto Rico */
PR: 'NA';
/** Palestine */
PS: 'AS';
/** Portugal */
PT: 'EU';
/** Palau */
PW: 'OC';
/** Paraguay */
PY: 'SA';
/** Qatar */
QA: 'AS';
/** Reunion */
RE: 'AF';
/** Romania */
RO: 'EU';
/** Serbia */
RS: 'EU';
/** Russian Federation */
RU: 'EU';
/** Rwanda */
RW: 'AF';
/** Saudi Arabia */
SA: 'AS';
/** Solomon Islands */
SB: 'OC';
/** Seychelles */
SC: 'AF';
/** Sudan */
SD: 'AF';
/** Sweden */
SE: 'EU';
/** Singapore */
SG: 'AS';
/** Saint Helena Ascension And Tristan Da Cunha */
SH: 'AF';
/** Slovenia */
SI: 'EU';
/** Svalbard and Jan Mayen */
SJ: 'EU';
/** Slovakia */
SK: 'EU';
/** Sierra Leone */
SL: 'AF';
/** San Marino */
SM: 'EU';
/** Senegal */
SN: 'AF';
/** Somalia */
SO: 'AF';
/** Suriname */
SR: 'SA';
/** South Sudan */
SS: 'AF';
/** Sao Tome And Principe */
ST: 'AF';
/** El Salvador */
SV: 'NA';
/** Sint Maarten */
SX: 'NA';
/** Syrian Arab Republic */
SY: 'AS';
/** Swaziland */
SZ: 'AF';
/** Turks and Caicos Islands */
TC: 'NA';
/** Chad */
TD: 'AF';
/** French Southern Territories */
TF: 'AN';
/** Togo */
TG: 'AF';
/** Thailand */
TH: 'AS';
/** Tajikistan */
TJ: 'AS';
/** Tokelau */
TK: 'OC';
/** Timor Leste */
TL: 'OC';
/** Turkmenistan */
TM: 'AS';
/** Tunisia */
TN: 'AF';
/** Tonga */
TO: 'OC';
/** Turkey */
TR: 'AS';
/** Trinidad and Tobago */
TT: 'NA';
/** Tuvalu */
TV: 'OC';
/** Taiwan */
TW: 'AS';
/** Tanzania United Republic */
TZ: 'AF';
/** Ukraine */
UA: 'EU';
/** Uganda */
UG: 'AF';
/** United States Minor Outlying Islands */
UM: 'OC';
/** United States Of America */
US: 'NA';
/** Uruguay */
UY: 'SA';
/** Uzbekistan */
UZ: 'AS';
/** Holy See */
VA: 'EU';
/** Saint Vincent And The Grenadines */
VC: 'NA';
/** Venezuela */
VE: 'SA';
/** Virgin Islands (British) */
VG: 'NA';
/** Virgin Islands (U.S.) */
VI: 'NA';
/** Vietnam */
VN: 'AS';
/** Vanuatu */
VU: 'OC';
/** Wallis and Futuna */
WF: 'OC';
/** Samoa */
WS: 'OC';
/** Republic of Kosovo */
XK: 'EU';
/** Yemen */
YE: 'AS';
/** Mayotte */
YT: 'AF';
/** South Africa */
ZA: 'AF';
/** Zambia */
ZM: 'AF';
/** Zimbabwe */
ZW: 'AF';
}
/**
* Continent Code
*
* Extracts the countient code from the IContinents interface
* which is use as the Return type reference
*/
export declare type GetContinentCodes<ISO> = (ISO extends keyof IContinents ? IContinents[ISO] : never);
/**
* Continent Name
*
* Extracts the countinent name using the continent code
*/
export declare type ContinentName<Code> = (Code extends keyof IContinentNames ? IContinentNames[Code] : never);
/**
* Continent Codes Map
*
* Country code (ISO 3166-1 alpha-2) to continent code
* **Readonly** object.
*/
export declare const ContinentCodes: Readonly<IContinents>;
/**
* Continent Names Map
*
* Continent codes to continent name (in English)
* **Readonly** object.
*/
export declare const ContinentNames: Readonly<IContinentNames>;
/**
* Get Continent Code
*
* Requires a 2 Letter (ISO 3166-1 alpha-2) country
* code to be passed and returns a 2 letter continent code.
*
* > _Accepts either uppercase, lowercase or
* or a combination of either_
*/
export declare function getContinentCode<ISO extends AnyCase<keyof IContinents>>(code: LiteralUnion<ISO>): GetContinentCodes<Uppercase<ISO>>;
/**
* Get Continent Name
*
* Requires a 2 Letter (ISO 3166-1 alpha-2) country
* code to be passed and returns a 2 letter continent code.
*
* > _Accepts either uppercase, lowercase or
* or a combination of either_
*/
export declare function getContinentName<ISO extends AnyCase<keyof IContinents>>(code: LiteralUnion<ISO>): ContinentName<GetContinentCodes<Uppercase<ISO>>>;