UNPKG

iso-url

Version:

Isomorphic/Universal WHATWG URL API with some support legacy node URL API

33 lines (26 loc) 791 B
'use strict' const { URLWithLegacySupport, format } = require('./url') /** * @param {string | undefined} url * @param {any} [location] * @param {any} [protocolMap] * @param {any} [defaultProtocol] */ module.exports = (url, location = {}, protocolMap = {}, defaultProtocol) => { let protocol = location.protocol ? location.protocol.replace(':', '') : 'http' // Check protocol map protocol = (protocolMap[protocol] || defaultProtocol || protocol) + ':' let urlParsed try { urlParsed = new URLWithLegacySupport(url) } catch (err) { urlParsed = {} } const base = Object.assign({}, location, { protocol: protocol || urlParsed.protocol, host: location.host || urlParsed.host }) return new URLWithLegacySupport(url, format(base)).toString() }