data-provider / core

Async data provider agnostic about data origins
https://data-provider.javierbrea.com
Apache License 2.0
56 stars 1 forks source link
agnostic async cache data-provider events origins reactive redux reselect selectors state

Important Notice

⚠ Project Discontinuation
We regret to inform you that this project is no longer maintained. For an alternative solution, consider using React Query

Data Provider logo

Build Status Coverage Quality Gate Downloads Renovate Last release Last commit License


Introduction

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.

Documentation

To check out docs, visit data-provider.org.

Ecosystem

Project Status Description
core core-status Agnostic base Provider and Selector
axios axios-status API REST data origin using Axios
browser-storage browser-storage-status Data origin for localStorage and sessionStorage
memory memory-status Data origin for objects in memory
prismic prismic-status Data origin for Prismic CMS API
react react-status React bindings. Provides hooks and HOCs

Contributing

Contributors are welcome. Please read the contributing guidelines and code of conduct.