34 lines
		
	
	
		
			881 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			881 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # fs.realpath
 | ||
|  | 
 | ||
|  | A backwards-compatible fs.realpath for Node v6 and above | ||
|  | 
 | ||
|  | In Node v6, the JavaScript implementation of fs.realpath was replaced | ||
|  | with a faster (but less resilient) native implementation.  That raises | ||
|  | new and platform-specific errors and cannot handle long or excessively | ||
|  | symlink-looping paths. | ||
|  | 
 | ||
|  | This module handles those cases by detecting the new errors and | ||
|  | falling back to the JavaScript implementation.  On versions of Node | ||
|  | prior to v6, it has no effect. | ||
|  | 
 | ||
|  | ## USAGE
 | ||
|  | 
 | ||
|  | ```js | ||
|  | var rp = require('fs.realpath') | ||
|  | 
 | ||
|  | // async version | ||
|  | rp.realpath(someLongAndLoopingPath, function (er, real) { | ||
|  |   // the ELOOP was handled, but it was a bit slower | ||
|  | }) | ||
|  | 
 | ||
|  | // sync version | ||
|  | var real = rp.realpathSync(someLongAndLoopingPath) | ||
|  | 
 | ||
|  | // monkeypatch at your own risk! | ||
|  | // This replaces the fs.realpath/fs.realpathSync builtins | ||
|  | rp.monkeypatch() | ||
|  | 
 | ||
|  | // un-do the monkeypatching | ||
|  | rp.unmonkeypatch() | ||
|  | ``` |