Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/Wire/Event.purs
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ import Unsafe.Reference (unsafeRefEq)
import Wire.Event.Queue as Queue

newtype Event a
= Event (Subscriber a -> Effect Canceller)
= Event (Subscriber a -> Effect Canceler)

type Subscriber a
= a -> Effect Unit

type Canceller
type Canceler
= Effect Unit

create :: forall a. Effect { event :: Event a, push :: a -> Effect Unit, cancel :: Effect Unit }
Expand All @@ -44,10 +44,10 @@ create = do
Ref.modify_ (Array.deleteBy unsafeRefEq subscriber) subscribers
pure { event, push: queue.push, cancel: queue.kill }

makeEvent :: forall a. (Subscriber a -> Effect Canceller) -> Event a
makeEvent :: forall a. (Subscriber a -> Effect Canceler) -> Event a
makeEvent = Event

subscribe :: forall a. Event a -> Subscriber a -> Effect Canceller
subscribe :: forall a. Event a -> Subscriber a -> Effect Canceler
subscribe (Event event) = event

filter :: forall a. (a -> Boolean) -> Event a -> Event a
Expand Down Expand Up @@ -114,7 +114,7 @@ fromFoldable xs =
liftEffect do emit x
Aff.delay (Milliseconds 0.0)
pure do
Aff.launchAff_ do Aff.killFiber (Aff.error "cancelled") fiber
Aff.launchAff_ do Aff.killFiber (Aff.error "canceled") fiber

range :: Int -> Int -> Event Int
range start end =
Expand All @@ -131,7 +131,7 @@ range start end =
pure (Done unit)
fiber <- Aff.launchAff do tailRecM go start
pure do
Aff.launchAff_ do Aff.killFiber (Aff.error "cancelled") fiber
Aff.launchAff_ do Aff.killFiber (Aff.error "canceled") fiber
where
step = if start < end then 1 else -1

Expand Down
2 changes: 1 addition & 1 deletion src/Wire/Event/Time.purs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ interval spacing = do
Aff.delay ms
liftEffect do emit unit
pure do
Aff.launchAff_ do Aff.killFiber (Aff.error "cancelling") fiber
Aff.launchAff_ do Aff.killFiber (Aff.error "canceling") fiber

timer :: forall offset spacing. Duration offset => Duration spacing => offset -> spacing -> Event Unit
timer offset spacing = delay offset do pure unit <|> interval spacing
5 changes: 4 additions & 1 deletion src/Wire/Signal.purs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module Wire.Signal where
import Prelude
import Effect (Effect)
import Effect.Ref as Ref
import Wire.Event (Event)
import Wire.Event (Canceler, Event, Subscriber)
import Wire.Event as Event

newtype Signal a
Expand Down Expand Up @@ -33,6 +33,9 @@ create init = do
signal = Signal { event: event', read: read', write: write', modify: modify' }
pure { signal, cancel: inner.cancel }

subscribe :: forall a. Signal a -> Subscriber a -> Effect Canceler
subscribe (Signal s) = Event.subscribe s.event

event :: forall a. Signal a -> Event a
event (Signal s) = s.event

Expand Down