Skip to main content
Deno 2 is finally here 🎉️
Learn more

Shurley

deno npm jsr

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.

Some things to note:

  1. It doesn’t check if the URL exists, you can do that in many different ways.

  2. It assumes only http and https protocols for URLs.

  3. 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.6'; // or import shurley from 'https://deno.land/x/shurley@1.0.6/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.