From 4d862dc216450f8ead1426d1ed9465dcd9af73e9 Mon Sep 17 00:00:00 2001 From: Linus Miller Date: Sun, 1 Dec 2019 14:47:14 +0100 Subject: [PATCH 01/18] Implement new action creator logic --- devtools.js | 2 +- package.json | 3 ++- src/index.js | 16 +++++----------- src/util.js | 5 +++-- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/devtools.js b/devtools.js index 6c6b2f1..28fec49 100644 --- a/devtools.js +++ b/devtools.js @@ -19,7 +19,7 @@ module.exports = function unistoreDevTools(store) { }); store.devtools.init(store.getState()); store.subscribe(function (state, action) { - var actionName = action && action.name || 'setState'; + var actionName = action && (action.name || action.type) || 'setState'; if (!ignoreState) { store.devtools.send(actionName, state); diff --git a/package.json b/package.json index 60f688e..c5d27b0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "eslintConfig": { "extends": "eslint-config-developit", "rules": { - "prefer-rest-params": 0 + "prefer-rest-params": 0, + "prefer-spread": 0 } }, "bundlesize": [ diff --git a/src/index.js b/src/index.js index 4df2006..ffb9e63 100644 --- a/src/index.js +++ b/src/index.js @@ -52,17 +52,11 @@ export default function createStore(state) { function apply(result) { setState(result, false, action); } - - // Note: perf tests verifying this implementation: https://esbench.com/bench/5a295e6299634800a0349500 - return function() { - let args = [state]; - for (let i=0; i Date: Sun, 1 Dec 2019 14:54:48 +0100 Subject: [PATCH 02/18] Update tests to work with new action creators --- test/preact/builds.test.js | 6 +++--- test/react/builds.test.js | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/preact/builds.test.js b/test/preact/builds.test.js index 7928df7..f2de43d 100644 --- a/test/preact/builds.test.js +++ b/test/preact/builds.test.js @@ -27,8 +27,8 @@ describe('build: default', () => { describe('smoke test (preact)', () => { it('should render', done => { const { Provider, connect } = preact; - const actions = ({ getState, setState }) => ({ - incrementTwice(state) { + const actions = { + incrementTwice: () => (state, { getState, setState }) => { setState({ count: state.count + 1 }); return new Promise(r => setTimeout(() => { @@ -36,7 +36,7 @@ describe('build: default', () => { }, 20) ); } - }); + }; const App = connect('count', actions)(({ count, incrementTwice }) => ( )); diff --git a/test/react/builds.test.js b/test/react/builds.test.js index 099bd68..27b9a34 100644 --- a/test/react/builds.test.js +++ b/test/react/builds.test.js @@ -33,8 +33,8 @@ describe('build: default', () => { describe('smoke test (react)', () => { it('should render', done => { const { Provider, connect } = react; - const actions = ({ getState, setState }) => ({ - incrementTwice(state) { + const actions = { + incrementTwice: () => (state, { getState, setState }) => { setState({ count: state.count + 1 }); return new Promise(r => setTimeout(() => { @@ -42,7 +42,7 @@ describe('build: default', () => { }, 20) ); } - }); + }; const App = connect('count', actions)(({ count, incrementTwice }) => (