State management with models, immutable data and promise-based middlewares
Current Progress
- Support express-like(use-like) and promise-based middlewares
- Support Map, like
{count: Number, login: {name: String}}
- Support List, like
List(Number)
- Support Model, like
Model('User', {name: String})
- Support used with react component
- Support normalization and validation for key's value
- Support auto/manual garbage collection for non-referenced model records
- Support serialization for the state
- Consider practice on server render phase
- Consider partial data mount and unmount, to keep store low-memory cost
Features
- Use model to define your structured and relational data
- Support express-like(use-like) and promise-based middlewares
- Allow async call(promise/async-await) in the middleware
- Use immutable data and operates like immutable.js
Vision
//store.js//define a modelconst User = const House = const structure = loginUser: User houseCount: Number houses: prices: dollar: Number rmb: Numberconst store = structure;store; //router.jsconst router = ;routerall'/houses/query' { const store = reqstore; let state = storestate; return } //AllHousesListView.js { thisprops; } { const elHouseList = thispropshouses return <ul> elHouseList </ul> } AllHousesListView
Development
- Run
npm run watch
in other terminal - Run
npm run test:only -s
to do test only work - Run
npm test
to do lint, build and test, before publish - Run
npm run cover
to do coverage test - Run
npm run perf
to do performance check
License
Licensed under MIT
Copyright (c) 2017 kiliwalk