@cubicweb/data-provider
Version:
CubicWeb data provider implementation
34 lines (32 loc) • 960 B
text/typescript
import { DataProvider } from "./types.js";
import {
Client,
EntityRawSchemaArray,
RelationDefinitionRawSchemaArray,
Schema,
} from "@cubicweb/client";
import { getGet } from "./get.js";
import { getUpdate } from "./update.js";
import { getCreate } from "./create.js";
import { getDelete } from "./delete.js";
/**
* Creates a new data provider using the given CubicWeb client.
*
* @param client The CubicWebJS client used to communicate with the API
* @param schema The current instance's data schema
* @returns A React Admin data provider compatible with CubicWeb
*
* @category Custom Providers
*/
export function createDataProvider<
E extends EntityRawSchemaArray,
R extends RelationDefinitionRawSchemaArray<E>
>(client: Client, schema: Schema<E, R>): DataProvider {
return {
schema: schema,
...getGet(client, schema),
...getUpdate(client, schema),
...getCreate(client, schema),
...getDelete(client, schema),
};
}