UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

111 lines 5.58 kB
import { Prisma, PrismaClient } from "../types-prisma"; import { IncomingMessage } from "http"; import type { NextApiRequest } from "next"; import { AdminFormData, EditFieldsOptions, EditOptions, Field, Model, ModelAction, ModelName, ModelWithoutRelationships, NextAdminOptions, OutputModelAction, Schema, SchemaDefinitions, UploadedFile } from "../types"; export declare const getJsonSchema: () => Schema; export declare const enumValueForEnumType: (definition: Schema["definitions"][ModelName], value: string) => string | false | undefined; export declare const getEnableToExecuteActions: <M extends ModelName>(resource: M, prisma: PrismaClient, ids: string[] | number[], actions?: Omit<ModelAction<M>, "action">[]) => Promise<OutputModelAction | undefined>; export declare const getModelIdProperty: (model: ModelName) => string; export declare const modelHasIdField: (model: ModelName) => boolean; export declare const getResources: (options?: NextAdminOptions) => Prisma.ModelName[]; export declare const getToStringForRelations: <M extends ModelName>(modelName: M, fieldName: Field<M>, modelNameRelation: ModelName, options?: NextAdminOptions) => any; export declare const getToStringForModel: <M extends ModelName>(options: Required<NextAdminOptions>["model"][M]) => ((item: Model<M>) => string) | undefined; /** * Fill fields with relations with the values of the related model, and inject them into the schema * * @param schema * @param prisma * @param requestOptions * @param options * * @returns schema */ export declare const fillRelationInSchema: (resource: ModelName, options?: NextAdminOptions) => (schema: Schema) => Promise<Schema>; /** * This is used to transform the data from server to client */ export declare const transformData: <M extends ModelName>(data: any, resource: M, editOptions: EditOptions<M>, options?: NextAdminOptions) => any; /** * Fill fields in data with the their values and url for the related model * * @param data * @param schema * * @returns data * */ export declare const findRelationInData: (data: any[], schema: SchemaDefinitions[ModelName]) => any[]; export declare const parseFormData: <M extends ModelName>(formData: AdminFormData<M>, schemaResource: SchemaDefinitions[ModelName], editFieldOptions?: EditFieldsOptions<M>) => Partial<ModelWithoutRelationships<M>>; export declare const formatId: (resource: ModelName, id: string) => string | number; /** * Convert the form data to the format expected by Prisma * * @param formData * @param schema * @param resource * @param resourceId * @param editOptions * @param prisma */ export declare const formattedFormData: <M extends ModelName>(formData: AdminFormData<M>, schema: Schema, resource: M, resourceId: string | number | undefined, editOptions: EditFieldsOptions<M> | undefined, prisma: PrismaClient) => Promise<{ formattedData: any; complementaryFormattedData: any; errors: { field: string; message: string; }[]; }>; /** * Convert the search fields to the format expected by Prisma * * * @param uri * @returns * * @example * * ```js * const uri = "search=foo&searchFields=bar&searchFields=baz"; * const searchFields = formatSearchFields(uri); * console.log(searchFields); * // { search: 'foo', searchFields: [ 'bar', 'baz' ] } * ``` * */ export declare const formatSearchFields: (uri: string) => { [k: string]: string; }; /** * * Centralizes the transformation of the schema * * @param resource * @param edit * @param prisma * @param searchParams * @param options * @returns */ export declare const transformSchema: <M extends ModelName>(resource: M, edit: EditOptions<M>, options?: NextAdminOptions) => (x: Schema) => Promise<any>; export declare const applyVisiblePropertiesInSchema: <M extends ModelName>(resource: M, edit: EditOptions<M>, data: any, schema: Schema) => Schema; export declare const changeFormatInSchema: <M extends ModelName>(resource: M, editOptions: EditOptions<M>) => (schema: Schema) => Schema; export declare const removeHiddenProperties: <M extends ModelName>(resource: M, editOptions: EditOptions<M>) => (schema: Schema) => Schema; export declare const addCustomProperties: <M extends ModelName>(resource: M, editOptions: EditOptions<M>) => (schema: Schema) => Schema; export declare const applyArrayMaxLength: <M extends ModelName>(resource: M, editOptions: EditOptions<M>) => (schema: Schema) => Schema; export declare const getResourceFromParams: (params: string[], resources: Prisma.ModelName[]) => any; /** * Convert the following urls to an array of params: * * - /admin/User -> ["User"] * - /admin/User/1 -> ["User", "1"] * - /_next/data/admin/User.json -> ["User"] * - /_next/data/admin/User/1.json -> ["User", "1"] * - /_next/data/development/admin/User.json -> ["User"] * - /_next/data/development/admin/User/1.json -> ["User", "1"] */ export declare const getParamsFromUrl: (url: string, basePath: string) => string[]; export declare const getResourceIdFromParam: (param: string, resource: ModelName) => string | number | undefined; export declare const getFormDataValues: (req: IncomingMessage) => Promise<Record<string, string | (string | UploadedFile)[]>>; export declare const getFormValuesFromFormData: <M extends ModelName>(formData: FormData, editFieldOptions?: EditFieldsOptions<M>) => Promise<Record<string, string | (string | UploadedFile)[] | null>>; export declare const getJsonBody: (req: NextApiRequest) => Promise<any>; export declare const getBody: (req: IncomingMessage) => Promise<string>; //# sourceMappingURL=server.d.ts.map