@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
TypeScript
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