UNPKG

480 BJavaScriptView Raw
1"use strict";
2
3const url = require("url");
4
5module.exports = function makeAbsolute(location, val) {
6 if (!val) return val;
7 if (/^\/\/\w/.test(val)) return location.protocol + val;
8 if (!val.startsWith("/")) return val;
9
10 return url.format(Object.assign(
11 {},
12 location,
13 Object.entries(url.parse(val))
14 .reduce(cleanNullValues, {})
15 ));
16
17 function cleanNullValues(obj, [key, value]) {
18 if (!value) return obj;
19
20 obj[key] = value;
21 return obj;
22 }
23};