Shurley
May 26, 2026 ยท View on GitHub
I'll give you the right URL, but don't call me Shirley!
Parses URLs from user input (with potential typos in protocols, bad copy+paste, etc.) and returns a proper URL.
It has no dependencies, and it's meant to be this simple.
This repo is originally kept on GitHub, and mirrored to Codeberg.
Some things to note:
-
It doesn't check if the URL exists, you can do that in many different ways.
-
It assumes only
httpandhttpsprotocols for URLs. -
If there's a "mistake" in the URL protocol, it defaults to
https.
Usage
It only has a single method: parse(url: string) which returns the same string, parsed.
Deno
import shurley from 'jsr:@brn/shurley@1.0.10'; // or import shurley from 'https://deno.land/x/shurley@1.0.10/mod.ts';
const parsedUrl = shurley.parse('example.com');
console.log(parsedUrl); // Outputs 'https://example.com'
Node/NPM
npm install --save-exact shurley
const shurley = require('shurley'); // or import shurley from 'shurley';
const parsedUrl = shurley.parse('example.com');
console.log(parsedUrl); // Outputs 'https://example.com'
Development
Requires deno.
make format
make test
Publishing
After committing and pushing with a new version in deno.json, just run make publish.