• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"use strict";
2
3var path = require("path");
4
5module.exports = function (thePath, potentialParent) {
6    // For inside-directory checking, we want to allow trailing slashes, so normalize.
7    thePath = stripTrailingSep(thePath);
8    potentialParent = stripTrailingSep(potentialParent);
9
10    // Node treats only Windows as case-insensitive in its path module; we follow those conventions.
11    if (process.platform === "win32") {
12        thePath = thePath.toLowerCase();
13        potentialParent = potentialParent.toLowerCase();
14    }
15
16    return thePath.lastIndexOf(potentialParent, 0) === 0 &&
17		(
18			thePath[potentialParent.length] === path.sep ||
19			thePath[potentialParent.length] === undefined
20		);
21};
22
23function stripTrailingSep(thePath) {
24    if (thePath[thePath.length - 1] === path.sep) {
25        return thePath.slice(0, -1);
26    }
27    return thePath;
28}
29