ayanami
Version:
A better way to react with state
56 lines (55 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logStateAction = exports.disableReduxLog = exports.enableReduxLog = void 0;
var tslib_1 = require("tslib");
var noop_1 = tslib_1.__importDefault(require("lodash/noop"));
var FakeReduxDevTools = {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
connect: function (_config) { return ({ send: noop_1.default, init: noop_1.default }); },
};
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;
function enableReduxLog() {
isEnableLog = true;
}
exports.enableReduxLog = enableReduxLog;
function disableReduxLog() {
isEnableLog = false;
}
exports.disableReduxLog = disableReduxLog;
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);
}
}
exports.logStateAction = logStateAction;
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;
}