createAdmin
createAdmin(
config):Promise<{action: (request) =>Promise<Response|AdminActionResult>;Component: () =>ReactElement;loader: (request) =>Promise<AdminLoaderData>; }>
Defined in: packages/admin/src/create-admin.ts:40
Create a complete admin panel from your Drizzle schema.
Introspects your schema, applies any TableOverrides, and produces a
{ loader, action, Component } triple that you mount on a single React Router
route. The admin panel includes list views, detail views, create/edit forms,
user management, and a dashboard — all derived from your schema and permissions.
For server/client code splitting, use the individual factories (createAdminLoader, createAdminAction, createAdminComponent) instead.
Parameters
Section titled “Parameters”config
Section titled “config”The admin configuration including DB factory, auth adapter, and schema.
Returns
Section titled “Returns”Promise<{ action: (request) => Promise<Response | AdminActionResult>; Component: () => ReactElement; loader: (request) => Promise<AdminLoaderData>; }>
A promise resolving to an object with loader, action, and Component to mount on a React Router route.
Example
Section titled “Example”import { createAdmin } from "@cfast/admin";import * as schema from "~/schema";
const admin = await createAdmin({ db: (grants, user) => createDb({ d1: env.DB, schema, grants, user }), auth, schema, requiredRole: "admin",});
export const loader = admin.loader;export const action = admin.action;export default admin.Component;