mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-11-03 19:07:00 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = realpath
 | 
						|
realpath.realpath = realpath
 | 
						|
realpath.sync = realpathSync
 | 
						|
realpath.realpathSync = realpathSync
 | 
						|
 | 
						|
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
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |