A collection of framework specific Cache utilities for working with Supabase.
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.
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.
The cache helpers are split up into reusable libraries.
postgrest-swr
: SWR wrapper for postgrest-js.storage-swr
: SWR wrapper for storage storage-jspostgrest-react-query
: React Query wrapper for postgrest-js.
These are not meant for direct usage.
eslint-config-custom
:eslint
configurationsjest-presets
:jest
presetspostgrest-fetcher
: common fetchers for postgrest-jspostgrest-filter
: parse a PostgREST query into json and build a local js filter function that tries to replicate the behavior of postgrespostgrest-mutate
: common mutation functions for postgrest-jspostgrest-shared
: utility functions and types shared among the PostgREST packagesprettier-config
:prettier
configurationsstorage-fetcher
: common fetchers for storage-js operationsstorage-mutate
: common mutation functions for storage-js operationstsconfig
:tsconfig.json
s used throughout the monorepo
Each package/app is 100% TypeScript.
Mateo (we are hiring!) |
Supabase https://supabase.com |
Luke Bechtel @Marviel |
This turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Jest for testing