diff --git a/src/helpers/db.js b/src/helpers/db.js index fb1dfa65..3bc2574f 100644 --- a/src/helpers/db.js +++ b/src/helpers/db.js @@ -1,5 +1,6 @@ // @flow +import logger from 'logger' import Store from 'electron-store' import set from 'lodash/set' import get from 'lodash/get' @@ -54,37 +55,31 @@ export default { get: (key: DBKey, defaults: any): any => { const db = store(key) const data = db.get('data', defaults) + logger.onDB('read', key, data) return middleware('get', key, data) }, set: (key: DBKey, val: any) => { const db = store(key) - val = middleware('set', key, val) - + logger.onDB('write', key, val) db.set('data', val) - return val }, getIn: (key: DBKey, path: string, defaultValue: any) => { const db = store(key) - let data = db.get('data') data = middleware('get', key, data) - return get(data, path, defaultValue) }, setIn: (key: DBKey, path: string, val: any) => { const db = store(key) const data = db.get('data') - val = middleware('set', key, val) set(data, path, val) - db.set('data', data) - return val }, @@ -93,6 +88,7 @@ export default { const keys = ['countervalues'] keys.forEach(k => { const db = store(k) + logger.onDB('clear', k) db.clear() }) }, @@ -101,6 +97,7 @@ export default { const keys = ['settings', 'accounts', 'countervalues'] keys.forEach(k => { const db = store(k) + logger.onDB('clear', k) db.clear() }) }, diff --git a/src/helpers/ipc.js b/src/helpers/ipc.js index dac143ec..26e3df5e 100644 --- a/src/helpers/ipc.js +++ b/src/helpers/ipc.js @@ -47,22 +47,20 @@ function ipcRendererSendCommand(id: string, data: In): Observable { function handleCommandEvent(e, msg: Msg) { if (requestId !== msg.requestId) return + logger.onCmd(msg.type, id, Date.now() - startTime, msg.data) switch (msg.type) { case 'cmd.NEXT': - logger.log(`● CMD ${id}`, msg.data) if (msg.data) { o.next(msg.data) } break case 'cmd.COMPLETE': - logger.log(`✔ CMD ${id} finished in ${(Date.now() - startTime).toFixed(0)}ms`) o.complete() ipcRenderer.removeListener('command-event', handleCommandEvent) break case 'cmd.ERROR': - logger.warn(`✖ CMD ${id} error`, msg.data) o.error(msg.data) ipcRenderer.removeListener('command-event', handleCommandEvent) break @@ -75,7 +73,7 @@ function ipcRendererSendCommand(id: string, data: In): Observable { ipcRenderer.send('command', { id, data, requestId }) - logger.log(`CMD ${id}.send(`, data, ')') + logger.onCmd('cmd.START', id, 0, data) return unsubscribe }) diff --git a/src/logger.js b/src/logger.js index 9e2fc52e..c48d8f40 100644 --- a/src/logger.js +++ b/src/logger.js @@ -47,10 +47,41 @@ const makeSerializableLog = (o: mixed) => { return String(o) } +const logCmds = !__DEV__ || process.env.DEBUG_COMMANDS +const logDb = !__DEV__ || process.env.DEBUG_DB const logRedux = !__DEV__ || process.env.DEBUG_ACTION -const logTabkey = __DEV__ || process.env.DEBUG_TAB_KEY +const logTabkey = !__DEV__ || process.env.DEBUG_TAB_KEY export default { + onCmd: (type: string, id: string, spentTime: number, data?: any) => { + if (logCmds) { + switch (type) { + case 'cmd.START': + console.log(`CMD ${id}.send(`, data, ')') + break + case 'cmd.NEXT': + console.log(`● CMD ${id}`, data) + break + case 'cmd.COMPLETE': + console.log(`✔ CMD ${id} finished in ${spentTime.toFixed(0)}ms`) + break + case 'cmd.ERROR': + console.warn(`✖ CMD ${id} error`, data) + break + default: + } + } + addLog('cmd', type, id, spentTime, data) + }, + + onDB: (way: 'read' | 'write' | 'clear', name: string, obj: ?Object) => { + const msg = `📁 ${way} ${name}:` + if (logDb) { + console.log(msg, obj) + } + addLog('db', msg) + }, + // tracks Redux actions (NB not all actions are serializable) onReduxAction: (action: Object) => {