diff --git a/packages/effect-fc/src/Form.ts b/packages/effect-fc/src/Form.ts index 4f27696..5d775bf 100644 --- a/packages/effect-fc/src/Form.ts +++ b/packages/effect-fc/src/Form.ts @@ -1,5 +1,5 @@ import * as AsyncData from "@typed/async-data" -import { Array, Cause, Chunk, Duration, Effect, Equal, Exit, Fiber, flow, identity, Option, ParseResult, pipe, Pipeable, Ref, Schema, Scope, Stream, Subscribable, SubscriptionRef } from "effect" +import { Array, Cause, Chunk, Duration, Effect, Equal, Exit, Fiber, flow, identity, Option, ParseResult, pipe, Pipeable, Predicate, Ref, Schema, Scope, Stream, Subscribable, SubscriptionRef } from "effect" import type { NoSuchElementException } from "effect/Cause" import * as React from "react" import { Hooks } from "./hooks/index.js" @@ -45,6 +45,8 @@ extends Pipeable.Class() implements Form { } } +export const isForm = (u: unknown): u is Form => Predicate.hasProperty(u, FormTypeId) + export namespace make { export interface Options { readonly schema: Schema.Schema @@ -248,6 +250,7 @@ extends Pipeable.Class() implements FormField { } } +export const isFormField = (u: unknown): u is FormField => Predicate.hasProperty(u, FormFieldTypeId) export namespace useForm { export interface Options