miyamoen / elm-route-builder / RouteBuilder


type alias Route params page =
{ toString : params -> String
, toPaths : params -> List String
, toParser : (params -> page) -> Url.Parser.Parser (page -> page) page 
}

Builder


type alias RouteBuilder params a b =
{ parser : Url.Parser.Parser a b
, toPaths : List (params -> String) 
}

root : RouteBuilder params a a

s : String -> RouteBuilder params a b -> RouteBuilder params a b

string : (params -> String) -> RouteBuilder params a (String -> b) -> RouteBuilder params a b

int : (params -> Basics.Int) -> RouteBuilder params a (Basics.Int -> b) -> RouteBuilder params a b

static : RouteBuilder () () () -> Route () page

Converter to Route.

dynamic1 : (p1 -> params) -> RouteBuilder params (p1 -> params) params -> Route params page

alias to dynamic

dynamic2 : (p1 -> p2 -> params) -> RouteBuilder params (p1 -> p2 -> params) params -> Route params page

alias to dynamic

dynamic3 : (p1 -> p2 -> p3 -> params) -> RouteBuilder params (p1 -> p2 -> p3 -> params) params -> Route params page

alias to dynamic

dynamic4 : (p1 -> p2 -> p3 -> p4 -> params) -> RouteBuilder params (p1 -> p2 -> p3 -> p4 -> params) params -> Route params page

alias to dynamic

dynamic5 : (p1 -> p2 -> p3 -> p4 -> p5 -> params) -> RouteBuilder params (p1 -> p2 -> p3 -> p4 -> p5 -> params) params -> Route params page

alias to dynamic

dynamic : toParams -> RouteBuilder params toParams params -> Route params page

Converter to Route.

custom : (String -> Maybe v) -> (v -> String) -> (params -> v) -> RouteBuilder params a (v -> b) -> RouteBuilder params a b

customWithParser : Url.Parser.Parser (v -> b) b -> (v -> String) -> (params -> v) -> RouteBuilder params a (v -> b) -> RouteBuilder params a b

Utility

parseUrl : Url -> page -> List (Url.Parser.Parser (page -> page) page) -> page

mapParser : Route params ( model, Platform.Cmd.Cmd msg ) -> ( childModel -> model, childMsg -> msg ) -> (params -> ( childModel, Platform.Cmd.Cmd childMsg )) -> Url.Parser.Parser (( model, Platform.Cmd.Cmd msg ) -> ( model, Platform.Cmd.Cmd msg )) ( model, Platform.Cmd.Cmd msg )