UNPKG

@walletpack/core

Version:

> TODO: description

81 lines (67 loc) 2.23 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var PluginTypes = _interopRequireWildcard(require("./PluginTypes")); var _Blockchains = require("../models/Blockchains"); var _Explorer = _interopRequireDefault(require("../models/Explorer")); var PluginRepositorySingleton = /*#__PURE__*/ function () { function PluginRepositorySingleton() { (0, _classCallCheck2["default"])(this, PluginRepositorySingleton); this.plugins = []; } (0, _createClass2["default"])(PluginRepositorySingleton, [{ key: "loadPlugins", value: function loadPlugins(plugins) { var _this = this; plugins.map(function (plugin) { return _this.plugins.push(new plugin()); }); } }, { key: "signatureProviders", value: function signatureProviders() { return this.plugins.filter(function (plugin) { return plugin.type === PluginTypes.BLOCKCHAIN_SUPPORT; }); } }, { key: "plugin", value: function plugin(name) { return this.plugins.find(function (plugin) { return plugin.name === name; }); } }, { key: "defaultExplorers", value: function defaultExplorers() { var _this2 = this; return _Blockchains.BlockchainsArray.reduce(function (acc, x) { if (_this2.plugin(x.value)) { acc[x.value] = _Explorer["default"].fromJson({ raw: _this2.plugin(x.value).defaultExplorer() }); } return acc; }, {}); } }, { key: "bustCaches", value: function bustCaches() { this.signatureProviders().map(function (sp) { return sp.bustCache(); }); } }]); return PluginRepositorySingleton; }(); var PluginRepository = new PluginRepositorySingleton(); var _default = PluginRepository; exports["default"] = _default;