⚠ Project Discontinuation
We regret to inform you that this project is no longer maintained. For an alternative solution, consider using React Query
Data Provider is a data provider (surprise!) with states and built-in cache for JavaScript apps.
The main target of the library are front-end applications, but it could be used also in Node.js.
It helps you providing async data to your components informing them about loading and error states. It also provides a cache layer, so you don´t have to worry about when to read the data, and allows you to combine the results of different data providers using a syntax very similar to the known Reselect, recalculating them only when one of the dependencies cache is cleaned.
As its states are managed with Redux, you can take advantage of his large ecosystem of addons, which will improve the developer experience. (You don't need to use Redux directly in your application if you don't want, the library includes its own internal store for that purpose, which can be migrated to your own store easily for debugging purposes, for example).
You can use Data Provider with React, or with any other view library. Separated addons are available for that purpose, as @data-provider/react.
Data Provider is agnostic about data origins, so it can be used to read data from a REST API, from localStorage
, or from any other origin. Choose one of the available addons depending of the type of the origin you want to read from, as @data-provider/axios
, or @data-provider/browser-storage
.
It has a light weight, 4.2KB gzipped in UMD format (you have to add the Redux weight to this), and addons usually are even lighter.
To check out docs, visit data-provider.org.
Project | Status | Description |
---|---|---|
core | Agnostic base Provider and Selector | |
axios | API REST data origin using Axios | |
browser-storage | Data origin for localStorage and sessionStorage |
|
memory | Data origin for objects in memory | |
prismic | Data origin for Prismic CMS API | |
react | React bindings. Provides hooks and HOCs |
Contributors are welcome. Please read the contributing guidelines and code of conduct.