1.0.2 • Published 4 years ago
routel v1.0.2
routel
SvelteKit navigation patch
Install
npm install routelSetup
Add the following values to svelte.config.js
import routel from "routel/plugin/index.js"
export default {
kit: {
vite: {
plugins: [routel()],
optimizeDeps: {
exclude: ["routel"],
},
ssr: {
noExternal: ["routel"],
},
},
},
}Usage
Import goto or resolve to your .svelte component
import { onMount } from "svelte"
import { goto, resolve } from "routel"
// log "index"
console.log(resolve({ name: "index" }))
// log "blog/guide-to-sveltekit"
console.log(resolve(({
name: "blogSlug",
params: {
slug: "guide-to-sveltekit",
},
}))
// log "blog/edit/guide-to-sveltekit?role=admin"
console.log(resolve(({
name: "blog-edit-slug",
params: {
slug: "guide-to-sveltekit",
},
query: {
role: "admin",
},
}))
// log "blog/new#focus"
console.log(resolve(({
name: "blog_new",
hash: "focus",
}))
// Cannot call `goto` on the server
onMount(() => {
// goto "index"
goto({ name: "index" })
// goto "blog/guide-to-sveltekit"
goto({
name: "blogSlug",
params: {
slug: "guide-to-sveltekit",
},
})
// goto "blog/edit/guide-to-sveltekit?role=admin"
goto({
name: "blog-edit-slug",
params: {
slug: "guide-to-sveltekit",
},
query: {
role: "admin",
},
})
// goto "blog/new#focus"
goto({
name: "blog_new",
hash: "focus",
})
})Plugin config
import routel from "routel/plugin"
// alias option for route name generator
routel({
alias: {
slug: "parameter",
},
})
// default alias
{
_: 'underscore',
$: 'variable'
}Naming guide
index.sveltenamed toindex
blog/index.sveltenamed toblogIndexblog-indexblog_index
blog/[slug].sveltenamed toblogSlugblog-slugblog_slug
blog/edit/[slug].sveltenamed toblogEditSlogblog-edit-slugblog_edit_slug
blog/delete/[$].sveltenamed toblogDeleteVariableblog-delete-variableblog_delete_variable
blog/[category]/[id]-[slug].sveltenamed toblogCategoryIdSlugblog-category-id-slugblog_category_id_slug