UNPKG

xcraft-core-log

Version:
115 lines (100 loc) 2.54 kB
'use strict'; const xLog = require('.'); let appId = '$'; let tribe = ''; try { const xHost = require('xcraft-core-host'); appId = xHost.appId; tribe = xHost.appArgs().tribe ? `-${xHost.appArgs().tribe}` : ''; } catch (ex) { if (ex.code !== 'MODULE_NOT_FOUND') { throw ex; } } const cmd = {}; const cmdNamespace = `${appId}${tribe}`; const enableApp = `${cmdNamespace}.enable`; const disableApp = `${cmdNamespace}.disable`; const modulenamesApp = `${cmdNamespace}.modulenames`; const verbosityApp = `${cmdNamespace}.verbosity`; const enable = (name) => (msg, resp) => { const modes = msg.data && msg.data.modes; xLog.setEnable(true, modes); resp.events.send(`buslog.${name}.${msg.id}.finished`); }; cmd.enable = enable('enable'); cmd[enableApp] = enable(enableApp); const disable = (name) => (msg, resp) => { const modes = msg.data && msg.data.modes; xLog.setEnable(false, modes); resp.events.send(`buslog.${name}.${msg.id}.finished`); }; cmd.disable = disable('disable'); cmd[disableApp] = disable(disableApp); const modulenames = (name) => (msg, resp) => { const moduleNames = msg.data.modulenames || []; xLog.setModuleNames(moduleNames); resp.events.send(`buslog.${name}.${msg.id}.finished`); }; cmd.modulenames = modulenames('modulenames'); cmd[modulenamesApp] = modulenames(modulenamesApp); const verbosity = (name) => (msg, resp) => { const level = msg.data.level; xLog.setGlobalVerbosity(level); resp.events.send(`buslog.${name}.${msg.id}.finished`); }; cmd.verbosity = verbosity('verbosity'); cmd[verbosityApp] = verbosity(verbosityApp); const rc = { enable: { parallel: true, desc: 'enable buslog', options: { params: { optional: 'modes...', }, }, }, disable: { parallel: true, desc: 'disable buslog', options: { params: { optional: 'modes...', }, }, }, modulenames: { parallel: true, desc: 'set filtering based on module names', options: { params: { optional: 'modulenames...', }, }, }, verbosity: { parallel: true, desc: 'set verbosity level', options: { params: { required: 'level', }, }, }, }; rc[enableApp] = rc.enable; rc[disableApp] = rc.disable; rc[modulenamesApp] = rc.modulenames; rc[verbosityApp] = rc.verbosity; /** * Retrieve the list of available commands. * * @returns {Object} The list and definitions of commands. */ exports.xcraftCommands = function () { return { handlers: cmd, rc, }; };