diff --git a/.changeset/spicy-donuts-taste.md b/.changeset/spicy-donuts-taste.md new file mode 100644 index 00000000..8f7945d1 --- /dev/null +++ b/.changeset/spicy-donuts-taste.md @@ -0,0 +1,5 @@ +--- +'vite-plugin-kit-routes': patch +--- + +fix(kit-routes): Allow setting `boolean` and `null` default values diff --git a/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts b/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts index 95b50278..9d916d71 100644 --- a/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts +++ b/packages/vite-plugin-kit-routes/src/lib/ROUTES.ts @@ -180,9 +180,27 @@ const LINKS = { params['d'] = params['d'] ?? 'identicon' return `https://www.gravatar.com/avatar/${params['str']}${appendSp({ s: params['s'], d: params['d'] })}` }, + default_values_site: (params: { + sBooleanRequired: boolean + sArrayRequired: Array + bool?: boolean + arr?: Array + sNumber?: number + sBoolean?: boolean + sArray?: Array + }) => { + params['sBooleanRequired'] = params['sBooleanRequired'] ?? 'mooo' + params['sArrayRequired'] = params['sArrayRequired'] ?? [true, 'p2', 3, null] + params['bool'] = params['bool'] ?? true + params['arr'] = params['arr'] ?? [true, 'p2', 3, null] + params['sNumber'] = params['sNumber'] ?? 75 + params['sBoolean'] = params['sBoolean'] ?? false + params['sArray'] = params['sArray'] ?? [true, 'p2', 3, null] + return `https://sommepage.com/${params['bool']}/${params['arr']}${appendSp({ sNumber: params['sNumber'], sBoolean: params['sBoolean'], sBooleanRequired: params['sBooleanRequired'], sArray: params['sArray'], sArrayRequired: params['sArrayRequired'] })}` + }, } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string @@ -344,7 +362,12 @@ export type KIT_ROUTES = { 'noSatisfies /site_contract': 'lang' 'send /site_contract/[siteId]-[contractId]': 'siteId' | 'contractId' | 'lang' } - LINKS: { twitter: never; twitter_post: 'name' | 'id'; gravatar: 'str' } + LINKS: { + twitter: never + twitter_post: 'name' | 'id' + gravatar: 'str' + default_values_site: 'bool' | 'arr' + } Params: { all: never first: never @@ -366,5 +389,12 @@ export type KIT_ROUTES = { str: never s: never d: never + sBooleanRequired: never + sArrayRequired: never + bool: never + arr: never + sNumber: never + sBoolean: never + sArray: never } } diff --git a/packages/vite-plugin-kit-routes/src/lib/ast.ts b/packages/vite-plugin-kit-routes/src/lib/ast.ts index b81ca571..dda19890 100644 --- a/packages/vite-plugin-kit-routes/src/lib/ast.ts +++ b/packages/vite-plugin-kit-routes/src/lib/ast.ts @@ -124,6 +124,8 @@ export function evaluateNode(node: any): any { return node.value } else if (node.type === 'NumericLiteral') { return node.value + } else if (node.type === 'NullLiteral') { + return node.value } else if (node.type === 'ObjectExpression') { const result: any = {} node.properties.forEach((prop: any) => { diff --git a/packages/vite-plugin-kit-routes/src/lib/format.ts b/packages/vite-plugin-kit-routes/src/lib/format.ts index 48960d49..e980506d 100644 --- a/packages/vite-plugin-kit-routes/src/lib/format.ts +++ b/packages/vite-plugin-kit-routes/src/lib/format.ts @@ -19,7 +19,7 @@ export const format = (margin: { left?: number; top?: number; bottom?: number }, ) } -export const appendSp = `type ParamValue = string | number | undefined +export const appendSp = `type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts index bd57eef0..6d869859 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_base.ts @@ -120,7 +120,7 @@ const LINKS = { } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts index cbf6bd21..a694d57b 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path.ts @@ -135,7 +135,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts index 0182ae67..33285b08 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-path_shortened.ts @@ -136,7 +136,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts index ed224fbc..60ec3acb 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol.ts @@ -139,7 +139,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts index 0cc46009..f3dc105c 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-object-symbol_shortened.ts @@ -140,7 +140,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts index 09b5e83b..c888d19d 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path.ts @@ -135,7 +135,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts index 58be8db1..6dcb4587 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-path_shortened.ts @@ -136,7 +136,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts index 7db47591..ee0bebdf 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol.ts @@ -135,7 +135,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts index 2eb73076..720c6695 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-and-object-symbol_shortened.ts @@ -136,7 +136,7 @@ export const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts index a32a0c89..8b8137d9 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id.ts @@ -136,7 +136,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts index 7b0e7ffc..99ac56b5 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path-page-route-id_shortened.ts @@ -137,7 +137,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts index 4d858e47..23f94a42 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path.ts @@ -135,7 +135,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts index ac011bc7..7e4e9815 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-path_shortened.ts @@ -136,7 +136,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts index 6feada09..6338a8de 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol.ts @@ -135,7 +135,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts index 1aafc7b5..5c12f603 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-route-symbol_shortened.ts @@ -136,7 +136,7 @@ const LINKS = { } } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts index d02dfcce..1a4f7a5d 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables.ts @@ -131,7 +131,7 @@ export const LINK_gravatar = (params: { str: (string | number), s?: (number), d? return `https://www.gravatar.com/avatar/${params['str']}${appendSp({ 's': params['s'], 'd': params['d'] })}` } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts index 15cd15e2..e21261c3 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_format-variables_shortened.ts @@ -132,7 +132,7 @@ export const LINK_gravatar = (str: (string | number), params?: { s?: (number), d return `https://www.gravatar.com/avatar/${str}${appendSp({ 's': params['s'], 'd': params['d'] })}` } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts index 05598c4c..482ec8af 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_hash.ts @@ -119,7 +119,7 @@ const LINKS = { } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts b/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts index 200b92d4..d3bf2c35 100644 --- a/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts +++ b/packages/vite-plugin-kit-routes/src/test/ROUTES_post-update.ts @@ -119,7 +119,7 @@ const LINKS = { } -type ParamValue = string | number | undefined +type ParamValue = string | number | boolean | null | undefined /** * Append search params to a string diff --git a/packages/vite-plugin-kit-routes/vite.config.ts b/packages/vite-plugin-kit-routes/vite.config.ts index 6739607e..db56d2aa 100644 --- a/packages/vite-plugin-kit-routes/vite.config.ts +++ b/packages/vite-plugin-kit-routes/vite.config.ts @@ -126,6 +126,31 @@ export const _kitRoutesConfig: Options = { d: { type: '"retro" | "identicon"', default: '"identicon"' }, }, }, + + default_values_site: { + href: 'https://sommepage.com/[bool]/[arr]', + params: { + bool: { type: 'boolean', default: true }, + arr: { + type: 'Array', + default: "[true, 'p2', 3, null]", + }, + }, + explicit_search_params: { + sNumber: { type: 'number', default: 75 }, + sBoolean: { type: 'boolean', default: false }, + sBooleanRequired: { type: 'boolean', default: "'mooo'", required: true }, + sArray: { + type: 'Array', + default: "[true, 'p2', 3, null]", + }, + sArrayRequired: { + type: 'Array', + default: "[true, 'p2', 3, null]", + required: true, + }, + }, + }, }, override_params: {