Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
59ff6dc
tmp
jycouet Nov 26, 2023
aa04fa9
:boom: NEW: action "default" needs to be specified
jycouet Nov 26, 2023
868bd8e
:boom: NEW: action "default" needs to be specified
jycouet Nov 26, 2023
4534eca
:construction: NEW: formats
jycouet Nov 26, 2023
7625311
:construction: UPDATE: very WIP
jycouet Nov 26, 2023
22ed59b
:construction: UPDATE: refacto
jycouet Nov 26, 2023
412d371
:white_check_mark: UPDATE: update the demo
jycouet Nov 26, 2023
7de1fe2
let's see
jycouet Nov 26, 2023
8628b1c
:tada: NEW: remove optional params in the key
jycouet Nov 26, 2023
206e620
:sparkles: UPDATE: changeset level
jycouet Nov 26, 2023
8ed1c0c
:tada: FIX: app
jycouet Nov 26, 2023
c13d3a8
:white_check_mark: ADD: a check
jycouet Nov 26, 2023
ca12473
:tada: NEW: let's commit tests as well so that it's easier to see dif…
jycouet Nov 27, 2023
3c325bd
.
jycouet Nov 27, 2023
9ea632c
.
jycouet Nov 27, 2023
42fe97b
:bug: FIX: append in one of the formats
jycouet Nov 27, 2023
e2bc3d2
:construction: WIP: formats
jycouet Nov 27, 2023
e2a76bf
:white_check_mark: UPDATE: better options stuff
jycouet Nov 27, 2023
ca14c99
:boom: UPDATE: BREAKING: format variables is now prefixed with ROUTE …
jycouet Nov 27, 2023
5191203
PAGES to PAGE
jycouet Nov 27, 2023
2cbbeff
:sparkles: UPDATE: snap
jycouet Nov 27, 2023
cbc77a8
format update
jycouet Nov 27, 2023
140ef58
.
jycouet Nov 27, 2023
1a2cb84
:construction: UPDATE: tests & formats
jycouet Nov 27, 2023
2aab155
:sparkles: NEW: better tests
jycouet Nov 27, 2023
0a6a91e
tests tests tests
jycouet Nov 27, 2023
15f7949
:construction: UPDATE: tweak TwiX
jycouet Nov 27, 2023
7b7cee4
:art: NEW: logs
jycouet Nov 27, 2023
6ec8d09
:construction: NEW: enter next tag
jycouet Nov 27, 2023
f3fb633
:white_check_mark: NEW: test setup
jycouet Nov 27, 2023
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
16 changes: 16 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"@kitql-old/all-in": "0.9.6",
"create-kitql": "0.0.3",
"eslint-config-kitql": "0.0.2",
"@kitql/handles": "0.1.3",
"@kitql/helpers": "0.8.4",
"vite-plugin-kit-routes": "0.1.4",
"vite-plugin-striper": "0.0.6",
"vite-plugin-watch-and-run": "1.4.4",
"website": "1.1.2"
},
"changesets": []
}
5 changes: 5 additions & 0 deletions .changeset/red-mice-brush.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'vite-plugin-kit-routes': minor
---

BREAKING: remove optional params in the key
5 changes: 5 additions & 0 deletions .changeset/strong-snails-wink.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'vite-plugin-kit-routes': minor
---

