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.
		
		
		
		
		
			
		
			
				
					30 lines
				
				730 B
			
		
		
			
		
	
	
					30 lines
				
				730 B
			| 
											3 years ago
										 | const platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform | ||
|  | const { resolve, parse } = require('path') | ||
|  | const pathArg = path => { | ||
|  |   if (/\0/.test(path)) { | ||
|  |     // simulate same failure that node raises
 | ||
|  |     throw Object.assign( | ||
|  |       new TypeError('path must be a string without null bytes'), | ||
|  |       { | ||
|  |         path, | ||
|  |         code: 'ERR_INVALID_ARG_VALUE', | ||
|  |       } | ||
|  |     ) | ||
|  |   } | ||
|  | 
 | ||
|  |   path = resolve(path) | ||
|  |   if (platform === 'win32') { | ||
|  |     const badWinChars = /[*|"<>?:]/ | ||
|  |     const {root} = parse(path) | ||
|  |     if (badWinChars.test(path.substr(root.length))) { | ||
|  |       throw Object.assign(new Error('Illegal characters in path.'), { | ||
|  |         path, | ||
|  |         code: 'EINVAL', | ||
|  |       }) | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   return path | ||
|  | } | ||
|  | module.exports = pathArg |