Introduction to RelateURL
RelateURL is a robust JavaScript library designed to handle various URL management operations seamlessly. Whether you are working on a web application, a node.js server, or simple scripts, RelateURL provides a rich set of APIs to make URL handling straightforward and efficient.
Basic Usage
You can easily import and use RelateURL in your project:
const RelateUrl = require('relateurl');
API Examples
1. Normalize URLs
Normalize a given URL to its simplest form.
const options = { defaultPorts: { ws: 80, wss: 443 } }; const url = new RelateUrl('http://example.com./a/../b/./c/../?a=b#hash', options); console.log(url.toString()); // "http://example.com/b/?a=b#hash"
2. Resolve Relative URLs
Resolve a relative URL to an absolute URL.
const baseUrl = 'http://example.com/some/path/index.html'; const relativeUrl = '../images/logo.png'; const resolvedUrl = RelateUrl.resolve(baseUrl, relativeUrl); console.log(resolvedUrl); // "http://example.com/images/logo.png"
3. Convert to Relative URLs
Convert an absolute URL to a relative URL.
const baseUrl = 'http://example.com/some/path/index.html'; const absoluteUrl = 'http://example.com/images/logo.png'; const relativeUrl = RelateUrl.relate(baseUrl, absoluteUrl); console.log(relativeUrl); // "../images/logo.png"
4. Strip Default Ports
Remove default ports from a URL.
const url = new RelateUrl('http://example.com:80/path'); console.log(url.toString()); // "http://example.com/path"
5. Encode / Decode URLs
Encode and decode URLs to ensure proper formatting.
const encodedUrl = RelateUrl.encode('http://example.com/some path/'); console.log(encodedUrl); // "http://example.com/some%20path/" const decodedUrl = RelateUrl.decode(encodedUrl); console.log(decodedUrl); // "http://example.com/some path/"
App Example
Here’s an example of a small application that fetches data from a URL and normalizes it.
const https = require('https'); const RelateUrl = require('relateurl'); const fetchData = (url) => { https.get(RelateUrl.normalize(url), (resp) => { let data = ''; // A chunk of data has been received. resp.on('data', (chunk) => { data += chunk; }); // The whole response has been received. resp.on('end', () => { console.log(JSON.parse(data)); }); }).on('error', (err) => { console.log('Error: ' + err.message); }); }; const url = 'https://jsonplaceholder.typicode.com/posts'; fetchData(url);
With this approach, you can securely fetch data from any given URL by ensuring the URL is normalized and well-formed.
Hash: 9472cdc6589ef15bf4e6c98d4b9577250550cbcef2ae59c4c96bd4adc6dcd00e