diff --git a/packages/extension-form/src/internal/FormTree.ts b/packages/extension-form/src/internal/Formify.ts similarity index 93% rename from packages/extension-form/src/internal/FormTree.ts rename to packages/extension-form/src/internal/Formify.ts index 6c17c95..79a9254 100644 --- a/packages/extension-form/src/internal/FormTree.ts +++ b/packages/extension-form/src/internal/Formify.ts @@ -2,12 +2,12 @@ import { Schema } from "effect" import type * as FormField from "./FormField.js" -export type FormTree = ( +export type Formify = ( + S extends Schema.Literal ? FormField.LiteralFormField : + S extends Schema.Union ? FormField.UnionFormField : S extends Schema.TupleType ? FormField.TupleFormField : S extends Schema.Array$ ? FormField.ArrayFormField : S extends Schema.Struct ? FormField.StructFormField : - S extends Schema.Literal ? FormField.LiteralFormField : - S extends Schema.Union ? FormField.UnionFormField : S extends Schema.Schema.Any ? FormField.GenericFormField : S extends Schema.PropertySignature< infer TypeToken, @@ -35,7 +35,7 @@ const LoginForm = Schema.Union( password: Schema.RedactedFromSelf(Schema.String), }), ) -type LoginFormTree = FormTree +type LoginFormTree = Formify declare const loginFormTree: LoginFormTree switch (loginFormTree.member.fields._tag.value) { @@ -53,7 +53,7 @@ const User = Schema.Struct({ values: Schema.Array(Schema.String), }) -type TestFormTree = FormTree +type TestFormTree = Formify declare const testFormTree: TestFormTree testFormTree.fields._tag