POSIX path utilities (join, resolve, dirname, basename, etc.) for QuickJS runtime
npm install @ricsam/quickjs-pathPOSIX path utilities (join, resolve, dirname, basename, etc.) for QuickJS runtime.
> Note: This is a low-level package. For most use cases, use @ricsam/quickjs-runtime with createRuntime() instead.
``bash`
bun add @ricsam/quickjs-path
`typescript
import { setupPath } from "@ricsam/quickjs-path";
const handle = setupPath(context, {
cwd: "/home/user/project", // Current working directory for resolve()
});
`
- path.join(...paths) - Join path segmentspath.resolve(...paths)
- - Resolve to absolute pathpath.dirname(path)
- - Get directory namepath.basename(path, ext?)
- - Get base namepath.extname(path)
- - Get extensionpath.normalize(path)
- - Normalize pathpath.isAbsolute(path)
- - Check if absolutepath.relative(from, to)
- - Get relative pathpath.parse(path)
- - Parse into componentspath.format(pathObject)
- - Format from componentspath.sep
- - Path separator (/)path.delimiter
- - Path delimiter (:)
`javascript
// Join paths
path.join("/foo", "bar", "baz"); // "/foo/bar/baz"
path.join("/foo", "../bar"); // "/bar"
// Resolve to absolute path
path.resolve("foo", "bar"); // "/home/user/project/foo/bar"
path.resolve("/foo", "bar"); // "/foo/bar"
// Directory and base names
path.dirname("/foo/bar/baz.txt"); // "/foo/bar"
path.basename("/foo/bar/baz.txt"); // "baz.txt"
path.basename("/foo/bar/baz.txt", ".txt"); // "baz"
// Extension
path.extname("index.html"); // ".html"
path.extname("index."); // "."
path.extname("index"); // ""
// Normalize
path.normalize("/foo/bar//baz/./qux/../"); // "/foo/bar/baz"
// Check absolute
path.isAbsolute("/foo"); // true
path.isAbsolute("foo"); // false
// Relative path
path.relative("/foo/bar", "/foo/baz"); // "../baz"
// 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"
``