{ "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@" }