node: add node.get() for plugins.
This commit is contained in:
parent
7530359b55
commit
b52a5e3fd2
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
@ -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);
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user