Type-safe structural-sharing tree modifier.
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 // Using accessor chain
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 { 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.