pathurl
v1.0.0
Published
Node.js path API but for URLs. Works everywhere.
Downloads
13
Readme
pathurl
Node.js path API but for URLs. Works on all runtimes and platforms.
Usage
All functions accept both a url string or a native URL object and always return a URL object wherever possible.
basename
Return the last portion of a url.
import { basename } from "pathurl";
basename("https://deno.land/std/assert/mod.ts"); // "mod.ts"
basename("https://deno.land/"); // "deno.land"dirname
Return the parent directory url of a url path.
import { dirname } from "pathurl";
dirname("https://deno.land/std/assert/mod.ts");
// "https://deno.land/std/assert"extname
Return the extension of a url.
import { extname } from "pathurl";
extname("https://deno.land/std/assert/mod.ts"); // ".ts"
extname("https://deno.land/") // ".land"format
Generate a url from ParsedURL object.
import { format } from "pathurl";
format({
dir: "https://deno.land/std/assert",
base: "mod.ts"
}); // "https://deno.land/std/assert/mod.ts"join
Join all given a sequence of url and paths, then normalizes the resulting url.
import { join } from "pathurl";
join("https://deno.land", "std", "assert", "mod.ts");
// "https://deno.land/std/assert/mod.ts"normalize
Normalize a url, resolving '..' and '.' segments and extra '/'s (if any).
import { normalize } from "pathurl";
normalize("https://deno.land/std/assert//../async/retry.ts/");
// "https://deno.land/std/async/retry.ts/"parse
Return a ParsedURL object of the url.
import { parse } from "pathurl";
parse("https://deno.land/std/assert/mod.ts");
// {
// dir: "https://deno.land/std/assert",
// root: "https://deno.land",
// base: "mod.ts",
// name: "mod",
// ext: ".ts"
// }relative
Return the relative url from from to to based on from as base url.
import { relative } from "pathurl";
relative("https://deno.land/std/assert/mod.ts", "./equal.ts");
// "https://deno.land/std/assert/equal.ts"resolve
Resolve url and path segments into an absolute url.
import { resolve } from "pathurl";
resolve("https://deno.land", "std", "assert", "mod.ts", "../assert.ts");
// "https://deno.land/std/assert/assert.ts"strip
Strips any hash (eg. #header) or search parameters (eg. ?foo=bar) from the provided URL.
(Mutates the original url provided)
import { strip } from "pathurl";
const url = new URL("https://deno.land/std/assert/mod.ts?foo=bar#header");
strip(url);
// url is now "https://deno.land/std/assert/mod.ts"Building
Clone this repository.
Run tests and ensure that all pass along with 100% code coverage.
bun test --coverageBuild the module and output in
./distfolder.bun run build
License
This repository uses MIT license. See LICENSE for full license text.
