UNPKG

ayanami

Version:
49 lines (48 loc) 1.42 kB
import noop from 'lodash/noop'; var FakeReduxDevTools = { // eslint-disable-next-line @typescript-eslint/no-unused-vars connect: function (_config) { return ({ send: noop, init: noop }); }, }; var ReduxDevTools = (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__) || FakeReduxDevTools; var STATE = {}; var getDevTools = (function () { var devTools; return function () { if (!devTools) { devTools = ReduxDevTools.connect({ name: "Ayanami" }); devTools.init({}); } return devTools; }; })(); var isEnableLog = false; export function enableReduxLog() { isEnableLog = true; } export function disableReduxLog() { isEnableLog = false; } export function logStateAction(namespace, infos) { if (isEnableLog) { var action = { type: namespace + "/" + infos.actionName, params: filterParams(infos.params), }; if (infos.state) { STATE[namespace] = infos.state; } getDevTools().send(action, STATE); } } function filterParams(params) { if (params && typeof params === 'object') { if (params instanceof Event) { return "<<Event:" + params.type + ">>"; } else if (params.nativeEvent instanceof Event) { return "<<SyntheticEvent:" + params.nativeEvent.type + ">>"; } } return params; }