2020-11-25 19:51:53 +03:00

32 lines
932 B
Elm

module Modules.Air exposing (..)
import Air exposing (Air, callBI, fold, next, par, relayEvent, seq, set)
import Json.Encode exposing (list, string)
air : String -> String -> List String -> Air
air peerId relayId peers =
let
clientIdSet =
set "clientId" <| string peerId
relayIdSet =
set "relayId" <| string relayId
peersSet =
set "peers" <| list string peers
airScript =
seq
(callBI "relayId" ( "op", "identity" ) [] Nothing)
(fold "peers" "p" <|
par
(seq
(callBI "p" ( "dist", "get_modules" ) [] (Just "modules"))
(relayEvent "modules_discovered" [ "p", "modules" ])
)
(next "p")
)
in
clientIdSet <| relayIdSet <| peersSet <| airScript