Open Buom01 opened 6 years ago
Hello,
The usage here is incorrect. stockroom/inline
accepts an instance of Stockroom (as returned by stockroom/worker
), but you're passing it a worker. So it's not a bug, but I think the documentation could definitely be more clear, and perhaps some examples would help.
See below:
store.js: (doesn't care if it's in a worker or not)
import createStore from 'stockroom/worker';
const store = createStore({ count: 0 });
store.registerActions({
increment: state => ({ count: state.count+1 })
});
export default store;
worker usage with stockroom:
import createWorkerStore from 'stockroom';
import StoreWorker from 'workerize-loader!./store';
const store = createWorkerStore(new StoreWorker());
store.subscribe(console.log);
store.action('increment')();
inline (no worker) usage with stockroom/inline:
import createInlineStore from 'stockroom/inline';
import store from './store';
const store = createInlineStore(store);
store.subscribe(console.log);
store.action('increment')();
Hi, I expect a lot of bug with stockroom (or maybe I using it wrong ?)
I extract a little part of my webapp to inspect it, but I encounter an (other) probleme. To reproduce the bugs : https://github.com/Buom01/stockroom-bug-demo (created with preact-cli)
the
subscribe
methodIn this case, the "normal" usage, the store have not got the
subscribe
method defined:While in the "inline" usage, the method
subscribe
is defined normally:A probleme of shared store in the "inline" mod
Sorry because I can not totally reproduce the bug that I want to resolve due to the probleme with the
subscribe
method. The probleme can be showed partially in the demo provided: I add only one document to each store, but in the inline mod, the store are mixed and finally they share their data. Then, they have both the same data while they should be isolated like in the worker mod. (Confirmed in my local project)Tested in both Chromium(Version 67.0.3396.79 (Build de développement) Fedora Project (64 bits)) and Firefox(61.0) (latest)