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.
 
 
 
 
 
 

39 lines
2.4 KiB

{
"name": "path-is-inside",
"description": "Tests whether one path is inside another path",
"keywords": [
"path",
"directory",
"folder",
"inside",
"relative"
],
"version": "1.0.0",
"author": {
"name": "Domenic Denicola",
"email": "domenic@domenicdenicola.com",
"url": "http://domenic.me"
},
"license": "WTFPL",
"repository": {
"type": "git",
"url": "git://github.com/domenic/path-is-inside.git"
},
"bugs": {
"url": "http://github.com/domenic/path-is-inside/issues"
},
"main": "lib/path-is-inside.js",
"scripts": {
"test": "mocha",
"lint": "jshint lib"
},
"devDependencies": {
"jshint": "~2.3.0",
"mocha": "~1.15.1"
},
"readme": "# Is This Path Inside This Other Path?\n\nIt turns out this question isn't trivial to answer using Node's built-in path APIs. A naive `indexOf`-based solution will fail sometimes on Windows, which is case-insensitive (see e.g. [isaacs/npm#4214][]). You might then think to be clever with `path.resolve`, but you have to be careful to account for situations whether the paths have different drive letters, or else you'll cause bugs like [isaacs/npm#4313][]. And let's not even get started on trailing slashes.\n\nThe **path-is-inside** package will give you a robust, cross-platform way of detecting whether a given path is inside another path.\n\n## Usage\n\nPretty simple. First the path being tested; then the potential parent. Like so:\n\n```js\nvar pathIsInside = require(\"path-is-inside\");\n\npathIsInside(\"/x/y/z\", \"/x/y\") // true\npathIsInside(\"/x/y\", \"/x/y/z\") // false\n```\n\n## OS-Specific Behavior\n\nLike Node's built-in path module, path-is-inside treats all file paths on Windows as case-insensitive, whereas it treats all file paths on *-nix operating systems as case-sensitive. Keep this in mind especially when working on a Mac, where, despite Node's defaults, the OS usually treats paths case-insensitively.\n\nIn practice, this means:\n\n```js\n// On Windows\n\npathIsInside(\"C:\\\\X\\\\Y\\\\Z\", \"C:\\\\x\\\\y\") // true\n\n// On *-nix, including Mac OS X\n\npathIsInside(\"/X/Y/Z\", \"/x/y\") // false\n```\n\n[isaacs/npm#4214]: https://github.com/isaacs/npm/pull/4214\n[isaacs/npm#4313]: https://github.com/isaacs/npm/issues/4313\n",
"readmeFilename": "README.md",
"homepage": "https://github.com/domenic/path-is-inside",
"_id": "path-is-inside@1.0.0",
"_from": "path-is-inside@"
}