UNPKG

react-tangle

Version:

A Simple State Management Library in React

35 lines (34 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createContext = function (initial) { var root = initial || {}; var callbacks = {}; return { stateOf: function (key) { return root[key]; }, update: function (key, newV, caller) { var oldV = root[key]; root[key] = newV; setTimeout(function () { // run listeners after next cycle var cbs = callbacks[key] || []; cbs.forEach(function (cb) { cb(newV, oldV, caller); }); }, 0); }, subscribe: function (key, cb) { var cbs = callbacks[key]; if (!cbs) { cbs = []; // fix this typing callbacks[key] = cbs; } cbs.push(cb); return function () { cbs.splice(cbs.indexOf(cb), 1); }; } }; };