FetchX is a fetching library made for React built with axios and mobx that give you an easy way to handle CRUD of entities.
Using npm:
npm i @euk-labs/fetchx mobx mobx-react-lite
Using yarn:
yarn add @euk-labs/fetchx mobx mobx-react-lite
- Axios is used to fetch data from HTTP requests
- MobX is used to generate Stores and Hooks powered by these stores to make a beautiful reactive way to control the data on your interfaces.
The HttpService is a class that will work as a wrapper for axios. It will handle all the requests and provide helpers to make your life easier.
Repositories will abstract the CRUD operations of your entities. No state is stored in the repository, it only provides methods to fetch, create, update and delete entities.
ListStores are a set of states and actions built with MobX to handle a list of entities with resources like pagination, filters and inifinite scroll strategies. They need a repository to work and know how to fetch the data.
Please read the MobX documentation to know more about the different ways to make your components reactive.
A hook to use the ListStore in your components. It will return the current state of the ListStore and the actions to interact with it. Like ListStore, it needs a repository to work.
In contrast with the ListStore, EntityStores can only handle a single entity. It can be used to fetch the entity by an identifier, update the loaded entity and delete it.
A hook to use the EntityStore in your components. It will return the current state of the EntityStore and the actions to interact with it. Like EntityStore, it needs a repository to work.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.