24 lines
		
	
	
		
			593 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			593 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| ;(function (exports) {
 | |
|   'use strict';
 | |
| 
 | |
|   var path  = exports.path  || require('path')
 | |
|     ;
 | |
| 
 | |
|   function escapeRegExp(str) {
 | |
|     return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
 | |
|   }
 | |
| 
 | |
|   function safeResolve(basename, target) {
 | |
|     basename = path.resolve(basename);
 | |
| 
 | |
|     var targetname = path.resolve(basename, target)
 | |
|       , re = new RegExp('^' + escapeRegExp(basename) + '(/|$)')
 | |
|       ;
 | |
| 
 | |
|     return re.test(targetname) && targetname;
 | |
|   }
 | |
| 
 | |
|   exports.safeResolve = safeResolve;
 | |
|   exports.escapeRegExp = escapeRegExp;
 | |
| }('undefined' !== typeof exports && exports || window));
 |