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