diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-02-20 17:16:29 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-02-20 17:16:29 +0100 |
commit | 0ad2935a1f6436d62251f30e826c9c78bfd49525 (patch) | |
tree | e9852ed84b8e6520361dbe514c98e13d69672be7 /node_modules/path-is-inside/lib/path-is-inside.js | |
parent | 23f4998dfec5edc8f0ce134d848c996d434181ba (diff) |
node_modules
Diffstat (limited to 'node_modules/path-is-inside/lib/path-is-inside.js')
-rw-r--r-- | node_modules/path-is-inside/lib/path-is-inside.js | 28 |
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 000000000..596dfd3b3 --- /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; +} |