prisme-flow
Version:
prisme platform flow engine
69 lines (59 loc) • 2.25 kB
JavaScript
/**
* Created by prisme.io on 09/06/2017.
*/
var _ = require('underscore')
var clc = require('cli-color')
var green = clc.greenBright
var white = clc.white
var grey = clc.blackBright
module.exports = function (RED) {
function BotDebug (config) {
RED.nodes.createNode(this, config)
var node = this
this.chatId = config.chatId
this.on('input', function (msg) {
// var context = node.context();
// var transport = msg.originalMessage != null && msg.originalMessage.transport != null ? msg.originalMessage.transport : null;
// var chatId = msg.payload.chatId || (originalMessage && originalMessage.chat.id);
if (_.isFunction(msg.chat)) {
var chatContext = msg.chat()
// format a little
// eslint-disable-next-line no-console
console.log('')
// eslint-disable-next-line no-console
console.log(grey('------ Bot debug ----------------'))
// eslint-disable-next-line no-console
console.log(green('Transport:'), white(chatContext.get('transport')))
// eslint-disable-next-line no-console
console.log(green('chatId:'), white(chatContext.get('chatId')))
// push out context
if (chatContext != null) {
// eslint-disable-next-line no-console
console.log(grey('------ Bot context --------------'))
_(chatContext.all()).each(function (value, key) {
// eslint-disable-next-line no-console
console.log(green(key + ':'), value instanceof Buffer ? '<Buffer>' : white(value))
})
}
} else {
// normal message here
// eslint-disable-next-line no-console
console.log('')
// eslint-disable-next-line no-console
console.log(grey('------ Message ----------------'))
if (_.isString(msg.payload)) {
// eslint-disable-next-line no-console
console.log(msg.payload)
} else {
// eslint-disable-next-line no-console
console.log(JSON.stringify(msg.payload))
}
}
// eslint-disable-next-line no-console
console.log('')
// show on console
node.warn(chatContext.all())
})
}
RED.nodes.registerType('bot-debug', BotDebug)
}