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));
|