UNPKG

@yaagoub/decorators

Version:

Angular decorators

21 lines 4.33 kB
function formatUrlPath({ baseUrl, path, paths }) { let url = (baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl) + (path.startsWith('/') ? path : `/${path}`); Object.keys(paths).forEach(key => { url = url.replace(new RegExp(`{${key}}`, 'g'), encodeURIComponent(paths[key])); }); return url; } function formatUrlQuery({ url, queries }) { const queryString = Object.keys(queries) .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(queries[key])}`) .join('&'); return queryString ? `${url}${url.includes('?') ? '&' : '?'}${queryString}` : url; } export function formatUrl({ baseUrl, path, queries, paths }) { let url = formatUrlPath({ baseUrl, path, paths }); if (queries && Object.keys(queries).length > 0) { url = formatUrlQuery({ url, queries }); } return url; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGVjb3JhdG9ycy9zcmMvaHR0cC9oZWxwZXJzL2Zvcm1hdC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFJNUM7SUFDQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEgsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDL0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUdyQztJQUNDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3JDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNwRixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFNdEQ7SUFFRCxJQUFJLEdBQUcsR0FBRyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFbEQsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsR0FBRyxHQUFHLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmb3JtYXRVcmxQYXRoKHsgYmFzZVVybCwgcGF0aCwgcGF0aHMgfToge1xuICBiYXNlVXJsOiBzdHJpbmcsXG4gIHBhdGg6IHN0cmluZyxcbiAgcGF0aHM6IHsgW2tleTogc3RyaW5nXTogYW55IH1cbn0pIHtcbiAgbGV0IHVybCA9IChiYXNlVXJsLmVuZHNXaXRoKCcvJykgPyBiYXNlVXJsLnNsaWNlKDAsIC0xKSA6IGJhc2VVcmwpICsgKHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWApO1xuICBPYmplY3Qua2V5cyhwYXRocykuZm9yRWFjaChrZXkgPT4ge1xuICAgIHVybCA9IHVybC5yZXBsYWNlKG5ldyBSZWdFeHAoYHske2tleX19YCwgJ2cnKSwgZW5jb2RlVVJJQ29tcG9uZW50KHBhdGhzW2tleV0pKTtcbiAgfSk7XG4gIHJldHVybiB1cmw7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVybFF1ZXJ5KHsgdXJsLCBxdWVyaWVzIH06IHtcbiAgdXJsOiBzdHJpbmcsXG4gIHF1ZXJpZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH1cbn0pIHtcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3Qua2V5cyhxdWVyaWVzKVxuICAgIC5tYXAoa2V5ID0+IGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyaWVzW2tleV0pfWApXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gcXVlcnlTdHJpbmcgPyBgJHt1cmx9JHt1cmwuaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/J30ke3F1ZXJ5U3RyaW5nfWAgOiB1cmw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwoeyBiYXNlVXJsLCBwYXRoLCBxdWVyaWVzLCBwYXRocyB9OlxuICB7XG4gICAgYmFzZVVybDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyAsXG4gICAgcXVlcmllczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICBwYXRoczogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICB9XG4pOiBzdHJpbmcge1xuICBsZXQgdXJsID0gZm9ybWF0VXJsUGF0aCh7IGJhc2VVcmwsIHBhdGgsIHBhdGhzIH0pO1xuXG4gIGlmIChxdWVyaWVzICYmIE9iamVjdC5rZXlzKHF1ZXJpZXMpLmxlbmd0aCA+IDApIHtcbiAgICB1cmwgPSBmb3JtYXRVcmxRdWVyeSh7IHVybCwgcXVlcmllcyB9KTtcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59XG4iXX0=