@microbitsclub/paywall-solid
Version:
Solid components for Microbits paywalls
31 lines (30 loc) • 844 B
JavaScript
export const stringifyUrl = (config) => {
const { proto, domain, path, query } = config;
let url = domain ? (proto ?? 'https') + '://' + domain : '';
if (path) {
if (typeof path === 'string') {
for (const x of path.split('/')) {
if (x.length > 0) {
url += '/' + x;
}
}
if (path[path.length - 1] === '/') {
url += '/';
}
}
else if (path.length > 0) {
url += '/' + path.join('/');
}
}
let queries = [];
for (let k in query) {
const v = query[k];
if (v !== undefined) {
queries.push(`${k}=${encodeURIComponent(query[k])}`);
}
}
if (queries.length > 0) {
url += '?' + queries.join('&');
}
return url;
};