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.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							969 B
						
					
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							969 B
						
					
					
				const {dirname} = require('path')
 | 
						|
const {findMade, findMadeSync} = require('./find-made.js')
 | 
						|
const {mkdirpManual, mkdirpManualSync} = require('./mkdirp-manual.js')
 | 
						|
 | 
						|
const mkdirpNative = (path, opts) => {
 | 
						|
  opts.recursive = true
 | 
						|
  const parent = dirname(path)
 | 
						|
  if (parent === path)
 | 
						|
    return opts.mkdirAsync(path, opts)
 | 
						|
 | 
						|
  return findMade(opts, path).then(made =>
 | 
						|
    opts.mkdirAsync(path, opts).then(() => made)
 | 
						|
    .catch(er => {
 | 
						|
      if (er.code === 'ENOENT')
 | 
						|
        return mkdirpManual(path, opts)
 | 
						|
      else
 | 
						|
        throw er
 | 
						|
    }))
 | 
						|
}
 | 
						|
 | 
						|
const mkdirpNativeSync = (path, opts) => {
 | 
						|
  opts.recursive = true
 | 
						|
  const parent = dirname(path)
 | 
						|
  if (parent === path)
 | 
						|
    return opts.mkdirSync(path, opts)
 | 
						|
 | 
						|
  const made = findMadeSync(opts, path)
 | 
						|
  try {
 | 
						|
    opts.mkdirSync(path, opts)
 | 
						|
    return made
 | 
						|
  } catch (er) {
 | 
						|
    if (er.code === 'ENOENT')
 | 
						|
      return mkdirpManualSync(path, opts)
 | 
						|
    else
 | 
						|
      throw er
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
module.exports = {mkdirpNative, mkdirpNativeSync}
 |