"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/fs.realpath/index.js" (7 Feb 2017, 1308 Bytes) of archive /windows/misc/atom-windows.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Javascript source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 module.exports = realpath
    2 realpath.realpath = realpath
    3 realpath.sync = realpathSync
    4 realpath.realpathSync = realpathSync
    5 realpath.monkeypatch = monkeypatch
    6 realpath.unmonkeypatch = unmonkeypatch
    7 
    8 var fs = require('fs')
    9 var origRealpath = fs.realpath
   10 var origRealpathSync = fs.realpathSync
   11 
   12 var version = process.version
   13 var ok = /^v[0-5]\./.test(version)
   14 var old = require('./old.js')
   15 
   16 function newError (er) {
   17   return er && er.syscall === 'realpath' && (
   18     er.code === 'ELOOP' ||
   19     er.code === 'ENOMEM' ||
   20     er.code === 'ENAMETOOLONG'
   21   )
   22 }
   23 
   24 function realpath (p, cache, cb) {
   25   if (ok) {
   26     return origRealpath(p, cache, cb)
   27   }
   28 
   29   if (typeof cache === 'function') {
   30     cb = cache
   31     cache = null
   32   }
   33   origRealpath(p, cache, function (er, result) {
   34     if (newError(er)) {
   35       old.realpath(p, cache, cb)
   36     } else {
   37       cb(er, result)
   38     }
   39   })
   40 }
   41 
   42 function realpathSync (p, cache) {
   43   if (ok) {
   44     return origRealpathSync(p, cache)
   45   }
   46 
   47   try {
   48     return origRealpathSync(p, cache)
   49   } catch (er) {
   50     if (newError(er)) {
   51       return old.realpathSync(p, cache)
   52     } else {
   53       throw er
   54     }
   55   }
   56 }
   57 
   58 function monkeypatch () {
   59   fs.realpath = realpath
   60   fs.realpathSync = realpathSync
   61 }
   62 
   63 function unmonkeypatch () {
   64   fs.realpath = origRealpath
   65   fs.realpathSync = origRealpathSync
   66 }