Main idea behind this library is to provide few functionalities over default Javascript Objects.
yarn add jmon
var JMON = require('jmon');
const INPUT_DATA = {
'JMON': {
'name': 'JMON',
'author': 'Bibek',
'url': 'https://github.com/bibekluitel/JMON',
},
};
const jmonData = new JMON(INPUT_DATA);
/**
* OUTPUT: jmonData
* ----------------
*
* JMON({
* initialData: {
* 'JMON': JMON({
* initialData: {
* 'name': 'JMON',
* 'author': 'Bibek',
* 'url': 'https://github.com/bibekluitel/JMON',
* },
* data: {
* 'name': 'JMON',
* 'author': 'Bibek',
* 'url': 'https://github.com/bibekluitel/JMON',
* },
* 'isCreated': false,
* 'isUpdated': false,
* 'isDeleted': false
* }),
* }
* data: {
* 'JMON': JMON({
* initialData: {
* 'name': 'JMON',
* 'author': 'Bibek',
* 'url': 'https://github.com/bibekluitel/JMON',
* },
* data: {
* 'name': 'JMON',
* 'author': 'Bibek',
* 'url': 'https://github.com/bibekluitel/JMON',
* },
* 'isCreated': false,
* 'isUpdated': false,
* 'isDeleted': false
* }),
* }
* 'isCreated': false,
* 'isUpdated': false,
* 'isDeleted': false
* })
-
set(): This function can be used to change any value at any key or add a new {key:value} in the JMON object
ExamplejmonData.get('JMON').set('name', 'Arshad'); // OR jmonData.get('JMON').set('profile': { 'name': 'Arshad', 'role': 'Developer' });
-
get(): This function can be used to fetch value at any level from the JMON object
ExamplejmonData.get('JMON').get('name'); // OR jmonData.get('JMON.name');
-
isModified: This function can be used to check if any level of the object is modified
Examplejmon.isModified(); // OR jmon.get('JMON.name').isModified();
-
commit: This function can be used to commit you current changes, this basically clears all the tracks of changes and treats the changed values as initialValue of the JMON object. (It resets all the isModified flags)
Examplejmon.commit();
- JMON initialization with any primitive types will throw an
Error
object. It only supports JSON and Arrays of JSON
We are constantly working on improving JMON and we need all the help we can get. You can contribute to this project by giving suggestions, fixing open issues or by implementing a new feature. Read our contibution guide here