UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

63 lines (62 loc) 3.15 kB
import { type Static } from "../../core/utils"; import type { EntityManager } from "../../data"; import { Field, type TActionContext, type TRenderContext } from "./Field"; import * as tbbox from "@sinclair/typebox"; import type { TFieldTSType } from "../../data/entities/EntityTypescript"; export declare const enumFieldConfigSchema: tbbox.TObject<{ default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>; options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{ type: tbbox.TLiteral<"strings">; values: tbbox.TArray<tbbox.TString>; }>, tbbox.TObject<{ type: tbbox.TLiteral<"objects">; values: tbbox.TArray<tbbox.TObject<{ label: tbbox.TString; value: tbbox.TString; }>>; }>]>>; required: tbbox.TOptional<tbbox.TBoolean>; description: tbbox.TOptional<tbbox.TString>; label: tbbox.TOptional<tbbox.TString>; fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>; hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>; virtual: tbbox.TOptional<tbbox.TBoolean>; }>; export type EnumFieldConfig = Static<typeof enumFieldConfigSchema>; export declare class EnumField<Required extends true | false = false, TypeOverride = string> extends Field<EnumFieldConfig, TypeOverride, Required> { readonly type = "enum"; constructor(name: string, config: Partial<EnumFieldConfig>); protected getSchema(): tbbox.TObject<{ default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>; options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{ type: tbbox.TLiteral<"strings">; values: tbbox.TArray<tbbox.TString>; }>, tbbox.TObject<{ type: tbbox.TLiteral<"objects">; values: tbbox.TArray<tbbox.TObject<{ label: tbbox.TString; value: tbbox.TString; }>>; }>]>>; required: tbbox.TOptional<tbbox.TBoolean>; description: tbbox.TOptional<tbbox.TString>; label: tbbox.TOptional<tbbox.TString>; fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>; hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>; virtual: tbbox.TOptional<tbbox.TBoolean>; }>; getOptions(): { label: string; value: string; }[]; isValidValue(value: string): boolean; getValue(value: any, context: TRenderContext): any; /** * Transform value after retrieving from database * @param value */ transformRetrieve(value: string | null): string | null; transformPersist(_value: any, em: EntityManager<any>, context: TActionContext): Promise<string | undefined>; toJsonSchema(): tbbox.TUnsafe<any> | tbbox.TOptional<tbbox.TUnsafe<any>>; toType(): TFieldTSType; }