@walletpack/core
Version:
> TODO: description
81 lines (67 loc) • 2.23 kB
JavaScript
;
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;