wyn-broadcaster

Action broadcasters broadcast actions to its subscribers.

Usage no npm install needed!

<script type="module">
  import wynBroadcaster from 'https://cdn.skypack.dev/wyn-broadcaster';
</script>

README

wyn-broadcaster

Usage

Actions

Action broadcasters broadcast actions to its subscribers.

const { Action } = require('wyn-broadcaster');

// creating a new action
const someAction = new Action();

// subscribing
const id = someAction.subscribe(function (value, id) {
    // value - Value that has been broadcasted by the broadcaster
    // id - Unique ID of the subscriber (unique only to this broadcaster)
});

// trigger the action
someAction.broadcast('some value');

// unsubscribe from the action
someAction.unsubscribe(id);

Stores

Stores keep their value as they pass it around. Subscribing, unsubscribing is the same as action

const { Store } = require('wyn-broadcaster');

// create a new store
const someStore = new Store('initial value');

// getting the current value of the store
const currentValue = someStore.value;


// new value to store
someStore.value = 'new value'

State

const { State } = require('wyn-broadcaster');
const someState = new State({
    someValue: 'Initial Value',
    otherValue: 'Another Initial Value'
});

// Set the new state (only changes changes what you specify to be changed)
someState.set({
    someValue: 'New Value'
});

List Broadcaster

const { ListBroadcaster } = require('wyn-broadcaster');

const listBroadcaster = new ListBroadcaster();

const id = listBroadcaster.subscribe(([item, list, actionType], id) => {
    // item - Value that has been just removed or just added depending on the action
    // list - Actual list
    // actionType - Type of action done on the list. Can be PUSH, POP, SHIFT, UNSHIFT
    // id - ID of the subscriber
});

// get the length of the list
listBroadcaster.length;

// get the actual list itself
listBroadcaster.value;

// adds an item to the end of the list
listBroadcaster.push('new value');

// removes an item from the end of the list
const poppedValue = listBroadcaster.pop();

// adds an item to the beginning of the list
listBroadcaster.unshift('new value');

// removes an item from the beginning of the list
const shiftedValue = listBroadcaster.shift();

// maps the items of the list to an array
const newArray = listBroadcaster.map(function (value, index, extraArgs) {
    return index; // or any new value
}, extraArgs);