🌳

[Elm] sporto/qsが便利だよ

2022/10/18に公開

package document

Elmには型が読めないことでおなじみのelm/urlのParserがあり、Queryもパースすることができる
が、ちょっと思った挙動と違うなあってことが多く、ルーティングとは別に付加情報をQueryからとってくるときはこのsporto/qsが便利

使いかた

QS.parse
    QS.config
    "?a=1&b=x"
    == Dict.fromList [ ( "a", One "1" ), ( "b", One "x" ) ]

単純にDictにしてくれる。Dictとして操作することもできるが、getやhasなどのヘルパーがあるので基本的には用意してくれているものを使って取り出したり設定したりしよう

QS.serialize Qs.config <|
    Dict.fromList [ ( "a", QueryString "1" ), ( "b", QueryString "2" ) ]
        == "?a=1&b=2"

逆操作もあるよ

嬉しさ

elm/urlのQuery Parserだとルーティング的な扱いになるのでルーティング関係ない情報がクエリに載ってるときに取ってこようとするのに適さない
QSはルーティングのあとにクエリから取ってきたいときに使えます

Discussion