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 = realpathrealpath.realpath = realpathrealpath.sync = realpathSyncrealpath.realpathSync = realpathSyncrealpath.monkeypatch = monkeypatchrealpath.unmonkeypatch = unmonkeypatch
var fs = require('fs')var origRealpath = fs.realpathvar origRealpathSync = fs.realpathSync
var version = process.versionvar 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}
|