TypeScript Types & Utilities
TypeScript Types
import type {
// Meta & response types
TaruviMeta,
TaruviListResponse,
// App provider meta types
FunctionMeta, // { kind: "function"; async?: boolean }
AnalyticsMeta, // { kind: "analytics" }
AppCustomMeta, // FunctionMeta | AnalyticsMeta
// Storage types
StorageUploadVariables, // { files: File[]; paths?: string[]; metadatas?: Record<string, unknown>[] }
// Auth types
LoginParams,
LogoutParams,
RegisterParams,
} from "@taruvi/refine-providers";
TaruviMeta
Extends Refine's MetaQuery. Used in the meta parameter of data provider hooks.
interface TaruviMeta extends MetaQuery {
populate?: string | string[];
headers?: Record<string, string>;
idColumnName?: string;
select?: string | string[];
tableName?: string;
bucketName?: string;
aggregate?: AggregateExpression[];
groupBy?: string[];
having?: CrudFilter[];
format?: "tree" | "graph";
include?: "descendants" | "ancestors" | "both";
depth?: number;
graph_types?: string[];
}
Utility Functions
Exported for advanced use cases (e.g., building custom providers):
import {
REFINE_OPERATOR_MAP, // Record<string, string> — Refine operator to DRF suffix mapping
convertRefineFilters, // (filters?: CrudFilter[]) => Record<string, string>
convertRefineSorters, // (sorters?: CrudSort[]) => string | undefined
convertRefinePagination, // (pagination?: Pagination) => { page?: number; page_size?: number }
buildRefineQueryParams, // (options) => Record<string, unknown>
buildQueryString, // (params?) => string (e.g., "?page=1&page_size=10")
handleError, // (error: unknown) => never
} from "@taruvi/refine-providers";
Deprecated Providers
The standalone functionsDataProvider and analyticsDataProvider are deprecated. Use appDataProvider with useCustom instead.
// ❌ Old way
import { functionsDataProvider, analyticsDataProvider } from "@taruvi/refine-providers";
<Refine dataProvider={{ functions: functionsDataProvider(client), analytics: analyticsDataProvider(client) }} />
const { mutate } = useCreate();
mutate({ dataProviderName: "functions", resource: "my-func", values: { ... } });
// ✅ New way
import { appDataProvider } from "@taruvi/refine-providers";
<Refine dataProvider={{ app: appDataProvider(client) }} />
useCustom({
dataProviderName: "app",
url: "my-func",
method: "post",
config: { payload: { ... } },
meta: { kind: "function" },
});