You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/services/url.service.js

28 lines
894 B

const urlGenerator = (url, parameters = {}) => {
let urlPath = url.split("/");
let newPath = [];
for (const iterator of urlPath) {
if (iterator.startsWith(":")) {
if (iterator.endsWith("?")) {
if (parameters.hasOwnProperty(iterator.slice(1, -1))) {
newPath.push(parameters[iterator.slice(1, -1)]);
}
} else {
console.assert(
parameters.hasOwnProperty(iterator.slice(1)),
'parameter "' +
iterator.slice(1) +
'" not specified in parameters.'
);
newPath.push(parameters[iterator.slice(1)]);
}
} else {
newPath.push(iterator);
}
}
return ("/" + newPath.join("/")).replace("//", "/");
};
export { urlGenerator };