From cb61713cce4888a283e59efbd006862ebbeb3fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 18 Apr 2025 23:52:49 +0200 Subject: [PATCH] Form work --- .../extension-form/src/internal/FormField.ts | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/extension-form/src/internal/FormField.ts b/packages/extension-form/src/internal/FormField.ts index afdfe4e..f266eaf 100644 --- a/packages/extension-form/src/internal/FormField.ts +++ b/packages/extension-form/src/internal/FormField.ts @@ -1,41 +1,11 @@ import type { Array, Schema, SchemaAST } from "effect" -import type * as FormTree from "./FormTree.ts" +import type * as Formify from "./Formify.js" export interface FormField { readonly schema: S } -export interface GenericFormField extends FormField { - readonly _tag: "GenericFormField" - readonly value: S["Type"] -} - -export interface TupleFormField< - S extends Schema.TupleType, - Elements extends Schema.TupleType.Elements, - Rest extends Schema.TupleType.Rest, -> extends FormField { - readonly _tag: "TupleFormField" - readonly elements: [...{ readonly [K in keyof Elements]: FormTree.FormTree }] -} - -export interface ArrayFormField< - S extends Schema.Array$, - Value extends Schema.Schema.Any, -> extends FormField { - readonly _tag: "ArrayFormField" - readonly elements: readonly FormTree.FormTree[] -} - -export interface StructFormField< - S extends Schema.Struct, - Fields extends Schema.Struct.Fields, -> extends FormField { - readonly _tag: "StructFormField" - readonly fields: { readonly [K in keyof Fields]: FormTree.FormTree } -} - export interface LiteralFormField< S extends Schema.Literal, Literals extends Array.NonEmptyReadonlyArray, @@ -49,7 +19,37 @@ export interface UnionFormField< Members extends ReadonlyArray, > extends FormField { readonly _tag: "UnionFormField" - readonly member: FormTree.FormTree + readonly member: Formify.Formify +} + +export interface TupleFormField< + S extends Schema.TupleType, + Elements extends Schema.TupleType.Elements, + Rest extends Schema.TupleType.Rest, +> extends FormField { + readonly _tag: "TupleFormField" + readonly elements: [...{ readonly [K in keyof Elements]: Formify.Formify }] +} + +export interface ArrayFormField< + S extends Schema.Array$, + Value extends Schema.Schema.Any, +> extends FormField { + readonly _tag: "ArrayFormField" + readonly elements: readonly Formify.Formify[] +} + +export interface StructFormField< + S extends Schema.Struct, + Fields extends Schema.Struct.Fields, +> extends FormField { + readonly _tag: "StructFormField" + readonly fields: { readonly [K in keyof Fields]: Formify.Formify } +} + +export interface GenericFormField extends FormField { + readonly _tag: "GenericFormField" + readonly value: S["Type"] }