monolite
v0.9.2
Published
Structural-sharing tree object modifier
Downloads
1,304
Readme
Install
yarn add monolite
Babel Plugin
Monolite by default makes usage of ES2015 Proxy
, which permits to transform accessor functions to accessor chains.
// Using accessor function
set(state, (_) => _.nested.prop, 42)
// Using accessor chain
set(state, ['nested', 'prop'], 42)
To target older runtimes, which do not support Proxy
, a Babel plugin is available, doing these transformations statically, at compile-time.
Setup
yarn add --dev babel-plugin-monolite
In babel.config.js, simply add:
module.exports = (api) => {
return {
presets: [
// ...
],
plugins: ['babel-plugin-monolite'],
}
}
Voilà, all your accessor functions will be transformed to accessor chains during transpilation.
TypeScript
The main motivation of this library is to preserve static-typing, type-inference and completion provided by TypeScript, which is not supported by Immutable.js when working on trees.
Monolite takes Plain-Old JavaScript Objects and returns Plain-Old JavaScript Objects. Accessors permit TypeScript to understand the types you're dealing with and to provide completion and linting as if you were working directly on these objects.