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.
		
		
		
		
		
			
		
			
	
	
		
			28 lines
		
	
	
		
			615 B
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			615 B
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | 	Author Ivan Kopeykin @vankop | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | const PATH_QUERY_FRAGMENT_REGEXP = | ||
|  | 	/^(#?(?:\0.|[^?#\0])*)(\?(?:\0.|[^#\0])*)?(#.*)?$/; | ||
|  | 
 | ||
|  | /** | ||
|  |  * @param {string} identifier identifier | ||
|  |  * @returns {[string, string, string]|null} parsed identifier | ||
|  |  */ | ||
|  | function parseIdentifier(identifier) { | ||
|  | 	const match = PATH_QUERY_FRAGMENT_REGEXP.exec(identifier); | ||
|  | 
 | ||
|  | 	if (!match) return null; | ||
|  | 
 | ||
|  | 	return [ | ||
|  | 		match[1].replace(/\0(.)/g, "$1"), | ||
|  | 		match[2] ? match[2].replace(/\0(.)/g, "$1") : "", | ||
|  | 		match[3] || "" | ||
|  | 	]; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports.parseIdentifier = parseIdentifier; |