UNPKG

rxact

Version:

an observable application management for Javascript apps

44 lines (30 loc) 1.73 kB
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } import StateStream from './stateStream'; import { setObservable, cleanObservable } from './observable'; import isObservable from './utils/isObservable'; var RealStateStream = StateStream; export var setup = function setup(options) { var _RealStateStream; if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { throw new Error('setup(): Expected options to be an object.'); } var Observable = options.Observable, _options$plugins = options.plugins, plugins = _options$plugins === undefined ? [] : _options$plugins, _options$HOStateStrea = options.HOStateStream, HOStateStream = _options$HOStateStrea === undefined ? StateStream : _options$HOStateStrea; if (!isObservable(Observable)) { throw new Error('setup(): Expected an ES Observable. For more info: https://github.com/tc39/proposal-observable'); } setObservable(Observable); if (!Array.isArray(plugins)) { throw new Error('setup(): Expected plugins to be an array'); } RealStateStream = HOStateStream; (_RealStateStream = RealStateStream).addPlugin.apply(_RealStateStream, _toConsumableArray(plugins)); }; export var teardown = function teardown() { cleanObservable(); RealStateStream.removePlugin(); };