import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition, applyUrlDefaults } from './../../wayfinder' /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ export const index = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: index.url(options), method: 'get', }) index.definition = { methods: ["get","head"], url: '/users', } satisfies RouteDefinition<["get","head"]> /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ index.url = (options?: RouteQueryOptions) => { return index.definition.url + queryParams(options) } /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ index.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: index.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ index.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({ url: index.url(options), method: 'head', }) /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ const indexForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: index.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ indexForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: index.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::index * @see [unknown]:0 * @route '/users' */ indexForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: index.url({ [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'HEAD', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'get', }) index.form = indexForm /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ export const create = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: create.url(options), method: 'get', }) create.definition = { methods: ["get","head"], url: '/users/create', } satisfies RouteDefinition<["get","head"]> /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ create.url = (options?: RouteQueryOptions) => { return create.definition.url + queryParams(options) } /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ create.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: create.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ create.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({ url: create.url(options), method: 'head', }) /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ const createForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: create.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ createForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: create.url(options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::create * @see [unknown]:0 * @route '/users/create' */ createForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: create.url({ [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'HEAD', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'get', }) create.form = createForm /** * @see \App\Http\Controllers\UserController::store * @see [unknown]:0 * @route '/users' */ export const store = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({ url: store.url(options), method: 'post', }) store.definition = { methods: ["post"], url: '/users', } satisfies RouteDefinition<["post"]> /** * @see \App\Http\Controllers\UserController::store * @see [unknown]:0 * @route '/users' */ store.url = (options?: RouteQueryOptions) => { return store.definition.url + queryParams(options) } /** * @see \App\Http\Controllers\UserController::store * @see [unknown]:0 * @route '/users' */ store.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({ url: store.url(options), method: 'post', }) /** * @see \App\Http\Controllers\UserController::store * @see [unknown]:0 * @route '/users' */ const storeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: store.url(options), method: 'post', }) /** * @see \App\Http\Controllers\UserController::store * @see [unknown]:0 * @route '/users' */ storeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: store.url(options), method: 'post', }) store.form = storeForm /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ export const show = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: show.url(args, options), method: 'get', }) show.definition = { methods: ["get","head"], url: '/users/{user}', } satisfies RouteDefinition<["get","head"]> /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ show.url = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions) => { if (typeof args === 'string' || typeof args === 'number') { args = { user: args } } if (Array.isArray(args)) { args = { user: args[0], } } args = applyUrlDefaults(args) const parsedArgs = { user: args.user, } return show.definition.url .replace('{user}', parsedArgs.user.toString()) .replace(/\/+$/, '') + queryParams(options) } /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ show.get = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: show.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ show.head = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({ url: show.url(args, options), method: 'head', }) /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ const showForm = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: show.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ showForm.get = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: show.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::show * @see [unknown]:0 * @route '/users/{user}' */ showForm.head = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: show.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'HEAD', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'get', }) show.form = showForm /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ export const edit = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: edit.url(args, options), method: 'get', }) edit.definition = { methods: ["get","head"], url: '/users/{user}/edit', } satisfies RouteDefinition<["get","head"]> /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ edit.url = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions) => { if (typeof args === 'string' || typeof args === 'number') { args = { user: args } } if (Array.isArray(args)) { args = { user: args[0], } } args = applyUrlDefaults(args) const parsedArgs = { user: args.user, } return edit.definition.url .replace('{user}', parsedArgs.user.toString()) .replace(/\/+$/, '') + queryParams(options) } /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ edit.get = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({ url: edit.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ edit.head = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({ url: edit.url(args, options), method: 'head', }) /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ const editForm = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: edit.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ editForm.get = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: edit.url(args, options), method: 'get', }) /** * @see \App\Http\Controllers\UserController::edit * @see [unknown]:0 * @route '/users/{user}/edit' */ editForm.head = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({ action: edit.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'HEAD', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'get', }) edit.form = editForm /** * @see \App\Http\Controllers\UserController::update * @see [unknown]:0 * @route '/users/{user}' */ export const update = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({ url: update.url(args, options), method: 'patch', }) update.definition = { methods: ["patch"], url: '/users/{user}', } satisfies RouteDefinition<["patch"]> /** * @see \App\Http\Controllers\UserController::update * @see [unknown]:0 * @route '/users/{user}' */ update.url = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions) => { if (typeof args === 'string' || typeof args === 'number') { args = { user: args } } if (Array.isArray(args)) { args = { user: args[0], } } args = applyUrlDefaults(args) const parsedArgs = { user: args.user, } return update.definition.url .replace('{user}', parsedArgs.user.toString()) .replace(/\/+$/, '') + queryParams(options) } /** * @see \App\Http\Controllers\UserController::update * @see [unknown]:0 * @route '/users/{user}' */ update.patch = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({ url: update.url(args, options), method: 'patch', }) /** * @see \App\Http\Controllers\UserController::update * @see [unknown]:0 * @route '/users/{user}' */ const updateForm = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: update.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'PATCH', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'post', }) /** * @see \App\Http\Controllers\UserController::update * @see [unknown]:0 * @route '/users/{user}' */ updateForm.patch = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: update.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'PATCH', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'post', }) update.form = updateForm /** * @see \App\Http\Controllers\UserController::destroy * @see [unknown]:0 * @route '/users/{user}' */ export const destroy = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({ url: destroy.url(args, options), method: 'delete', }) destroy.definition = { methods: ["delete"], url: '/users/{user}', } satisfies RouteDefinition<["delete"]> /** * @see \App\Http\Controllers\UserController::destroy * @see [unknown]:0 * @route '/users/{user}' */ destroy.url = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions) => { if (typeof args === 'string' || typeof args === 'number') { args = { user: args } } if (Array.isArray(args)) { args = { user: args[0], } } args = applyUrlDefaults(args) const parsedArgs = { user: args.user, } return destroy.definition.url .replace('{user}', parsedArgs.user.toString()) .replace(/\/+$/, '') + queryParams(options) } /** * @see \App\Http\Controllers\UserController::destroy * @see [unknown]:0 * @route '/users/{user}' */ destroy.delete = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({ url: destroy.url(args, options), method: 'delete', }) /** * @see \App\Http\Controllers\UserController::destroy * @see [unknown]:0 * @route '/users/{user}' */ const destroyForm = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: destroy.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'DELETE', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'post', }) /** * @see \App\Http\Controllers\UserController::destroy * @see [unknown]:0 * @route '/users/{user}' */ destroyForm.delete = (args: { user: string | number } | [user: string | number ] | string | number, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({ action: destroy.url(args, { [options?.mergeQuery ? 'mergeQuery' : 'query']: { _method: 'DELETE', ...(options?.query ?? options?.mergeQuery ?? {}), } }), method: 'post', }) destroy.form = destroyForm const users = { index: Object.assign(index, index), create: Object.assign(create, create), store: Object.assign(store, store), show: Object.assign(show, show), edit: Object.assign(edit, edit), update: Object.assign(update, update), destroy: Object.assign(destroy, destroy), } export default users