GitHub - madeinfree/immutable-js-tools: util tools for immutable.js (original) (raw)
Immutable Js Tools
Installation
Test Version 0.0.5
npm install --save immutable-js-tools
What Is Immutable Js ?
if you are in the beginning with immutable, you have to go here to understanding it.
What Is Immutable Js Tools ?
Do you always diving in immutable hell ? This maybe help you to use it clearly.
- only use the
setIn
andgetIn
cursor with this tools.
Quick Start
import Im from 'immutable'; import ImUtil from './src/'; const obj = { items: [ { id: 1, item: 'bar' } ], selected: [] } const _D = new ImUtil(Im.fromJS(obj)); let _O; /*
- basic to getIn key */ _O = _D.getIn(['items', 0]); // Map { "id": 1, "item": "bar" }
/*
- addList(cursor, value);
- handle add list method */ _O = _D.addList(['selected'], 'foo'); // Map { "items": List [ Map { "id": 1, "item": "bar" } ], "selected": List [ "foo" ] }
/*
- reverse(cursor);
- reverse the boolean */ _O = _D.addList(['selected'], true); // Map { "items": List [ Map { "id": 1, "item": "bar" } ], "selected": List [ "foo", true ] } _O = _D.reverse(['selected', 1]); // Map { "items": List [ Map { "id": 1, "item": "bar" } ], "selected": List [ "foo", false ] }
/*
- auto bind Functions of Sugar
- selected => getSelected(); */ console.log(_O.getSelected()); // List [ "foo", false ]
Document
API
- Immutable.Map
- setEmptyMap(cursor)
- mergeInMap(cursor, data)
- Immutable.List
- addList(cursor, value)
- removeList(cursor, index)
- clearList(cursor - will rename to setEmptyList, version 1.0.0)
- setEmptyList() or setEmptyList(cursor)
- Immutable.Set
- clearSet(cursor)
- little helper
- reverse(cursor)
- basic getter & setter
- getIn(cursor)
- setIn(cursor, data)
- hasIn(cursor)
- getJS(cursor)
- basic validation: static method
- isMap
- isList
- auto bind Functions of Sugar method helper
const _D = new ImUtil(Im.fromJS(obj)); const obj = { items: [ { id: 1, item: 'bar' } ], selected: [1, 2, 3] } //Functions of Sugar console.log(_D.getItems().toJS()); // => [ { id: 1, item: 'bar' } ] console.log(_D.getSelected().toJS()); // => [1, 2, 3]
TODO
- To support much method
- Documentation
License
MIT