Documentation

Query et filtres

Attacher des schemas filter-query aux routes et consommer un etat d'URL type.

Le router s’integre avec @plumile/filter-query afin qu’une route possede un schema de query et expose des filtres fortement types.

import { defineSchema, numberField, stringField } from '@plumile/filter-query';
import { r, useFilters, useNavigate } from '@plumile/router';

export const productFilters = defineSchema({
  page: numberField(),
  title: stringField(['contains']),
});

export const routes = [
  r({
    path: '/products',
    querySchema: productFilters,
    prepare: ({ filters }) => ({ page: filters.page?.eq ?? 1 }),
    render: () => null,
  }),
];

Le schema est le contrat. Utilisez-le pour normaliser les valeurs par defaut, inspecter les diagnostics et serialiser les liens de facon coherente.