@ai-stack/payloadcms
Version:
<p align="center"> <img alt="Payload AI Plugin" src="assets/payload-ai-intro.gif" width="100%" /> </p>
38 lines (37 loc) • 1.1 kB
TypeScript
/**
* fieldToJsonSchema
* Convert a Payload Field (server or client) into a minimal JSON Schema object,
* wrapped as { type: 'object', properties: { [name]: valueSchema }, required: [...] }
*
* Supported types:
* - text, textarea, select, number, date, code, email, json
* Arrays are emitted only when field.hasMany is true and the field type supports hasMany
* (text, textarea, select; for others only if your config truly sets hasMany).
*/
export type JsonSchema = Record<string, any>;
type BaseField = {
admin?: {
description?: unknown;
language?: unknown;
};
hasMany?: boolean;
jsonSchema?: unknown;
max?: number;
maxRows?: number;
min?: number;
minRows?: number;
name?: string;
options?: Array<{
label?: unknown;
value: number | string;
} | number | string>;
required?: boolean;
schema?: unknown;
type?: string;
typescriptSchema?: unknown;
};
export declare function fieldToJsonSchema(fieldInput: BaseField, opts?: {
nameOverride?: string;
wrapObject?: boolean;
}): JsonSchema;
export {};