Skip to content

Commit 4dc4497

Browse files
committed
Added Signal.share
1 parent 151e7ab commit 4dc4497

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/Wire/Signal.purs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ event (Signal s) = s.event
4141
read :: Signal ~> Effect
4242
read (Signal s) = s.read
4343

44+
share :: forall a. Signal a -> Effect (Signal a)
45+
share (Signal s) = do
46+
shared <- Event.create
47+
value <- Ref.new =<< s.read
48+
_ <-
49+
Event.subscribe s.event \a -> do
50+
Ref.write a value
51+
shared.push a
52+
pure $ Signal { event: shared.event, read: Ref.read value }
53+
4454
derive instance functorSignal :: Functor Signal
4555

4656
instance applySignal :: Apply Signal where

0 commit comments

Comments
 (0)