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
						
					
					
				| 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
 |