diff --git a/lib/node/node.js b/lib/node/node.js index c1410bf1..466f3509 100644 --- a/lib/node/node.js +++ b/lib/node/node.js @@ -113,7 +113,7 @@ Node.prototype.init = function init() { }); this.workers.on('log', (text, child) => { - this.logger.debug(`Worker ${child.id} says:`); + this.logger.debug('Worker %d says:', child.id); this.logger.debug(text); }); @@ -291,6 +291,8 @@ Node.prototype.use = function use(plugin) { case 'mempool': case 'miner': case 'pool': + case 'rpc': + case 'http': assert(false, `${plugin.id} is already added.`); break; } @@ -319,16 +321,17 @@ Node.prototype.has = function has(name) { }; /** - * Require a plugin. + * Get a plugin. * @param {String} name - * @returns {Object} + * @returns {Object|null} */ -Node.prototype.require = function require(name) { +Node.prototype.get = function get(name) { let plugin; assert(typeof name === 'string', 'Plugin name must be a string.'); + // Reserved names. switch (name) { case 'chain': assert(this.chain, 'chain is not loaded.'); @@ -345,11 +348,27 @@ Node.prototype.require = function require(name) { case 'pool': assert(this.pool, 'pool is not loaded.'); return this.pool; + case 'rpc': + assert(this.rpc, 'rpc is not loaded.'); + return this.rpc; + case 'http': + assert(this.http, 'http is not loaded.'); + return this.http; } - plugin = this.plugins[name]; - assert(plugin, `${name} is not loaded.`); + return this.plugins[name]; +}; +/** + * Require a plugin. + * @param {String} name + * @returns {Object} + * @throws {Error} on onloaded plugin + */ + +Node.prototype.require = function require(name) { + let plugin = this.get(name); + assert(plugin, `${name} is not loaded.`); return plugin; }; @@ -362,13 +381,11 @@ Node.prototype.loadPlugins = function loadPlugins() { let plugins = this.config.array('plugins', []); let loader = this.config.func('loader'); - if (!loader) - return; - for (let plugin of plugins) { - if (typeof plugin === 'string') + if (typeof plugin === 'string') { + assert(loader, 'Must pass a loader function.'); plugin = loader(plugin); - + } this.use(plugin); } }; diff --git a/lib/wallet/server.js b/lib/wallet/server.js index 4f752f8a..b9cac845 100644 --- a/lib/wallet/server.js +++ b/lib/wallet/server.js @@ -68,7 +68,7 @@ server.create = function create(options) { }); workers.on('log', (text, child) => { - logger.debug(`Worker ${child.id} says:`); + logger.debug('Worker %d says:', child.id); logger.debug(text); });