Features:
Lightweight object state management
Open Source Project
Small App Size (~2Kb)
Easy to use with nay framework, just a callback on change
About:
AnyState is an open source programs built using Typescript (for a more secure environment).
Usage
Initialize anyState object with createStore()
const anyState = createStore({
name: 'John',
age: 30,
children: [{
name: 'Bob',
age: 5,
}]
});
Set state
anyState.setState({
name: 'John',
age: 30,
children: [{
name: 'Bob',
age: 5,
}]
});
Get state
const state = anyState.getState();
Set item
// const path = 'name';
const path = 'children[0].name'; // the path to the item
anyState.setItem(path, 'Jane');
Get item
const path = 'children[0]';
const child = anyState.getItem(path);
Watch onChange
const path = 'name'; // path to item
anyState.watch(path, (nextState, prevState) => {
// do anything
});
Examples
Links:
GitHub: https://github.com/vyquocvu/anystate
Npm: https://www.npmjs.com/package/anystate
MySite: https://vyquocvu.co/
Happy coding! 🎉
Accepted any advices.
Top comments (5)
Love the initiative! :)
My feedback on it looking at the API:
This set and get methods for items are using array indexes directly which is bad yada yada.
I'd recommend to use nested objects so you can identify pieces of data easily:
So then you can
For example. This way you can also get rid of
createState()
because setState will create it if not exists andgetItem
is no longer necessary.*Also remember that you need some way to ensure that you can't override a state by redefining it anywhere else
Check this as well to see if it suits this project.
Do you plan a roadmap for AnyState? That would be nice! 👌😁
Looking forward to see how it evolves
Thanks @joelbonetr so much!
I very appreciate your advice, i will improve this project day by day.
awesome! :)
that's great, thanks @lukeshiru
my brother is fucking good