|
|
- '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;
|