@ricsam/quickjs-path
v0.2.17
Published
POSIX path utilities (join, resolve, dirname, basename, etc.) for QuickJS runtime
Downloads
345
Maintainers
Readme
@ricsam/quickjs-path
POSIX path utilities (join, resolve, dirname, basename, etc.) for QuickJS runtime.
Note: This is a low-level package. For most use cases, use
@ricsam/quickjs-runtimewithcreateRuntime()instead.
Installation
bun add @ricsam/quickjs-pathSetup
import { setupPath } from "@ricsam/quickjs-path";
const handle = setupPath(context, {
cwd: "/home/user/project", // Current working directory for resolve()
});Injected Globals
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 (:)
Usage in QuickJS
// 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"