UNPKG

unstated-enhancers

Version:
94 lines (93 loc) 3.59 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var unstated = require("unstated"); var queue_1 = require("./support/queue"); var __SUPER_SECRET_CONTAINER_DEBUG_HOOK__ = unstated.__SUPER_SECRET_CONTAINER_DEBUG_HOOK__; var Manager = /** @class */ (function () { function Manager() { this.__containers = {}; this.beauty = false; } Manager.prototype.run = function () { this.start(); }; Manager.prototype.config = function (config) { for (var _i = 0, _a = Object.entries(config); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; this[key] = value; } }; Manager.prototype.store = function () { var store = {}; for (var _i = 0, _a = Object.entries(this.__containers); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; store[key] = value.state; } return store; }; Manager.prototype.all = function () { var containers = {}; for (var _i = 0, _a = Object.entries(this.__containers); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; containers[key] = value; } return containers; }; Manager.prototype.raise = function (method, params) { if (params === void 0) { params = {}; } for (var _i = 0, _a = Object.values(this.__containers); _i < _a.length; _i++) { var container = _a[_i]; if (container[method] && typeof container[method] === 'function') { container[method](params); } } }; Manager.prototype.reset = function () { for (var _i = 0, _a = Object.values(this.__containers); _i < _a.length; _i++) { var container = _a[_i]; var props = {}; if (container.persist) { props._persist_version = container.state._persist_version; } container.state = __assign(__assign({}, container.__containerInitialState), props); } }; Manager.prototype.get = function (name) { return this.__containers[name]; }; Manager.prototype.print = function () { var style = "color: inherit; font-weight: bold"; for (var _i = 0, _a = Object.entries(this.__containers); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; console.log("%c " + key + " \u2192 ", style, value); } }; Manager.prototype.start = function () { var _this = this; __SUPER_SECRET_CONTAINER_DEBUG_HOOK__(function (container) { var bootstrap = function () { return _this.bootstrap(container); }; queue_1.default(bootstrap); }); }; Manager.prototype.bootstrap = function (container) { var name = container.name || container.constructor.name; container.__containerInitialState = container.state || container.constructor.state || {}; if (this.beauty) { name = name.replace(/container$/ig, ''); } this.__containers[name] = container; }; return Manager; }()); exports.default = Manager;