Blame view

node_modules/path-is-inside/lib/path-is-inside.js 858 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
  }