Blame view

node_modules/url-toolkit/README.md 2.44 KB
2a09d1a4   liuqimichale   添加宜春 天水 宣化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  [![npm version](https://badge.fury.io/js/url-toolkit.svg)](https://badge.fury.io/js/url-toolkit)
  [![Build Status](https://travis-ci.org/tjenkinson/url-toolkit.svg?branch=master)](https://travis-ci.org/tjenkinson/url-toolkit)
  
  # URL Toolkit
  Lightweight library to build an absolute URL from a base URL and a relative URL, written from [the spec (RFC 1808)](https://tools.ietf.org/html/rfc1808). Initially part of [HLS.JS](https://github.com/dailymotion/hls.js).
  
  ## Methods
  
  ### `buildAbsoluteURL(baseURL, relativeURL, opts={})`
  Build an absolute URL from a relative and base one.
  
  ```javascript
  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 `./`.
  
  ```javascript
  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`.
  
  ```javascript
  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.
  
  ```javascript
  URLToolkit.normalizePath('a/b/../c'); // => a/c
  ```
  
  ### `parseURL(url)`
  Parse a URL into its separate components.
  
  ```javascript
  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
  ```javascript
  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](https://github.com/jsdelivr/jsdelivr):
  ```html
  <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>
  ```