createFormRoutes

View Source

Summary

Create a route map with index (GET) and action (POST) routes, suitable for showing a standard HTML <form> and handling its submit action at the same URL.

Signature

function createFormRoutes<pattern extends string, options extends FormOptions>(pattern: pattern | RoutePattern<pattern>, options: options): { [K in string]: { -readonly [name in string]: ({ [key in string]: { method: "GET"; pattern: "/" } } & { [key in string]: { method: options extends { formMethod: formMethod } ? formMethod : "POST"; pattern: "/" } })[name] extends Route<method, pattern> ? Route<method, Stringify<{ hostname: JoinOriginField<Parse<pattern>, Parse<pattern>, "hostname">; pathname: JoinPathnames<Parse<pattern>["pathname"], Parse<pattern>["pathname"]>; port: JoinOriginField<Parse<pattern>, Parse<pattern>, "port">; protocol: JoinOriginField<Parse<pattern>, Parse<pattern>, "protocol">; search: JoinSearch<Parse<pattern>["search"], Parse<pattern>["search"]> }>> : ({ [key in string]: { method: "GET"; pattern: "/" } } & { [key in string]: { method: options extends { formMethod: ... } ? formMethod : "POST"; pattern: "/" } })[name] extends RouteDef<string> ? BuildRouteWithBase<pattern, any[any]> : ({ [key in string]: { method: "GET"; pattern: "/" } } & { [key in string]: { method: (...) extends (...) ? (...) : (...); pattern: "/" } })[name] extends RouteDefs ? { [K in string | number | symbol]: { -readonly [name in string | number | symbol]: (...)[(...)] extends Route<(...), (...)> ? Route<(...), (...)> : (...) extends (...) ? (...) : (...) }[K] } : never }[K] }

Params

pattern

options

Returns

The route map with index and action routes