nedux-logger
Version:
the next redux state management
35 lines (28 loc) • 907 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
const GLOBAL_STATE = {};
const DEVTOOL_INSTANCE = process.env.NODE_ENV === 'development' && window && // @ts-ignore
window.__REDUX_DEVTOOLS_EXTENSION__ && // @ts-ignore
window.__REDUX_DEVTOOLS_EXTENSION__.connect({
instanceId: '@nedux'
});
const logger = storeName => store => {
if (!DEVTOOL_INSTANCE) {
return;
}
const FORMATTED_STORE_NAME = storeName.toUpperCase();
GLOBAL_STATE[storeName] = {};
store.subscribe('', (value, key) => {
const type = key in GLOBAL_STATE[storeName] ? `[${FORMATTED_STORE_NAME}] UPDATE ${key}` : `[${FORMATTED_STORE_NAME}] INIT ${key}`;
DEVTOOL_INSTANCE.send({
type,
payload: value
}, GLOBAL_STATE);
GLOBAL_STATE[storeName] = { ...GLOBAL_STATE[storeName],
[key]: value
};
}, {
withInitialValue: true
});
};
exports.logger = logger;