@le-pepe/url-helper
v1.3.0
Published
A lightweight JavaScript utility for parsing, constructing, normalizing, and manipulating URLs. Supports both browser and Node.js environments.
Readme
@le-pepe/url-helper
A lightweight and versatile URL helper for JavaScript & TypeScript
[![npm downloads][npm-downloads-src]][npm-downloads-href]
🚀 Features
✅ Parse, build, join, and normalize URLs
✅ Query parameter manipulation
✅ Force HTTP or HTTPS with priority rules
✅ Works in both Node.js & browser environments
✅ Compatible with React, Vue, Astro, and more
📦 Installation
Install via npm or yarn:
npm install @le-pepe/url-helper
# or
yarn add @le-pepe/url-helper🔧 Usage
Importing
import URLHelper from "@le-pepe/url-helper"; // ESM
// or
const URLHelper = require("@le-pepe/url-helper"); // CommonJS🌐 Parsing URLs
Extract components from a URL.
const parsed = URLHelper.parse("example.com", { forceHttps: true });
console.log(parsed);
// Output:
// {
// protocol: "https:",
// host: "example.com",
// pathname: "/",
// search: "",
// hash: "",
// params: {}
// }🔗 Building URLs
Construct a URL from its components.
const url = URLHelper.build({ host: "example.com", pathname: "/path" }, { forceHttp: true });
console.log(url); // "http://example.com/path"📂 Joining Paths
Join a base URL with multiple segments.
const fullUrl = URLHelper.join("https://example.com/base", "subpath", "file.html");
console.log(fullUrl); // "https://example.com/base/subpath/file.html"🛠 Normalizing URLs
Removes redundant . and .. segments.
const normalized = URLHelper.normalize("https://example.com/a/./b/../c");
console.log(normalized); // "https://example.com/a/c"🔍 Modifying Query Parameters
Easily add or update query parameters.
const updatedUrl = URLHelper.setQueryParams("https://example.com", { foo: "bar", baz: "123" });
console.log(updatedUrl); // "https://example.com/?foo=bar&baz=123"⚙️ Options
All functions accept an optional configuration object:
| Option | Type | Default | Description |
|-------------|--------|---------|--------------------------------------------------|
| forceHttps | boolean | false | Forces https://, overriding forceHttp. |
| forceHttp | boolean | false | Forces http://, ignored if forceHttps is true. |
🛠 Building & Testing
Build the package:
npm run buildWatch mode for development:
npm run build:watchRun tests:
TO DO: Implement testing
📝 License
This project is licensed under the MIT License – see the LICENSE file for details.
[npm-downloads-src]: https://img.shields.io/npm/dm/@le-pepe/url-helper.svg?style=flat&colorA=020420&colorB=00DC82
[npm-downloads-href]: https://npmjs.com/package/@le-pepe/url-helper
