simple-pub-sub-global-data

0.1.0 • Public • Published

simple-pub-sub-global-data · GitHub license PRs Welcome

A very, very simplistic pub-sub and global data library without dependencies or complications.

Works in browser and Node (not tested in Deno).

Usage

npm install simple-pub-sub-global-data

then

<script src="path-to-node_modules/simple-pub-sub-global-data/src-dist/index.js"></script>

or

import Spsgd from 'simple-pub-sub-global-data'

or

import { getData } from 'simple-pub-sub-global-data'
// 'getData' or any of the methods

or

const Spsgd = require('simple-pub-sub-global-data')

or

const { getData } = require('simple-pub-sub-global-data')
// 'getData' or any of the methods

Methods

Data Store

  • getAllData()

  • getData(key: string)

  • removeAllData()

  • removeData(key: string)

  • setData(key: string, data: any)

Pub - Sub

  • publish(event: string, data: any = undefined)

    Publish an 'event' and, optionally, send 'data' to subscriptors as argument.

  • subscribe(event: string, func: function, sync: boolean = false)

    Subscribe a function or method 'func' to an 'event'. It is possible to choose the way 'func' will be called, synchronous or asynchronous, by setting optional argument 'sync'. 'sync = true' means the subscriptors will be called inmediately after 'event' publication. 'sync = false' means the call for subscriptors will be made by the javascript event loop (so the app/component state can update, or UI can refresh, ...).

  • unsubscribe(event: string, func: function)

Notes:

  • To 'unsubscribe' with success, the function has to be a named one.

  • If a function has been subscribed inside a class, component or any code container that can be destroyed, that function HAS TO BE UNSUBSCRIBED before destruction.

Contraindication

This library creates a variable in the global scope named 'SimplePubSubGlobalData', so do not use that name in global scope.

Package Sidebar

Install

npm i simple-pub-sub-global-data

Weekly Downloads

1

Version

0.1.0

License

MIT

Unpacked Size

6.57 kB

Total Files

4

Last publish

Collaborators

  • miguelgilrosas