Add support for external loggers

This commit is contained in:
He4eT 2021-02-23 15:09:20 +05:00
commit d9ded0c3d6
3 changed files with 25 additions and 11 deletions

View file

@ -5,7 +5,7 @@
const GlkOte = require('./glkOte/glkote-term') const GlkOte = require('./glkOte/glkote-term')
class CheapGlkOte extends GlkOte { class CheapGlkOte extends GlkOte {
constructor(handlers) { constructor(handlers, loggers) {
super() super()
this.window = null this.window = null
@ -94,16 +94,16 @@ class CheapGlkOte extends GlkOte {
}) })
} }
log(msg) { log(message) {
console.log(`[log]: ${msg}`) loggers.log(message)
} }
warning(msg) { warning(message) {
console.warn(`[warning]: ${msg}`) loggers.warn(message)
} }
error(message) { error(message) {
console.error(`[error]: ${message}`) loggers.error(message)
} }
} }

View file

@ -4,7 +4,7 @@
*/ */
class FakeDialog { class FakeDialog {
constructor(handlers) { constructor(handlers, loggers) {
this.streaming = false this.streaming = false
this.handlers = handlers this.handlers = handlers
} }
@ -32,7 +32,15 @@ class FakeDialog {
} }
log(message) { log(message) {
console.log(message) loggers.log(message)
}
warning(message) {
loggers.warn(message)
}
error(message) {
loggers.error(message)
} }
} }

View file

@ -15,12 +15,18 @@ const noopHandlers = [
'setSend' 'setSend'
].reduce((acc, x) => ((acc[x] = noop), acc), {}) ].reduce((acc, x) => ((acc[x] = noop), acc), {})
module.exports = handlers_ => { const defaultLoggers = {
log: console.log,
warning: console.warn,
error: console.error
}
module.exports = (handlers_, loggers = defaultLoggers) => {
const handlers = const handlers =
Object.assign({}, noopHandlers, handlers_) Object.assign({}, noopHandlers, handlers_)
const Dialog = new FakeDialog(handlers) const Dialog = new FakeDialog(handlers, loggers)
const GlkOte = new CheapGlkOte(handlers) const GlkOte = new CheapGlkOte(handlers, loggers)
const sendFn = GlkOte.sendFn.bind(GlkOte) const sendFn = GlkOte.sendFn.bind(GlkOte)