monolite
TypeScript icon, indicating that this package has built-in type declarations

0.9.2 • Public • Published

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
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.

Readme

Keywords

none

Package Sidebar

Install

npm i monolite

Weekly Downloads

286

Version

0.9.2

License

MIT

Unpacked Size

7.39 kB

Total Files

4

Last publish

Collaborators

  • kube