Page MenuHomeSealhub

form-types.ts
No OneTemporary

form-types.ts

import type { File as SealiousFile } from "sealious";
import type { FlatTemplatable } from "tempstream";
import type { FormField } from "./fields/field.js";
export type FormDataPrimitive = string | string[] | number | undefined;
export type FormDataValue =
| FormDataPrimitive
| Record<string, FormDataPrimitive>
| SealiousFile;
export type FieldValueType<F extends FormField> = F extends FormField<infer R>
? R
: never;
export type FormFieldsToValues<
F extends Record<string, FormField<boolean, keyof F>>
> = {
[Property in keyof F]: FieldValueType<F[Property]>;
};
export type FormMessage = { type: "info" | "success" | "error"; text: string };
export type FormData<Fieldnames extends string = string> = {
raw_values: Record<Fieldnames, FormDataValue>;
messages: FormMessage[];
};
export type FormReaction =
| { action: "stay"; content: FlatTemplatable; messages?: FormMessage[] }
| { action: "redirect"; url: string; messages?: FormMessage[] };

File Metadata

Mime Type
text/x-java
Expires
Wed, May 7, 19:43 (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
634567
Default Alt Text
form-types.ts (966 B)

Event Timeline