Ghost/ghost/admin/app/helpers/set-query-params.js
Susheel Thapa 2e5fdffe32
Fixed typos (#18648)
Co-authored-by: Daniel Lockyer <daniellockyer@fastmail.com>
2023-10-31 15:21:44 +00:00

35 lines
901 B
JavaScript

import {helper} from '@ember/component/helper';
/**
* Usage:
*
* ```hbs
* {{set-url-query 'https://myurl.com' utm_source='admin'}}
* ```
*
* This example will return https://myurl.com?utm_source=admin
*
* You can set every query/search parameter you want. It will override existing parameters if they are already set.
*/
export function setQueryParams([url], parameters) {
if (url) {
// Do some magic
try {
const parsed = new URL(url);
for (const key of Object.keys(parameters)) {
parsed.searchParams.set(key, parameters[key]);
}
return parsed.href;
} catch (e) {
// Invalid url. Just pass the original.
// eslint-disable-next-line no-console
console.error(e);
return url;
}
}
return '';
}
export default helper(setQueryParams);