@opengis/vite-page
Version:
Vite SSR Multi Page plugin
21 lines (16 loc) • 824 B
JavaScript
import { filters } from './seo.js';
const matches = { order: 'sort' };
const values = Object.keys(filters || {})
.reduce((acc, curr) => Object.assign(acc, { [filters[curr]?.query || filters[curr]]: curr?.query || curr }), {});
export default function original2cleanUrl(url, route = {}) {
if (!url) return null;
const filterQuery = route.query.filter;
const sufix = Object.keys(route.query || {})
.filter(key => ['search', 'page', 'order', 'limit'].includes(key))
.map(key => `${matches[key] || key}=${route.query[key]}`)
.join(';');
const result = filterQuery?.split?.('|')?.reduce?.((acc, curr) => {
return values[curr] ? `${acc}/${values[curr]}` : acc;
}, route.path) || route.path;
return sufix ? `${result}/${sufix}/` : `${result}/`;
}