UNPKG

@opengis/vite-page

Version:

Vite SSR Multi Page plugin

24 lines (18 loc) 1.06 kB
import { filters } from './seo.js'; const matches = { sort: 'order' }; export default function clean2originalUrl(url) { const root = `/${url.split('/').filter(el => el)[0]}`; const queryFilters = url.split('/').filter(el => el && !['page', 'search', 'sort', 'limit'].find(item => el.includes(item))).slice(1,); const suffix = url.match(/(\w+)=(\w+)/g)?.map(el => ({ key: el.split('=')[0], value: el.split('=')[1] })).filter(el => ['page', 'sort', 'search', 'limit'].includes(el.key)).reduce((acc, curr, i, arr) => { return acc + `${matches[curr.key] || curr.key}=${curr.value}${arr.length > i + 1 ? '&' : ''}`; }, ''); const filtered = queryFilters?.reduce?.((acc, curr) => { const join = acc?.includes('?') ? '|' : '?filter='; return filters?.[curr] ? `${acc}${join}${filters?.[curr]?.query || filters?.[curr]}` : acc; }, root) || root; if (suffix) { const join = queryFilters?.length ? '&' : '?'; return `${filtered}${join}${suffix}`; } return filtered; }