You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
570 B
JavaScript

"use strict";
const assureArray = require("assure-array");
function objectifyUrl(url) {
if (typeof url === "string") {
return { url: url };
} else {
return url;
}
}
module.exports = function normalizeUrls(urls, {parentUrl} = {}) {
if (urls == null) {
return [];
} else {
return assureArray(urls).map((url) => {
let urlObject = objectifyUrl(url);
if (parentUrl != null) {
urlObject.depth = (urlObject.sameDepth)
? parentUrl.depth
: parentUrl.depth + 1;
urlObject.parentUrlId = parentUrl.id;
}
return urlObject;
});
}
};