Socket
Socket
Sign inDemoInstall

@jsenv/urls

Package Overview
Dependencies
Maintainers
2
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsenv/urls - npm Package Compare versions

Comparing version 2.3.2 to 2.4.0

2

package.json
{
"name": "@jsenv/urls",
"version": "2.3.2",
"version": "2.4.0",
"license": "MIT",

@@ -5,0 +5,0 @@ "repository": {

@@ -17,2 +17,3 @@ // tslint:disable:ordered-imports

ensurePathnameTrailingSlash,
removePathnameTrailingSlash,
asUrlUntilPathname,

@@ -19,0 +20,0 @@ } from "./url_utils.js";

@@ -170,7 +170,8 @@ import { urlToExtension } from "./url_to_extension.js";

export const ensurePathnameTrailingSlash = (url) => {
const transformUrlPathname = (url, transformer) => {
if (typeof url === "string") {
const urlObject = new URL(url);
const { pathname } = urlObject;
if (pathname.endsWith("/")) {
const pathnameTransformed = transformer(pathname);
if (pathnameTransformed === pathname) {
return url;

@@ -184,11 +185,19 @@ }

const { search, hash } = urlObject;
const urlWithTrailingSlash = `${origin}${pathname}/${search}${hash}`;
return urlWithTrailingSlash;
const urlWithPathnameTransformed = `${origin}${pathnameTransformed}${search}${hash}`;
return urlWithPathnameTransformed;
}
if (url.pathname.endsWith("/")) {
return url;
}
url.pathname += "/";
const pathnameTransformed = transformer(url.pathname);
url.pathname = pathnameTransformed;
return url;
};
export const ensurePathnameTrailingSlash = (url) => {
return transformUrlPathname(url, (pathname) => {
return pathname.endsWith("/") ? pathname : `${pathname}/`;
});
};
export const removePathnameTrailingSlash = (url) => {
return transformUrlPathname(url, (pathname) => {
return pathname.endsWith("/") ? pathname.slice(0, -1) : pathname;
});
};

@@ -195,0 +204,0 @@ export const asUrlUntilPathname = (url) => {

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