Check if a path is inside another path
npm install is-path-inside
import isPathInside from 'is-path-inside';
isPathInside('a/b/c', 'a/b');
//=> true
isPathInside('a/b/c', 'x/y');
//=> false
isPathInside('a/b/c', 'a/b/c');
//=> false
isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus');
//=> true
Note that relative paths are resolved against process.cwd() to make them absolute.
[!IMPORTANT] This package is meant for use with path manipulation. It does not check if the paths exist nor does it resolve symlinks. You should not use this as a security mechanism to guard against access to certain places on the file system.
Type: string
The path that should be inside parentPath.
Type: string
The path that should contain childPath.
For symlink resolution and path existence checking, combine it with fs.realpathSync():
import {realpathSync} from 'node:fs';
isPathInside(realpathSync(childPath), realpathSync(parentPath));
Overall
Maintained
Code review
Latest release
Releases this year
Check if a path is inside another path
npm install is-path-inside
import isPathInside from 'is-path-inside';
isPathInside('a/b/c', 'a/b');
//=> true
isPathInside('a/b/c', 'x/y');
//=> false
isPathInside('a/b/c', 'a/b/c');
//=> false
isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus');
//=> true
Note that relative paths are resolved against process.cwd() to make them absolute.
[!IMPORTANT] This package is meant for use with path manipulation. It does not check if the paths exist nor does it resolve symlinks. You should not use this as a security mechanism to guard against access to certain places on the file system.
Type: string
The path that should be inside parentPath.
Type: string
The path that should contain childPath.
For symlink resolution and path existence checking, combine it with fs.realpathSync():
import {realpathSync} from 'node:fs';
isPathInside(realpathSync(childPath), realpathSync(parentPath));
Overall
Maintained
Code review
Latest release
Releases this year