/supabase-cache-helpers

A collection of framework specific Cache utilities for working with Supabase.

Primary LanguageTypeScriptMIT LicenseMIT

Supabase Cache Helpers

Supabase Cache Helpers

A collection of framework specific Cache utilities for working with Supabase.

Latest build GitHub Stars codecov

Introduction

The cache helpers bridge the gap between popular frontend cache management solutions such as SWR or React Query, and the Supabase client libraries. All features of postgrest-js, storage-js and realtime-js are supported. 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 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 or React Query out-of-the-box.

  • Seamless integration with SWR and React Query
  • 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 objects

And a lot more.


View full documentation and examples on supabase-cache-helpers.vercel.app.


📦 Packages

The cache helpers are split up into reusable libraries.

Primary Packages

Shared Packages

These are not meant for direct usage.

  • eslint-config-custom: eslint configurations
  • jest-presets: jest presets
  • postgrest-core: shared logic for postgrest-js
  • storage-core: shared logic for storage-js operations
  • tsconfig: tsconfig.jsons used throughout the monorepo

Each package/app is 100% TypeScript.

❤️ Sponsors

Mateo
Mateo
(we are hiring!)
Supabase
Supabase
https://supabase.com
Marviel
Luke Bechtel
@Marviel