saus
saus copied to clipboard
`parseRoutePattern` plugin hook
We currently use the regexparam library to parse route patterns, but it would be cool if plugins can override this and even provide support for values other than strings (eg: RegExp or options object).
https://github.com/alloc/saus/blob/052b3cc847c131bde25a2c463c59f858ad67c7c4/src/core/routes.ts#L96
The plugin hooks would work a lot like resolveId does.
const plugin: import("saus").Plugin = {
// The hook receives a route pattern and the route's config object,
// which should also be customizable through the plugin API.
parseRoutePattern(route, config) {
if (route instanceof RegExp) {
return {
// Match against a page path.
test: path => route.test(path),
// Render a page path for this route.
render: params => {
// TODO: inject our `params` into the `route.source` somehow
},
}
}
// Return falsy to defer to the next plugin hook.
return null
}
}