POSIX path utilities (join, resolve, dirname, basename, etc.) for isolated-vm V8 sandbox
npm install @ricsam/isolate-pathNode.js-compatible path utilities for POSIX paths in isolated-vm V8 sandbox.
``bash`
npm add @ricsam/isolate-path
`typescript
import { setupPath } from "@ricsam/isolate-path";
// Default: uses "/" as working directory
const handle = await setupPath(context);
// Custom working directory for path.resolve()
const handle = await setupPath(context, { cwd: "/home/user/project" });
`
- cwd - Current working directory for path.resolve(). Defaults to "/".
- path.join(...paths) - Join path segmentspath.resolve(...paths)
- - Resolve to absolute path (uses configured cwd as base)path.normalize(path)
- - Normalize a pathpath.basename(path, ext?)
- - Get file namepath.dirname(path)
- - Get directory namepath.extname(path)
- - Get file extensionpath.isAbsolute(path)
- - Check if path is absolutepath.parse(path)
- - Parse into componentspath.format(obj)
- - Format from componentspath.relative(from, to)
- - Get relative pathpath.sep
- - Path separator (/)path.delimiter
- - Path delimiter (:)path.posix
- - Alias to path (POSIX-only implementation)
`javascript
// Join paths
path.join('/foo', 'bar', 'baz'); // "/foo/bar/baz"
path.join('foo', 'bar', '..', 'baz'); // "foo/baz"
// Resolve to absolute (relative paths use configured cwd)
path.resolve('foo/bar'); // Uses cwd + "/foo/bar"
path.resolve('/foo', 'bar'); // "/foo/bar" (absolute paths ignore cwd)
// Parse and format
const parsed = path.parse('/foo/bar/baz.txt');
// { root: "/", dir: "/foo/bar", base: "baz.txt", ext: ".txt", name: "baz" }
path.format({ dir: '/foo/bar', base: 'baz.txt' }); // "/foo/bar/baz.txt"
// Other utilities
path.basename('/foo/bar/baz.txt'); // "baz.txt"
path.dirname('/foo/bar/baz.txt'); // "/foo/bar"
path.extname('file.tar.gz'); // ".gz"
path.isAbsolute('/foo'); // true
``
MIT