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.
		
		
		
		
		
			
		
			
				
					26 lines
				
				517 B
			
		
		
			
		
	
	
					26 lines
				
				517 B
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const path = require('path')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// get drive on windows
							 | 
						||
| 
								 | 
							
								function getRootPath (p) {
							 | 
						||
| 
								 | 
							
								  p = path.normalize(path.resolve(p)).split(path.sep)
							 | 
						||
| 
								 | 
							
								  if (p.length > 0) return p[0]
							 | 
						||
| 
								 | 
							
								  return null
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// http://stackoverflow.com/a/62888/10333 contains more accurate
							 | 
						||
| 
								 | 
							
								// TODO: expand to include the rest
							 | 
						||
| 
								 | 
							
								const INVALID_PATH_CHARS = /[<>:"|?*]/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function invalidWin32Path (p) {
							 | 
						||
| 
								 | 
							
								  const rp = getRootPath(p)
							 | 
						||
| 
								 | 
							
								  p = p.replace(rp, '')
							 | 
						||
| 
								 | 
							
								  return INVALID_PATH_CHARS.test(p)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								  getRootPath,
							 | 
						||
| 
								 | 
							
								  invalidWin32Path
							 | 
						||
| 
								 | 
							
								}
							 |