UNPKG

948 BJavaScriptView Raw
1'use strict';
2
3var path = require('path');
4
5module.exports = exports = {};
6
7var escapeRegExp = function(str) {
8 return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
9};
10
11exports.escapeRegExp = escapeRegExp;
12
13var isKindOf = function(lhs, rhs) {
14 var prototype = Object.getPrototypeOf(lhs);
15 if (!prototype) return false;
16 if (prototype.constructor.name === rhs.name) return true;
17 return isKindOf(prototype, rhs);
18};
19
20exports.isKindOf = isKindOf;
21
22exports.remoteToLocalFilename = function(filename, root, serveDir) {
23
24 var tester = new RegExp('^' + escapeRegExp(serveDir), 'i');
25
26 // Make sure pathname is in our serveDir
27 if (!tester.test(filename)) return;
28
29 // Map to local file
30 return path.normalize(root + '/' + filename.substr(serveDir.length, filename.length - serveDir.length));
31
32};
33
34exports.localToRemoteFilename = function(filename, root, serveDir) {
35 return path.normalize(serveDir + '/' + filename.substr(root.length));
36};