UNPKG

libphonenumber-js

Version:

A simpler (and smaller) rewrite of Google Android's libphonenumber library in javascript

33 lines (31 loc) 1.25 kB
import getCountryByNationalNumber from './getCountryByNationalNumber.js' const USE_NON_GEOGRAPHIC_COUNTRY_CODE = false /** * Returns the exact country that a given national (significant) number belongs to * in case of ambiguity, i.e. when multiple countries share the same "country calling code". * @param {string} [callingCode] * @param {string} [options.nationalNumber] — National (significant) number. * @param {Metadata} options.metadata — Metadata instance. * @returns {string?} Returns the most suitable country for this calling code and national (significant) number. */ export default function getCountryByCallingCode(callingCode, { nationalNumber, metadata }) { /* istanbul ignore if */ if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) { if (metadata.isNonGeographicCallingCode(callingCode)) { return '001' } } const possibleCountries = metadata.getCountryCodesForCallingCode(callingCode) if (!possibleCountries) { return } // If there's just one country corresponding to the country code, // then just return it, without further phone number digits validation. if (possibleCountries.length === 1) { return possibleCountries[0] } return getCountryByNationalNumber(nationalNumber, possibleCountries, metadata.metadata) }