Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pathurl

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pathurl

Node.js path API but for URLs. Works everywhere.

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

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 --coverage
    
  • Build the module and output in ./dist folder.

    bun run build
    

License

This repository uses MIT license. See LICENSE for full license text.

Keywords

FAQs

Package last updated on 10 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc