aboutsummaryrefslogtreecommitdiff
path: root/node_modules/path-is-inside/lib
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/path-is-inside/lib
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/path-is-inside/lib')
-rw-r--r--node_modules/path-is-inside/lib/path-is-inside.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/path-is-inside/lib/path-is-inside.js b/node_modules/path-is-inside/lib/path-is-inside.js
new file mode 100644
index 00000000..596dfd3b
--- /dev/null
+++ b/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;
+}