Categorize URLs by semantics.
Why?
- Validate user input.
- Route traffic more easily.
- Ignore certain types of URLs.
Install
npm install url-type --save
Usage
Get it into your program.
const urlType = ;
Ask if a URL is relative or absolute.
const category = ;console; // => true
Save time and space.
const relative = urlType;console; // => true
But that is boring, so let's find out what it is relative to.
const relativity = urlType;console; // => 'scheme'
API
urlType(url)
Returns a string for the URL type, either absolute
or relative
.
urlType.isAbsolute(url)
Returns a boolean for whether the URL has a scheme.
urlType.isRelative(url)
Returns a boolean for whether the URL is relative, which means it is not absolute. That is, anything that does not start with a scheme, such as foo
, ./foo
, ../foo
, /foo
, or //foo.com
.
urlType.isSchemeRelative(url)
Returns a boolean for whether the URL is relative to a scheme. That is, anything that starts with two //
slashes, such as //foo.com
.
urlType.isOriginRelative(url)
Returns a boolean for whether the URL is relative to an origin. That is, anything that starts with a /
slash except for scheme relative URLs, such as /foo
.
urlType.isDirectoryRelative(url)
Returns a boolean for whether the URL is relative to a directory. That is, anything that doesn't start with a /
slash or a scheme, such as as foo
, ./foo
, or ../foo
.
urlType.relativeTo(url)
Returns a string for the type of relativity, one of scheme
, origin
, or directory
. Returns null
If the URL is not relative.
urlType.hasHost(url)
Returns a boolean for whether the URL has a host.
urlType.getScheme(url)
Returns the scheme name.
Example: https
or mailto
urlType.getScheme.keepSeparator(url)
Returns the scheme name with separator.
Example: https://
or mailto:
urlType.isHttpOrHttps(url)
Returns a boolean for whether the URL has an http
or https
scheme.
url
Type: string
A URL to analyze, such as http://example.com
.
Contributing
See our contributing guidelines for more details.
- Fork it.
- Make a feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
License
Go make something, dang it.