action "default" needs to be specified, we want to be explicite (will help the route() function & avoid collision)
2 changes: 1 addition & 1 deletion packages/vite-plugin-kit-routes/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"scripts": {
"prepare": "svelte-kit sync",
"dev": "vite dev",
"build": "vite build && svelte-package && node ../../scripts/package.js",
"build": "vite build && svelte-package && pnpm check && node ../../scripts/package.js",
"preview": "vite preview",
"package": "svelte-package && publint",
"check": "svelte-check --tsconfig ./tsconfig.json",
Expand Down
168 changes: 96 additions & 72 deletions packages/vite-plugin-kit-routes/src/lib/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,64 +4,65 @@
* >> DO NOT EDIT THIS FILE MANUALLY <<
*/

/**
* PAGES
*/
export const PAGES = {
_ROOT: `/`,
subGroup: `/subGroup`,
subGroup2: (params: { first: string | number }) => {
return `/subGroup2${appendSp({ first: params.first })}`
return `/subGroup2${appendSp({ first: params?.first })}`
},
lang_contract: (params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {}) => {
contract: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract`
},
lang_contract_id: (params: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
id: string | number
}) => {
contract_id: (params: { id: string | number; lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract/${params.id}`
},
lang_gp_one: (params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {}) => {
gp_one: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/gp/one`
},
lang_gp_two: (params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {}) => {
gp_two: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/gp/two`
},
lang_main: (params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {}) => {
main: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/main`
},
lang_match_id_int: (params: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
id: string | number
}) => {
match_id_int: (params: { id: string | number; lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/match/${params.id}`
},
lang_site: (
params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string; limit?: number } = {},
site: (
params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string; limit?: number },
sp?: Record<string, string | number>,
) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site${appendSp({
limit: params?.limit,
...sp,
limit: params.limit,
})}`
},
lang_site_id: (
params: { lang?: 'fr' | 'hu' | undefined; id?: string; limit?: number; demo?: string } = {},
) => {
site_id: (params?: {
lang?: 'fr' | 'hu' | undefined
id?: string
limit?: number
demo?: string
}) => {
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,
limit: params?.limit,
demo: params?.demo,
})}`
},
lang_site_contract_siteId_contractId: (params: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
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 })}`
}${appendSp({ limit: params?.limit })}`
},
a_rest_z: (params: { rest: (string | number)[] }) => {
return `/a/${params.rest?.join('/')}/z`
Expand All @@ -71,59 +72,70 @@ export const PAGES = {
lay_skip: `/lay/skip`,
}

/**
* SERVERS
*/
export const SERVERS = {
lang_contract: (
method: 'GET' | 'POST',
params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {},
) => {
GET_contract: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract`
},
lang_site: (method: 'GET', params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site`
POST_contract: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract`
},
api_graphql: (method: 'GET' | 'POST') => {
return `/api/graphql`
GET_site: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site`
},
GET_api_graphql: `/api/graphql`,
POST_api_graphql: `/api/graphql`,
}

/**
* ACTIONS
*/
export const ACTIONS = {
lang_contract_id: (params: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
default_contract_id: (params: {
id: string | number
lang?: 'fr' | 'en' | 'hu' | 'at' | string
limit?: number
}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/contract/${params.id}${appendSp({
limit: params.limit,
limit: params?.limit,
})}`
},
lang_site: (
action: 'action1' | 'action2',
params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {},
) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site?/${action}`
create_site: (params?: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
redirectTo?: 'list' | 'new' | 'detail'
}) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site?/create${appendSp(
{ redirectTo: params?.redirectTo },
'&',
)}`
},
lang_site_contract: (
action: 'noSatisfies',
params: { lang?: 'fr' | 'en' | 'hu' | 'at' | string } = {},
) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract?/${action}`
},
lang_site_contract_siteId_contractId: (
action: 'sendSomething',
params: {
lang?: 'fr' | 'en' | 'hu' | 'at' | string
siteId: string | number
contractId: string | number
extra?: 'A' | 'B'
},
) => {
update_site_id: (params: { id: string | number; lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site/${params.id}?/update`
},
delete_site_id: (params: { id: string | number; lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site/${params.id}?/delete`
},
noSatisfies_site_contract: (params?: { lang?: 'fr' | 'en' | 'hu' | 'at' | string }) => {
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract?/noSatisfies`
},
send_site_contract_siteId_contractId: (params: {
siteId: string | number
contractId: string | number
lang?: 'fr' | 'en' | 'hu' | 'at' | string
extra?: 'A' | 'B'
}) => {
params.extra = params.extra ?? 'A'
return `${params?.lang ? `/${params?.lang}` : ''}/site_contract/${params.siteId}-${
params.contractId
}?/${action}${appendSp({ extra: params.extra }, '&')}`
}?/send${appendSp({ extra: params?.extra }, '&')}`
},
}

/**
* LINKS
*/
export const LINKS = {
twitter: `https:/twitter.com/jycouet`,
twitter_post: (params: { name: string | number; id: string | number }) => {
Expand All @@ -132,10 +144,13 @@ export const LINKS = {
gravatar: (params: { str: string; s?: number; d?: 'retro' | 'identicon' }) => {
params.s = params.s ?? 75
params.d = params.d ?? 'identicon'
return `https:/www.gravatar.com/avatar/${params.str}${appendSp({ s: params.s, d: params.d })}`
return `https:/www.gravatar.com/avatar/${params.str}${appendSp({ s: params?.s, d: params?.d })}`
},
}

/**
* Append search params to a string
*/
const appendSp = (sp?: Record<string, string | number | undefined>, prefix: '?' | '&' = '?') => {
if (sp === undefined) return ''
const mapping = Object.entries(sp)
Expand All @@ -159,7 +174,7 @@ const appendSp = (sp?: Record<string, string | number | undefined>, prefix: '?'
*
* kitRoutes<KIT_ROUTES>({
* PAGES: {
* // here, "paths" it will be typed!
* // here, key of object will be typed!
* }
* })
* ```
Expand All @@ -169,26 +184,34 @@ export type KIT_ROUTES = {
_ROOT: never
subGroup: never
subGroup2: never
lang_contract: 'lang'
lang_contract_id: 'lang' | 'id'
lang_gp_one: 'lang'
lang_gp_two: 'lang'
lang_main: 'lang'
lang_match_id_int: 'lang' | 'id'
lang_site: 'lang'
lang_site_id: 'lang' | 'id'
lang_site_contract_siteId_contractId: 'lang' | 'siteId' | 'contractId'
contract: 'lang'
contract_id: 'id' | 'lang'
gp_one: 'lang'
gp_two: 'lang'
main: 'lang'
match_id_int: 'id' | 'lang'
site: 'lang'
site_id: 'lang' | 'id'
site_contract_siteId_contractId: 'siteId' | 'contractId' | 'lang'
a_rest_z: 'rest'
lay_normal: never
lay_root_layout: never
lay_skip: never
}
SERVERS: { lang_contract: 'lang'; lang_site: 'lang'; api_graphql: never }
SERVERS: {
GET_contract: 'lang'
POST_contract: 'lang'
GET_site: 'lang'
GET_api_graphql: never
POST_api_graphql: never
}
ACTIONS: {
lang_contract_id: 'lang' | 'id'
lang_site: 'lang'
lang_site_contract: 'lang'
lang_site_contract_siteId_contractId: 'lang' | 'siteId' | 'contractId'
default_contract_id: 'id' | 'lang'
create_site: 'lang'
update_site_id: 'id' | 'lang'
delete_site_id: 'id' | 'lang'
noSatisfies_site_contract: 'lang'
send_site_contract_siteId_contractId: 'siteId' | 'contractId' | 'lang'
}
LINKS: { twitter: never; twitter_post: 'name' | 'id'; gravatar: 'str' }
Params: {
Expand All @@ -200,6 +223,7 @@ export type KIT_ROUTES = {
siteId: never
contractId: never
rest: never
redirectTo: never
extra: never
name: never
str: never
Expand Down
Loading