shelving
Version:
Toolkit for using data in JavaScript.
272 lines (271 loc) • 8.91 kB
TypeScript
import type { AnyCaller } from "./function.js";
/** List of countries by two-letter ISO code. */
export declare const COUNTRIES: {
readonly AF: "Afghanistan";
readonly AX: "Aland Islands";
readonly AL: "Albania";
readonly DZ: "Algeria";
readonly AS: "American Samoa";
readonly AD: "Andorra";
readonly AO: "Angola";
readonly AI: "Anguilla";
readonly AQ: "Antarctica";
readonly AG: "Antigua and Barbuda";
readonly AR: "Argentina";
readonly AM: "Armenia";
readonly AW: "Aruba";
readonly AU: "Australia";
readonly AT: "Austria";
readonly AZ: "Azerbaijan";
readonly BS: "Bahamas";
readonly BH: "Bahrain";
readonly BD: "Bangladesh";
readonly BB: "Barbados";
readonly BY: "Belarus";
readonly BE: "Belgium";
readonly BZ: "Belize";
readonly BJ: "Benin";
readonly BM: "Bermuda";
readonly BT: "Bhutan";
readonly BO: "Bolivia";
readonly BA: "Bosnia and Herzegovina";
readonly BW: "Botswana";
readonly BV: "Bouvet Island";
readonly BR: "Brazil";
readonly IO: "British Indian Ocean Territory";
readonly BN: "Brunei Darussalam";
readonly BG: "Bulgaria";
readonly BF: "Burkina Faso";
readonly BI: "Burundi";
readonly KH: "Cambodia";
readonly CM: "Cameroon";
readonly CA: "Canada";
readonly CV: "Cape Verde";
readonly KY: "Cayman Islands";
readonly CF: "Central African Republic";
readonly TD: "Chad";
readonly CL: "Chile";
readonly CN: "China";
readonly CX: "Christmas Island";
readonly CC: "Cocos (Keeling) Islands";
readonly CO: "Colombia";
readonly KM: "Comoros";
readonly CG: "Congo";
readonly CD: "Congo, Democratic Republic";
readonly CK: "Cook Islands";
readonly CR: "Costa Rica";
readonly CI: "Cote D'Ivoire";
readonly HR: "Croatia";
readonly CU: "Cuba";
readonly CY: "Cyprus";
readonly CZ: "Czech Republic";
readonly DK: "Denmark";
readonly DJ: "Djibouti";
readonly DM: "Dominica";
readonly DO: "Dominican Republic";
readonly EC: "Ecuador";
readonly EG: "Egypt";
readonly SV: "El Salvador";
readonly GQ: "Equatorial Guinea";
readonly ER: "Eritrea";
readonly EE: "Estonia";
readonly ET: "Ethiopia";
readonly FK: "Falkland Islands";
readonly FO: "Faroe Islands";
readonly FJ: "Fiji";
readonly FI: "Finland";
readonly FR: "France";
readonly GF: "French Guiana";
readonly PF: "French Polynesia";
readonly TF: "French Southern Territories";
readonly GA: "Gabon";
readonly GM: "Gambia";
readonly GE: "Georgia";
readonly DE: "Germany";
readonly GH: "Ghana";
readonly GI: "Gibraltar";
readonly GR: "Greece";
readonly GL: "Greenland";
readonly GD: "Grenada";
readonly GP: "Guadeloupe";
readonly GU: "Guam";
readonly GT: "Guatemala";
readonly GG: "Guernsey";
readonly GN: "Guinea";
readonly GW: "Guinea-Bissau";
readonly GY: "Guyana";
readonly HT: "Haiti";
readonly HM: "Heard Island & Mcdonald Islands";
readonly VA: "Holy See (Vatican City State)";
readonly HN: "Honduras";
readonly HK: "Hong Kong";
readonly HU: "Hungary";
readonly IS: "Iceland";
readonly IN: "India";
readonly ID: "Indonesia";
readonly IR: "Iran, Islamic Republic Of";
readonly IQ: "Iraq";
readonly IE: "Ireland";
readonly IM: "Isle of Man";
readonly IL: "Israel";
readonly IT: "Italy";
readonly JM: "Jamaica";
readonly JP: "Japan";
readonly JE: "Jersey";
readonly JO: "Jordan";
readonly KZ: "Kazakhstan";
readonly KE: "Kenya";
readonly KI: "Kiribati";
readonly KR: "Korea";
readonly KP: "North Korea";
readonly KW: "Kuwait";
readonly KG: "Kyrgyzstan";
readonly LA: "Lao People's Democratic Republic";
readonly LV: "Latvia";
readonly LB: "Lebanon";
readonly LS: "Lesotho";
readonly LR: "Liberia";
readonly LY: "Libyan Arab Jamahiriya";
readonly LI: "Liechtenstein";
readonly LT: "Lithuania";
readonly LU: "Luxembourg";
readonly MO: "Macao";
readonly MK: "Macedonia";
readonly MG: "Madagascar";
readonly MW: "Malawi";
readonly MY: "Malaysia";
readonly MV: "Maldives";
readonly ML: "Mali";
readonly MT: "Malta";
readonly MH: "Marshall Islands";
readonly MQ: "Martinique";
readonly MR: "Mauritania";
readonly MU: "Mauritius";
readonly YT: "Mayotte";
readonly MX: "Mexico";
readonly FM: "Micronesia, Federated States Of";
readonly MD: "Moldova";
readonly MC: "Monaco";
readonly MN: "Mongolia";
readonly ME: "Montenegro";
readonly MS: "Montserrat";
readonly MA: "Morocco";
readonly MZ: "Mozambique";
readonly MM: "Myanmar";
readonly NA: "Namibia";
readonly NR: "Nauru";
readonly NP: "Nepal";
readonly NL: "Netherlands";
readonly AN: "Netherlands Antilles";
readonly NC: "New Caledonia";
readonly NZ: "New Zealand";
readonly NI: "Nicaragua";
readonly NE: "Niger";
readonly NG: "Nigeria";
readonly NU: "Niue";
readonly NF: "Norfolk Island";
readonly MP: "Northern Mariana Islands";
readonly NO: "Norway";
readonly OM: "Oman";
readonly PK: "Pakistan";
readonly PW: "Palau";
readonly PS: "Palestinian Territory, Occupied";
readonly PA: "Panama";
readonly PG: "Papua New Guinea";
readonly PY: "Paraguay";
readonly PE: "Peru";
readonly PH: "Philippines";
readonly PN: "Pitcairn";
readonly PL: "Poland";
readonly PT: "Portugal";
readonly PR: "Puerto Rico";
readonly QA: "Qatar";
readonly RE: "Reunion";
readonly RO: "Romania";
readonly RU: "Russian Federation";
readonly RW: "Rwanda";
readonly BL: "Saint Barthelemy";
readonly SH: "Saint Helena";
readonly KN: "Saint Kitts and Nevis";
readonly LC: "Saint Lucia";
readonly MF: "Saint Martin";
readonly PM: "Saint Pierre and Miquelon";
readonly VC: "Saint Vincent and Grenadines";
readonly WS: "Samoa";
readonly SM: "San Marino";
readonly ST: "Sao Tome and Principe";
readonly SA: "Saudi Arabia";
readonly SN: "Senegal";
readonly RS: "Serbia";
readonly SC: "Seychelles";
readonly SL: "Sierra Leone";
readonly SG: "Singapore";
readonly SK: "Slovakia";
readonly SI: "Slovenia";
readonly SB: "Solomon Islands";
readonly SO: "Somalia";
readonly ZA: "South Africa";
readonly GS: "South Georgia and Sandwich Isl.";
readonly ES: "Spain";
readonly LK: "Sri Lanka";
readonly SD: "Sudan";
readonly SR: "Suriname";
readonly SJ: "Svalbard and Jan Mayen";
readonly SZ: "Swaziland";
readonly SE: "Sweden";
readonly CH: "Switzerland";
readonly SY: "Syrian Arab Republic";
readonly TW: "Taiwan";
readonly TJ: "Tajikistan";
readonly TZ: "Tanzania";
readonly TH: "Thailand";
readonly TL: "Timor-Leste";
readonly TG: "Togo";
readonly TK: "Tokelau";
readonly TO: "Tonga";
readonly TT: "Trinidad and Tobago";
readonly TN: "Tunisia";
readonly TR: "Turkey";
readonly TM: "Turkmenistan";
readonly TC: "Turks and Caicos Islands";
readonly TV: "Tuvalu";
readonly UG: "Uganda";
readonly UA: "Ukraine";
readonly AE: "United Arab Emirates";
readonly GB: "United Kingdom";
readonly US: "United States";
readonly UM: "United States Outlying Islands";
readonly UY: "Uruguay";
readonly UZ: "Uzbekistan";
readonly VU: "Vanuatu";
readonly VE: "Venezuela";
readonly VN: "Vietnam";
readonly VG: "Virgin Islands, British";
readonly VI: "Virgin Islands, U.S.";
readonly WF: "Wallis and Futuna";
readonly EH: "Western Sahara";
readonly YE: "Yemen";
readonly ZM: "Zambia";
readonly ZW: "Zimbabwe";
};
/** Country code string. */
export type Country = keyof typeof COUNTRIES;
/** Things that can possibly be a country. */
export type PossibleCountry = Country | "detect";
/** Parse a country string, or detect a browser country from `navigator.language`. */
export declare function getCountry(value?: unknown): Country | undefined;
/** Parse a country string, or detect a browser country from `navigator.language`, or throw `RequiredError` */
export declare function requireCountry(value?: unknown, caller?: AnyCaller): Country;
/** Format a country code into its full country name. */
export declare function formatCountry(country: string): string;
/** Valid shape for physical address data. */
export type AddressData = {
readonly address1: string;
readonly address2: string;
readonly city: string;
readonly state: string;
readonly postcode: string;
readonly country: Country;
};
/** Format address data into a single multiline string. */
export declare function formatAddress({ address1, address2, city, state, postcode, country }: AddressData): string;