1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- /* eslint-disable */
- function normalizeUrl(pathComponents) {
- return pathComponents.reduce(function (accumulator, item) {
- switch (item) {
- case '..':
- accumulator.pop();
- break;
- case '.':
- break;
- default:
- accumulator.push(item);
- }
- return accumulator;
- }, []).join('/');
- }
- module.exports = function (urlString) {
- urlString = urlString.trim();
- if (/^data:/i.test(urlString)) {
- return urlString;
- }
- var protocol = urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : '';
- var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/');
- var host = components[0].toLowerCase().replace(/\.$/, '');
- components[0] = '';
- var path = normalizeUrl(components);
- return protocol + host + path;
- };
|