Have ideas to improve npm?Join in the discussion! »

    url-toolkit
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.2 • Public • Published

    npm version

    URL Toolkit

    Lightweight library to build an absolute URL from a base URL and a relative URL, written from the spec (RFC 1808). Initially part of HLS.JS.

    Methods

    buildAbsoluteURL(baseURL, relativeURL, opts={})

    Build an absolute URL from a relative and base one.

    URLToolkit.buildAbsoluteURL('http://a.com/b/cd', 'e/f/../g'); // => http://a.com/b/e/g

    If you want to ensure that the URL is treated as a relative one you should prefix it with ./.

    URLToolkit.buildAbsoluteURL('http://a.com/b/cd', 'a:b'); // => a:b
    URLToolkit.buildAbsoluteURL('http://a.com/b/cd', './a:b'); // => http://a.com/b/a:b

    By default the paths will not be normalized unless necessary, according to the spec. However you can ensure paths are always normalized by setting the opts.alwaysNormalize option to true.

    URLToolkit.buildAbsoluteURL('http://a.com/b/cd', '/e/f/../g'); // => http://a.com/e/f/../g
    URLToolkit.buildAbsoluteURL('http://a.com/b/cd', '/e/f/../g', {
      alwaysNormalize: true,
    }); // => http://a.com/e/g

    normalizePath(url)

    Normalizes a path.

    URLToolkit.normalizePath('a/b/../c'); // => a/c

    parseURL(url)

    Parse a URL into its separate components.

    URLToolkit.parseURL('http://a/b/c/d;p?q#f'); // =>
    /* {
    	scheme: 'http:',
    	netLoc: '//a',
    	path: '/b/c/d',
    	params: ';p',
    	query: '?q',
    	fragment: '#f'
    } */

    buildURLFromParts(parts)

    Puts all the parts from parseURL() back together into a string.

    Example

    var URLToolkit = require('url-toolkit');
    var url = URLToolkit.buildAbsoluteURL(
      'https://a.com/b/cd/e.m3u8?test=1#something',
      '../z.ts?abc=1#test'
    );
    console.log(url); // 'https://a.com/b/z.ts?abc=1#test'

    Browser

    This can also be used in the browser thanks to jsDelivr:

    <head>
      <script
        type="text/javascript"
        src="https://cdn.jsdelivr.net/npm/url-toolkit@2"
      ></script>
      <script type="text/javascript">
        var url = URLToolkit.buildAbsoluteURL(
          'https://a.com/b/cd/e.m3u8?test=1#something',
          '../z.ts?abc=1#test'
        );
        console.log(url); // 'https://a.com/b/z.ts?abc=1#test'
      </script>
    </head>

    Install

    npm i url-toolkit

    DownloadsWeekly Downloads

    326,986

    Version

    2.2.2

    License

    Apache-2.0

    Unpacked Size

    33.7 kB

    Total Files

    11

    Last publish

    Collaborators

    • avatar