1 | ;
|
2 |
|
3 | const url = require("url");
|
4 |
|
5 | module.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 | };
|