You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
874 B
JavaScript
30 lines
874 B
JavaScript
import getCountryByNationalNumber from './getCountryByNationalNumber.js'
|
|
|
|
const USE_NON_GEOGRAPHIC_COUNTRY_CODE = false
|
|
|
|
export default function getCountryByCallingCode(callingCode, {
|
|
nationalNumber: nationalPhoneNumber,
|
|
defaultCountry,
|
|
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(nationalPhoneNumber, {
|
|
countries: possibleCountries,
|
|
defaultCountry,
|
|
metadata: metadata.metadata
|
|
})
|
|
} |