summaryrefslogtreecommitdiff
path: root/chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js')
-rw-r--r--chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js b/chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js
new file mode 100644
index 00000000000..596dfd3b3c5
--- /dev/null
+++ b/chromium/third_party/node/node_modules/path-is-inside/lib/path-is-inside.js
@@ -0,0 +1,28 @@
+"use strict";
+
+var path = require("path");
+
+module.exports = function (thePath, potentialParent) {
+ // For inside-directory checking, we want to allow trailing slashes, so normalize.
+ thePath = stripTrailingSep(thePath);
+ potentialParent = stripTrailingSep(potentialParent);
+
+ // Node treats only Windows as case-insensitive in its path module; we follow those conventions.
+ if (process.platform === "win32") {
+ thePath = thePath.toLowerCase();
+ potentialParent = potentialParent.toLowerCase();
+ }
+
+ return thePath.lastIndexOf(potentialParent, 0) === 0 &&
+ (
+ thePath[potentialParent.length] === path.sep ||
+ thePath[potentialParent.length] === undefined
+ );
+};
+
+function stripTrailingSep(thePath) {
+ if (thePath[thePath.length - 1] === path.sep) {
+ return thePath.slice(0, -1);
+ }
+ return thePath;
+}