beaker-plugin-dat
Version:
Dat-protocol plugin for the Beaker browser
32 lines (28 loc) • 859 B
JavaScript
const log = require('loglevel')
const datProtocol = require('./protocols/dat')
const datAPI = require('./apis/dat')
const datInternalAPI = require('./apis/dat-internal')
// exported api
// =
module.exports = {
configure (opts) {
if (opts.logLevel)
log.setLevel(opts.logLevel)
},
webAPIs: [datInternalAPI, datAPI],
protocols: [datProtocol]
}
// internal
// =
// plug the logger to prepend [DAT] support spread args
var originalFactory = log.methodFactory
log.methodFactory = function (methodName, logLevel, loggerName) {
var rawMethod = originalFactory(methodName, logLevel, loggerName)
return (...message) => rawMethod(message.map(stringifyIfNeeded).join(' '))
}
function stringifyIfNeeded (obj) {
if (obj && typeof obj == 'object')
return JSON.stringify(obj)
return obj
}
log.setLevel(process.env.beaker_log_level || 'warn')