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.
		
		
		
		
		
			
		
			
				
					
					
						
							67 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							67 lines
						
					
					
						
							1.3 KiB
						
					
					
				module.exports = realpath
 | 
						|
realpath.realpath = realpath
 | 
						|
realpath.sync = realpathSync
 | 
						|
realpath.realpathSync = realpathSync
 | 
						|
realpath.monkeypatch = monkeypatch
 | 
						|
realpath.unmonkeypatch = unmonkeypatch
 | 
						|
 | 
						|
var fs = require('fs')
 | 
						|
var origRealpath = fs.realpath
 | 
						|
var origRealpathSync = fs.realpathSync
 | 
						|
 | 
						|
var version = process.version
 | 
						|
var ok = /^v[0-5]\./.test(version)
 | 
						|
var old = require('./old.js')
 | 
						|
 | 
						|
function newError (er) {
 | 
						|
  return er && er.syscall === 'realpath' && (
 | 
						|
    er.code === 'ELOOP' ||
 | 
						|
    er.code === 'ENOMEM' ||
 | 
						|
    er.code === 'ENAMETOOLONG'
 | 
						|
  )
 | 
						|
}
 | 
						|
 | 
						|
function realpath (p, cache, cb) {
 | 
						|
  if (ok) {
 | 
						|
    return origRealpath(p, cache, cb)
 | 
						|
  }
 | 
						|
 | 
						|
  if (typeof cache === 'function') {
 | 
						|
    cb = cache
 | 
						|
    cache = null
 | 
						|
  }
 | 
						|
  origRealpath(p, cache, function (er, result) {
 | 
						|
    if (newError(er)) {
 | 
						|
      old.realpath(p, cache, cb)
 | 
						|
    } else {
 | 
						|
      cb(er, result)
 | 
						|
    }
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
function realpathSync (p, cache) {
 | 
						|
  if (ok) {
 | 
						|
    return origRealpathSync(p, cache)
 | 
						|
  }
 | 
						|
 | 
						|
  try {
 | 
						|
    return origRealpathSync(p, cache)
 | 
						|
  } catch (er) {
 | 
						|
    if (newError(er)) {
 | 
						|
      return old.realpathSync(p, cache)
 | 
						|
    } else {
 | 
						|
      throw er
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
function monkeypatch () {
 | 
						|
  fs.realpath = realpath
 | 
						|
  fs.realpathSync = realpathSync
 | 
						|
}
 | 
						|
 | 
						|
function unmonkeypatch () {
 | 
						|
  fs.realpath = origRealpath
 | 
						|
  fs.realpathSync = origRealpathSync
 | 
						|
}
 |