Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/rotten-crabs-drum.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"vite-plugin-kit-routes": patch
---

add trailingSlash option to config (as a global flag)
27 changes: 6 additions & 21 deletions packages/vite-plugin-kit-routes/src/lib/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,7 @@ const PAGES = {
params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string; limit?: number },
sp?: Record<string, string | number>,
) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site${appendSp({
...sp,
limit: params?.limit,
})}`
return `${params?.lang ? `/${params?.lang}` : ''}/site${appendSp({ ...sp, limit: params?.limit })}`
},
'/site/[id]': (params?: {
lang?: 'fr' | 'hu' | undefined
Expand All @@ -60,20 +57,15 @@ const PAGES = {
params = params ?? {}
params.lang = params.lang ?? 'fr'
params.id = params.id ?? 'Vienna'
return `${params?.lang ? `/${params?.lang}` : ''}/site/${params.id}${appendSp({
limit: params.limit,
demo: params.demo,
})}`
return `${params?.lang ? `/${params?.lang}` : ''}/site/${params.id}${appendSp({ limit: params.limit, demo: params.demo })}`
},
'/site_contract/[siteId]-[contractId]': (params: {
siteId: string | number
contractId: string | number
lang?: 'fr' | 'en' | 'hu' | 'at' | string
limit?: number
}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract/${params.siteId}-${
params.contractId
}${appendSp({ limit: params.limit })}`
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract/${params.siteId}-${params.contractId}${appendSp({ limit: params.limit })}`
},
'/a/[...rest]/z': (params: { rest: (string | number)[] }) => {
return `/a/${params.rest?.join('/')}/z`
Expand Down Expand Up @@ -124,18 +116,13 @@ const ACTIONS = {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
limit?: number
}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract/${params.id}${appendSp({
limit: params.limit,
})}`
return `${params?.lang ? `/${params?.lang}` : ''}/contract/${params.id}${appendSp({ limit: params.limit })}`
},
'create /site': (params?: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
redirectTo?: 'list' | 'new' | 'detail'
}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site?/create${appendSp(
{ redirectTo: params?.redirectTo },
'&',
)}`
return `${params?.lang ? `/${params?.lang}` : ''}/site?/create${appendSp({ redirectTo: params?.redirectTo }, '&')}`
},
'update /site/[id]': (params: {
id: string | number
Expand All @@ -159,9 +146,7 @@ const ACTIONS = {
extra?: 'A' | 'B'
}) => {
params.extra = params.extra ?? 'A'
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract/${params.siteId}-${
params.contractId
}?/send${appendSp({ extra: params.extra }, '&')}`
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract/${params.siteId}-${params.contractId}?/send${appendSp({ extra: params.extra }, '&')}`
},
}

Expand Down
14 changes: 13 additions & 1 deletion packages/vite-plugin-kit-routes/src/lib/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,15 @@ export type Options<T extends RouteMappings = RouteMappings> = {
*/
extra_search_params?: 'with' | 'without'

/**
* When `never` _(default)_, trailing slashes are removed from the URL.
* You can also set it to `always` to add trailing slashes to the URL.
* Learn more about trailing slashes in the [SvelteKit documentation](https://kit.svelte.dev/docs/page-options#trailingslash).
*
* We decide for a global config flag as a first step [link to issue](https://github.com/jycouet/kitql/issues/698).
*/
trailingSlash?: 'never' | 'always'

PAGES?: Partial<{ [K in keyof T['PAGES']]: CustomPath<Extract<T['PAGES'][K], string>> }>
SERVERS?: Partial<{ [K in keyof T['SERVERS']]: CustomPath<Extract<T['SERVERS'][K], string>> }>
ACTIONS?: Partial<{ [K in keyof T['ACTIONS']]: CustomPath<Extract<T['ACTIONS'][K], string>> }>
Expand Down Expand Up @@ -650,7 +659,10 @@ export function buildMetadata(

const pathBaesStr = options?.path_base ? '${base}' : ''
const strDefault = paramsDefaults.length > 0 ? `${paramsDefaults.join('\n')}` : ''
const strReturn = `\`${pathBaesStr}${toRet}${actionsFormat}${fullSP}\``

const trailingSlashToUse = o.trailingSlash === 'always' ? '/' : ''

const strReturn = `\`${pathBaesStr}${toRet}${trailingSlashToUse}${actionsFormat}${fullSP}\``
const strParams = params.join(', ')

const baseToReturn: MetadataToWrite = {
Expand Down
1 change: 1 addition & 0 deletions packages/vite-plugin-kit-routes/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export default defineConfig({
post_update_run: 'kitql-lint --format -g ./src/lib/ROUTES.ts',

// format_page_route_id: true,
// trailingSlash: 'always',

PAGES: {
// '/': { extra_search_params: 'with' },
Expand Down