I should have had a better look at what elmq allowed indeed.

That said until elmq (or something equivalent) is published on
package.elm-lang.org, we get a non-publishable package.

I will make some tests with now that the plain version is working properly.

Thanks!

Christophe

Le 22/05/2017 à 16:59, 'Rupert Smith' via Elm Discuss a écrit :
> On Monday, May 22, 2017 at 8:46:14 AM UTC+1, Christophe de Vienne wrote:
> 
>     * not being an effect module has clear pros :
>       - we can rely on other effect modules (in my case: WebSocket and
>         Random)
> 
>     * Being an effect module would allow a much simpler and natural API.
>       But then we could not use WebSocket or Random
> 
> 
> If you had used elmq to solve the issue of passing the messages around
> within the Elm application you would not have run into this limitation.
> That is to say that the dependency structure of your Nats module and the
> effects module it uses would have looked like this:
> 
> Nats 
>   -> WebSocket
>   -> Random
>   -> elmq
> 
> Where -> means depends on. But Nats itself would not be an effects module.
>  
> 
>     Finally, I would like to discuss a notion of middleware (which I think
>     is what I did with elm-nats):
> 
>     We could simplify the API as much as with an effect module if we could
>     manipulate the Cmd and Sub.
> 
>     I suspect that being able to filter a Cmd to extract all Cmd of a given
>     type in it would permit to implement some kind of middleware component.
>     Such a component would be explicitely inserted by the user between its
>     program and its TEA entry points.
> 
>     It could define some custom Cmd and Sub, and would transform them to
>     other effect modules commands and subs just before returning them to
>     the
>     program.
> 
>     Has anything like this been attempted already?
> 
> 
> This is basically what elmq is. When you send a message the result is a Cmd:
> 
> send : String -> Value -> Cmd msg
> 
> And when you listen for messages the result is a Sub:
> 
> listen : String -> (Value -> msg) -> Sub msg
> 
> The only 'filtering' currently available is to be able to name a channel
> (the String parameter in 'send' and 'listen'). More sophisticated
> filtering, mapping, folding / whatever could be added to it.
> 
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to elm-discuss+unsubscr...@googlegroups.com
> <mailto:elm-discuss+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

-- 
Christophe de Vienne

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to