You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
858 B
28 lines
858 B
"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; |
|
}
|
|
|