Implémentation de l’API URL du navigateur. Par défaut disponible sur le namespace Global comme pour les timers. URL est vraiment pratique pour la création et manipulation d’URL (comme pour path beaucoup de développeurs peu expérimentés vont construire des solutions maison alors que cet API leur permettrait de faire ce qu’ils souhaitent très simplement).
À mon goût cela devrait être beaucoup plus utilisé (même pour déclarer et identifier une URL dans un code JavaScript). L’évolution et la maintenance des codes n’en seront que bien plus simple.
const myURL = new URL("https://example.org/?abc=123");
console.log(myURL.searchParams.get("abc"));
// Prints 123
myURL.searchParams.append("abc", "xyz");
console.log(myURF.href);
// Prints https://example.org/?abc=132&abc=xyz
myURL.searchParams.delete("abc");
myURL.searchParams.set("a", "b");
console.log(myURL.href);
// Prints https://example.org/?a=b
Le constructeur s’occupera de valider l’URL pour vous (une erreur sera throw s’il l’URL n’est pas valide). Vous pourrez ensuite récupérer toutes les informations que vous souhaitez sur votre URL (protocol, username, password, hostname, port, pathname, query etc).
URL peut être aussi utilisé en ESM avec import.meta.url pour remplacer __dirname
.
import { readFileSync } from "node:fs";
const buffer = readFileSync(new URL("./data.proto", import.meta.url));
Bonus: How to migrate from querystring to URLSearchParams in Node.js
// Avant
let url = null;
try {
url = new URL(input, base);
} catch {}
// Après
const url = URL.parse(input, base);
- WHATWG-compliant and fast URL parser written in modern C++
- Yagiz Nizipli & Daniel Lemire | Ada: Parsing Millions of URLs per Second
⬅️ 🌟 Les différents modules core: Timers | ➡️ 🌟 Les différents modules core: OS