@stephendltg/e-bus

1.0.8 • Public • Published

order: 1 title: E-bus

E-BUS

Message Queuing & memory data store

E-bus was made for the browser and nodejs

INSTALL

npm install --save @stephendltg/e-bus

For browser hhen with a module bundler like rollup or webpack, use as you would anything else:

// using ES6 modules
import emitter from '@stephendltg/e-bus'
 
// using CommonJS modules
var emitter = require('@stephendltg/e-bus/dist/module.esm')

// HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://unpkg.com/@stephendltg/e-bus"></script>
  <title>Document</title>
</head>
<body>
  <script>
    console.log(mitt)
  </script>
  
</body>
</html>

USAGE

const mitt = emitter()

or add mutate (store) func && init store

const mutate = (key, value) => console.log(key + ': ' + value)
const init = new Map([['title', {value: 'Hello world', expiration: 0}]])
const mitt = emitter( mutate, init)

PUB/SUB

 
// subscribe to an event
mitt.sub('foo', e => console.log('foo', e) )
 
// subscribe to all events
mitt.sub('*', (type, e) => console.log(type, e) )
 
// publish an event
mitt.pub('foo', { a: 'b' })
 
// working with handler references:
function onFoo() {}
mitt.sub('foo', onFoo)   // listen
mitt.unsub('foo', onFoo)  // unlisten function onFoo
mitt.unsub('foo') // unlisten all functions

// working with bus function
mitt.sub('test', e => typeof e === 'function' ? e() : null )
mitt.pub('test', ()=> console.log(678))

// Remove sub
mitt.unsub('foo')

STORE

// Store Set
mitt.set('stub', 78)

// Store with expiration in millisecondes
mitt.set('stub', 89, 4000)

// Store get
mitt.get('stub')

// Store delete
mitt.del('stub')

// clearing all data
mitt.all.clear()

// Export store to json
let export = mitt.json()

Readme

Keywords

none

Package Sidebar

Install

npm i @stephendltg/e-bus

Weekly Downloads

1

Version

1.0.8

License

ISC

Unpacked Size

14.4 kB

Total Files

9

Last publish

Collaborators

  • stephendltg