Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/psteinroe/supabase-cache-helpers
A collection of framework specific Cache utilities for working with Supabase.
https://github.com/psteinroe/supabase-cache-helpers
Last synced: 6 days ago
JSON representation
A collection of framework specific Cache utilities for working with Supabase.
- Host: GitHub
- URL: https://github.com/psteinroe/supabase-cache-helpers
- Owner: psteinroe
- License: mit
- Created: 2022-08-12T22:30:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-29T22:34:12.000Z (8 months ago)
- Last Synced: 2024-05-02T03:24:55.347Z (8 months ago)
- Language: TypeScript
- Homepage: https://supabase-cache-helpers.vercel.app
- Size: 3.15 MB
- Stars: 371
- Watchers: 2
- Forks: 20
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-supabase - Supabase Cache Helpers - Collection of framework specific Cache utilities for working with Supabase. (Community Tools)
README
[![Supabase Cache Helpers](./docs/public/og-image.png)](https://supabase-cache-helpers.vercel.app)
# Supabase Cache Helpers
**A collection of framework specific Cache utilities for working with Supabase.**
[![codecov](https://codecov.io/gh/psteinroe/supabase-cache-helpers/branch/main/graph/badge.svg?token=SPMWSVBRGX)](https://codecov.io/gh/psteinroe/supabase-cache-helpers)## Introduction
The cache helpers bridge the gap between popular frontend cache management solutions such as [SWR](https://swr.vercel.app) or [React Query](https://tanstack.com/query/latest), and the Supabase client libraries. All features of [`postgrest-js`](https://github.com/supabase/postgrest-js), [`storage-js`](https://github.com/supabase/storage-js) and [`realtime-js`](https://github.com/supabase/realtime-js) are supported. It also provides a simple server-side abstraction to cache queries to the `PostgREST` API. The cache helpers parse any query into a unique and definite query key, and automatically populates your query cache with every mutation using implicit knowledge of the schema. Check out the [demo](https://supabase-cache-helpers-swr.vercel.app) and find out how it feels like for your users.
## Features
With just one single line of code, you can simplify the logic of **fetching, subscribing to updates, and mutating data as well as storage objects** in your project, and have all the amazing features of [SWR](https://swr.vercel.app) or [React Query](https://tanstack.com/query/latest) out-of-the-box.
- **Seamless** integration with [SWR](https://swr.vercel.app) and [React Query](https://tanstack.com/query/latest)
- Support for **Server-Side** queries
- **Automatic** cache key generation
- Easy **Pagination** and **Infinite Scroll** queries
- **Insert**, **update**, **upsert** and **delete** mutations
- **Auto-populate** cache after mutations and subscriptions
- **Auto-expand** mutation queries based on existing cache data to keep app up-to-date
- One-liner to upload, download and remove **Supabase Storage** objectsAnd a lot [more](https://supabase-cache-helpers.vercel.app).
---
**View full documentation and examples on [supabase-cache-helpers.vercel.app](https://supabase-cache-helpers.vercel.app).**
## 📦 Packages
The cache helpers are split up into reusable libraries.
### Primary Packages
- [`postgrest-swr`](./packages/postgrest-swr/README.md): [SWR](https://swr.vercel.app) wrapper for [postgrest-js](https://github.com/supabase/postgrest-js).
- [`storage-swr`](./packages/storage-swr/README.md): [SWR](https://swr.vercel.app) wrapper for storage [storage-js](https://github.com/supabase/storage-js)
- [`postgrest-react-query`](./packages/postgrest-react-query/README.md): [React Query](https://tanstack.com/query/latest) wrapper for [postgrest-js](https://github.com/supabase/postgrest-js)
- [`storage-react-query`](./packages/storage-react-query/README.md): [React Query](https://tanstack.com/query/latest) wrapper for storage [storage-js](https://github.com/supabase/storage-js)
- [`postgrest-server`](./packages/postgrest-server/README.md): Server-side caching wrapper for [postgrest-js](https://github.com/supabase/postgrest-js).### Shared Packages
These are not meant for direct usage.
- `jest-presets`: `jest` presets
- `postgrest-core`: shared logic for [postgrest-js](https://github.com/supabase/postgrest-js)
- `storage-core`: shared logic for [storage-js](https://github.com/supabase/storage-js) operations
- `tsconfig`: `tsconfig.json`s used throughout the monorepoEach package/app is 100% [TypeScript](https://www.typescriptlang.org/).
## ❤️ Sponsors
Mateo
(we are hiring!)