2.9.0 • Published 4 years ago

@boldadmin/event-publisher v2.9.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

event-publisher

A simple tool which can be used to notify events and subscribe to them. Has a straightforward implementation of Observer pattern, though has some unique features like keeping event in pending state until at least one subscriber is present.

Setup

$ npm install @boldadmin/event-publisher

Usage

Subscribe and notify:

const fun = () =>  me.eat()
eventPublisher.subscribe('lunchtime', fun); # subscribe to event
eventPublisher.notify('lunchtime'); # publish event
eventPublisher.unsubscribe('lunchtime', fun); # remove single subscription
eventPublisher.unsubscribeAll('lunchtime'); # or remove all subscriptions for an event

Subscribe and notify with event argument:

eventPublisher.subscribe(
    'lunchtime',
    (dayOfTheWeek) =>  if (dayOfTheWeek === 'sunday') me.eatAtHome() 
); # subscribe to event and receive argument
    
eventPublisher.notify('lunchtime', 'sunday'); # publish event with event argument

Pending notification until first subscription:

eventPublisher.notify('lunchtime'); # publish event, since no subscribers are present, its in pending state
eventPublisher.subscribeAndExecuteIfPending('lunchtime', () => { me.eat() }); # once subscribed, the event is executed

Multiple unsubscription:

eventPublisher.unsubscribeAll(
    'lunchtime',
    'supper',
    'breakfast'
); # unsubscribes multiple events

License

MIT

2.9.0

4 years ago

2.9.0-dev

4 years ago

2.8.0-dev

4 years ago

2.8.0

4 years ago

2.7.1

4 years ago

2.7.1-dev

4 years ago

2.7.0

4 years ago

2.7.0-dev

4 years ago

2.6.2

5 years ago

2.6.2-dev

5 years ago

2.6.1

5 years ago

2.6.1-dev

5 years ago

2.6.0-dev

5 years ago

2.5.1

5 years ago

2.5.1-dev

5 years ago

2.5.0

5 years ago

2.5.0-dev

5 years ago

2.4.0

5 years ago

2.4.0-dev

5 years ago

2.3.1

5 years ago

2.3.1-dev

5 years ago

2.3.0

5 years ago

2.3.0-dev

5 years ago

2.2.4

5 years ago

2.2.4-dev

5 years ago

2.2.3

5 years ago

2.2.3-dev

5 years ago

2.2.2

5 years ago

2.2.2-dev

5 years ago

2.2.1

5 years ago

2.2.1-dev

5 years ago

2.2.0

5 years ago

2.2.0-dev

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago