UNPKG

libphonenumber-js

Version:

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

62 lines (57 loc) 1.89 kB
import { sort_out_arguments, check_number_length_for_type } from './getNumberType'; /** * Checks if a given phone number is possible. * Which means it only checks phone number length * and doesn't test any regular expressions. * * Examples: * * ```js * isPossibleNumber('+78005553535', metadata) * isPossibleNumber('8005553535', 'RU', metadata) * isPossibleNumber('88005553535', 'RU', metadata) * isPossibleNumber({ phone: '8005553535', country: 'RU' }, metadata) * ``` */ export default function isPossibleNumber(arg_1, arg_2, arg_3, arg_4) { var _sort_out_arguments = sort_out_arguments(arg_1, arg_2, arg_3, arg_4), input = _sort_out_arguments.input, options = _sort_out_arguments.options, metadata = _sort_out_arguments.metadata; if (options.v2) { if (!input.countryCallingCode) { throw new Error('Invalid phone number object passed'); } metadata.chooseCountryByCountryCallingCode(input.countryCallingCode); } else { if (!input.phone) { return false; } if (input.country) { if (!metadata.hasCountry(input.country)) { throw new Error('Unknown country: ' + input.country); } metadata.country(input.country); } else { if (!input.countryCallingCode) { throw new Error('Invalid phone number object passed'); } metadata.chooseCountryByCountryCallingCode(input.countryCallingCode); } } if (!metadata.possibleLengths()) { throw new Error('Metadata too old'); } return is_possible_number(input.phone || input.nationalNumber, undefined, metadata); } export function is_possible_number(national_number, is_international, metadata) { switch (check_number_length_for_type(national_number, undefined, metadata)) { case 'IS_POSSIBLE': return true; // case 'IS_POSSIBLE_LOCAL_ONLY': // return !is_international default: return false; } } //# sourceMappingURL=isPossibleNumber.js.map