JS Library for State management and Data synchronization between Applications
Kaaya is a delightful javascript library which target on state management and data synchronization between Applications.
Still under development, do not use except for testing
.ini
, .yaml
, .json
).csv
, .yaml
, .json
)
import kaaya from "kaaya"
// create a new store with custom data
const store = kaaya.createKeyStore({ a: 1, b: 2 })
store.data.a = 5
store.data.a = 10
// so far everything looks normal: { a: 10, b: 2 }
// let's play with the history
store.undo()
store.data // { a: 5, b: 2 }
store.undo()
store.data // { a: 1, b: 2 }
store.redo()
store.data // { a: 5, b: 2 }
// create other store and sync them with our first one data
const client1 = kaaya.createKeyStore({ a: 0, b: 6 })
client1.sync(store.history)
client1.data // <= { a: 5, b: 6 }
const client2 = kaaya.createKeyStore({ a: 0, b: 8 })
client2.sync(store.history)
client2.data // <= { a: 5, b: 8 }
// and now let's make a change and progate it
store.data.a += 10
client1.sync(store.history)
client1.data // { a: 15, b: 6 } properly sync :)
client2.data // { a: 5, b: 8 } not sync yet
And more ….
If you want to take a look at the code or help, it’s quite easy to get started
npm install
npm run dev
This will start a server on http://localhost:8080/ where you can test few samples with the current version
When you are done with your change, just make sure to run tests npm run test
To make a build (generated in build/
)
npm run build
.push
or .slice
cause the whole object to be mutated and not just the value being changedSet
or Map