-
-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Description
We currently have two external dependencies: https://github.com/zertosh/loose-envify and https://github.com/benlesh/symbol-observable .
loose-envify
appears to be used in package.json
, but only as some kind of polyfill / build plugin for Browserify:
Lines 102 to 106 in 85024d4
"browserify": { | |
"transform": [ | |
"loose-envify" | |
] | |
}, |
symbol-observable
is used in createStore
as a polyfill for Symbol.observable
, to allow compatibility for treating the Redux store as an observable:
Line 1 in 85024d4
import $$observable from 'symbol-observable' |
Lines 331 to 333 in 85024d4
[$$observable]() { | |
return this | |
} |
I would like to strongly consider dropping both of those dependencies if at all possible.
I question whether we need to have any specific support for Browserify in here. If there's a build step that needs to be done, let the end users take care of it. No reason to have an installation dep just for that.
symbol-observable
boils down to this 15-line file for the polyfill plus another 15 lines for figuring out what the global object is.
@davidkpiano suggests rolling our own symbol-observable
if really needed.
Finally, we are currently talking about adding ts-toolbelt
as a dependency for its compose
function. I would like us to seriously investigate whatever other alternatives are out there to adding a dep, even if it's one that ultimately compiles away.