Blame view

node_modules/original/index.js 1.02 KB
aaac7fed   liuqimichale   add
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
  'use strict';
  
  var parse = require('url-parse');
  
  /**
   * Transform an URL to a valid origin value.
   *
   * @param {String|Object} url URL to transform to it's origin.
   * @returns {String} The origin.
   * @api public
   */
  function origin(url) {
    if ('string' === typeof url) url = parse(url);
  
    //
    // 6.2.  ASCII Serialization of an Origin
    // http://tools.ietf.org/html/rfc6454#section-6.2
    //
    if (!url.protocol || !url.hostname) return 'null';
  
    //
    // 4. Origin of a URI
    // http://tools.ietf.org/html/rfc6454#section-4
    //
    // States that url.scheme, host should be converted to lower case. This also
    // makes it easier to match origins as everything is just lower case.
    //
    return (url.protocol +'//'+ url.host).toLowerCase();
  }
  
  /**
   * Check if the origins are the same.
   *
   * @param {String} a URL or origin of a.
   * @param {String} b URL or origin of b.
   * @returns {Boolean}
   * @api public
   */
  origin.same = function same(a, b) {
    return origin(a) === origin(b);
  };
  
  //
  // Expose the origin
  //
  module.exports = origin;