Files
klz-cables.com/.pnpm-store/v10/files/f0/56f1b2925952c3fc40c800dcb334fe071d812c0e9b9b4e2d68c18b866196cc9449702a28a1cd582610899bd664f808bb9879b6411dfc3f302de7e525771e32
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

34 lines
1.6 KiB
Plaintext

export const mergeQuery = (currentQuery, newQuery, options) => {
let page = 'page' in newQuery ? newQuery.page : currentQuery?.page;
const shouldResetPage = ['where', 'search', 'groupBy']?.some(key => key in newQuery && !['limit', 'page'].includes(key));
if (shouldResetPage) {
page = 1;
}
const shouldResetQueryByGroup = ['where', 'search', 'page', 'limit', 'groupBy', 'sort'].some(key => key in newQuery);
let mergedQueryByGroup = undefined;
if (!shouldResetQueryByGroup) {
// Deeply merge queryByGroup so we can send a partial update for a specific group
mergedQueryByGroup = {
...(currentQuery?.queryByGroup || {}),
...(newQuery.queryByGroup ? Object.fromEntries(Object.entries(newQuery.queryByGroup).map(([key, value]) => [key, {
...(currentQuery?.queryByGroup?.[key] || {}),
...value
}])) : {})
};
}
const mergedQuery = {
...currentQuery,
...newQuery,
columns: 'columns' in newQuery ? newQuery.columns : currentQuery.columns,
groupBy: 'groupBy' in newQuery ? newQuery.groupBy : currentQuery?.groupBy ?? options?.defaults?.groupBy,
limit: 'limit' in newQuery ? newQuery.limit : currentQuery?.limit ?? options?.defaults?.limit,
page,
preset: 'preset' in newQuery ? newQuery.preset : currentQuery?.preset,
queryByGroup: mergedQueryByGroup,
search: 'search' in newQuery ? newQuery.search : currentQuery?.search,
sort: 'sort' in newQuery ? newQuery.sort : currentQuery?.sort ?? options?.defaults?.sort,
where: 'where' in newQuery ? newQuery.where : currentQuery?.where
};
return mergedQuery;
};
//# sourceMappingURL=mergeQuery.js.map