UNPKG

libphonenumber-js

Version:

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

70 lines (63 loc) 2.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isPossibleNumber; exports.is_possible_number = is_possible_number; var _getNumberType = require('./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) * ``` */ function isPossibleNumber(arg_1, arg_2, arg_3, arg_4) { var _sort_out_arguments = (0, _getNumberType.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); } function is_possible_number(national_number, is_international, metadata) { switch ((0, _getNumberType.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