@svadmin/refine-adapter
v0.9.4
Published
Universal Refine DataProvider adapter for svadmin
Readme
@svadmin/refine-adapter
Bridge any @refinedev data provider to svadmin
Why?
Refine has a rich ecosystem of battle-tested data providers for services like Supabase, Appwrite, Hasura, Strapi, Airtable, NestJS, and more. @svadmin/refine-adapter lets you use any of those providers inside svadmin — zero rewrite required.
Since Refine's DataProvider interface closely mirrors svadmin's DataProvider, the adapter is a thin bridge that binds method calls and forwards optional methods when present.
Installation
bun add @svadmin/refine-adapter @svadmin/coreIf your app is powered by Vite and also uses @svadmin/ui or @svadmin/supabase, exclude svadmin packages from optimizeDeps to avoid dev-time pre-bundling issues:
optimizeDeps: {
exclude: ['@svadmin/core', '@svadmin/ui', '@svadmin/supabase'],
}Then install the Refine data provider you want to use, e.g.:
bun add @refinedev/supabase
bun add @refinedev/strapi-v4
bun add @refinedev/appwriteUsage
import { createRefineAdapter } from '@svadmin/refine-adapter';
import { dataProvider as createRefineSupabase } from '@refinedev/supabase';
import { createClient } from '@supabase/supabase-js';
const supabaseClient = createClient(SUPABASE_URL, SUPABASE_KEY);
const refineProvider = createRefineSupabase(supabaseClient);
// Bridge it to svadmin
const dataProvider = createRefineAdapter(refineProvider);Then pass dataProvider to <AdminApp> or setDataProvider() as usual.
Supported Methods
| Method | Required | Description |
|--------|----------|-------------|
| getList | ✅ | List with pagination, sorting, filtering |
| getOne | ✅ | Get single record |
| create | ✅ | Create record |
| update | ✅ | Update record |
| deleteOne | ✅ | Delete record |
| getApiUrl | ✅ | Return API base URL |
| getMany | Optional | Bulk get |
| createMany | Optional | Bulk create |
| updateMany | Optional | Bulk update |
| deleteMany | Optional | Bulk delete |
| custom | Optional | Custom endpoint |
Optional methods are only wired if the underlying Refine provider implements them.
Which Svadmin Providers Use This?
The following @svadmin/* packages internally use @svadmin/refine-adapter to bridge their corresponding @refinedev/* provider:
| svadmin Package | Refine Package |
|-----------------|---------------|
| @svadmin/supabase | @refinedev/supabase |
| @svadmin/appwrite | @refinedev/appwrite |
| @svadmin/strapi | @refinedev/strapi-v4 |
| @svadmin/hasura | @refinedev/hasura |
| @svadmin/graphql | @refinedev/graphql |
| @svadmin/airtable | @refinedev/airtable |
| @svadmin/medusa | @refinedev/medusa |
| @svadmin/nestjs-query | @refinedev/nestjs-query |
| @svadmin/nestjsx-crud | @refinedev/nestjsx-crud |
| @svadmin/simple-rest | @refinedev/simple-rest |
License
MIT
