🚨 Disclaimer: Routify 3 is currently in Release Candidate stage.
Please be aware that while the documentation is comprehensive, it may contain inaccuracies or errors. The codebase is also subject to changes that could affect functionality. We appreciate your understanding and welcome any feedback or contributions.
api
Plugins
Plugins can be created with the following structure
export default options => ({
name: 'string',
before: 'string', // optional plugin name this plugin should run before
after: 'string', // optional plugin name this plugin should run after
build: ({ instance }) => void
})
Example
// this plugin sorts routes by the index prefixed to their names
// eg. 1.guide.svelte, 2.api.svelte
export default options => ({
name: 'indexByName',
// we want to run our plugin before we write our routes to disk
before: 'exporter',
build: ({ instance }) => {
// iterate over all nodes
instance.nodeIndex.forEach(node => {
// if our node name matches 123.foo
// set the name to foo and the meta index to 123
const matches = node.name?.match(/^(d+).(.+)/)
if (matches) {
const [, index, name] = matches
node.name = name
node.meta.index = index
}
})
}
})
Using a plugin
package.json
{
"routify": {
"plugins": [
"indexByName"
]
}
}
package.json with options
{
"routify": {
"plugins": [
{
"path": "indexByName",
"options": { }
}
]
}
}
routify.config.js
import indexByName from './path/to/plugin'
export default {
plugins: [
indexByName({/** options*/})
]
}