You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							917 B
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							917 B
						
					
					
				| import { normalizeArguments } from './parsePhoneNumber.js'
 | |
| import parsePhoneNumber from './parsePhoneNumber_.js'
 | |
| import ParseError from './ParseError.js'
 | |
| import Metadata from './metadata.js'
 | |
| import checkNumberLength from './helpers/checkNumberLength.js'
 | |
| 
 | |
| export default function validatePhoneNumberLength() {
 | |
| 	let { text, options, metadata } = normalizeArguments(arguments)
 | |
| 	options = {
 | |
| 		...options,
 | |
| 		extract: false
 | |
| 	}
 | |
| 
 | |
| 	// Parse phone number.
 | |
| 	try {
 | |
| 		const phoneNumber = parsePhoneNumber(text, options, metadata)
 | |
| 		metadata = new Metadata(metadata)
 | |
| 		metadata.selectNumberingPlan(phoneNumber.countryCallingCode)
 | |
| 		const result = checkNumberLength(phoneNumber.nationalNumber, metadata)
 | |
| 		if (result !== 'IS_POSSIBLE') {
 | |
| 			return result
 | |
| 		}
 | |
| 	} catch (error) {
 | |
| 		/* istanbul ignore else */
 | |
| 		if (error instanceof ParseError) {
 | |
| 			return error.message
 | |
| 		} else {
 | |
| 			throw error
 | |
| 		}
 | |
| 	}
 | |
| } |