1 | 'use strict';
|
2 |
|
3 | var path = require('path');
|
4 |
|
5 | module.exports = exports = {};
|
6 |
|
7 | var escapeRegExp = function(str) {
|
8 | return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
|
9 | };
|
10 |
|
11 | exports.escapeRegExp = escapeRegExp;
|
12 |
|
13 | var 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 |
|
20 | exports.isKindOf = isKindOf;
|
21 |
|
22 | exports.remoteToLocalFilename = function(filename, root, serveDir) {
|
23 |
|
24 | var tester = new RegExp('^' + escapeRegExp(serveDir), 'i');
|
25 |
|
26 |
|
27 | if (!tester.test(filename)) return;
|
28 |
|
29 |
|
30 | return path.normalize(root + '/' + filename.substr(serveDir.length, filename.length - serveDir.length));
|
31 |
|
32 | };
|
33 |
|
34 | exports.localToRemoteFilename = function(filename, root, serveDir) {
|
35 | return path.normalize(serveDir + '/' + filename.substr(root.length));
|
36 | };
|