0.2.5 #43

Merged
Thilawyn merged 94 commits from next into master 2026-03-31 21:01:13 +02:00
Showing only changes of commit 5f8965ce11 - Show all commits

View File

@@ -11,33 +11,33 @@ import * as SubscriptionRef from "./SubscriptionRef.js"
export const FormTypeId: unique symbol = Symbol.for("@effect-fc/Form/Form") export const FormTypeId: unique symbol = Symbol.for("@effect-fc/Form/Form")
export type FormTypeId = typeof FormTypeId export type FormTypeId = typeof FormTypeId
export interface Form<in out P extends readonly PropertyKey[], in out A, in out I = A> export interface Form<in out P extends readonly PropertyKey[], in out A, in out I = A, in out ER = never, in out EW = never>
extends Pipeable.Pipeable { extends Pipeable.Pipeable {
readonly [FormTypeId]: FormTypeId readonly [FormTypeId]: FormTypeId
readonly path: P readonly path: P
readonly value: Subscribable.Subscribable<Option.Option<A>> readonly value: Subscribable.Subscribable<Option.Option<A>, ER, never>
readonly encodedValue: Lens.Lens<I> readonly encodedValue: Lens.Lens<I, ER, EW, never, never>
readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>> readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>, ER, never>
readonly validationFiber: Subscribable.Subscribable<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>> readonly validationFiber: Subscribable.Subscribable<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, ER, never>
readonly canSubmit: Subscribable.Subscribable<boolean> readonly canSubmit: Subscribable.Subscribable<boolean, never, never>
} }
export const FormImplTypeId: unique symbol = Symbol.for("@effect-fc/Form/FormImpl") export const FormImplTypeId: unique symbol = Symbol.for("@effect-fc/Form/FormImpl")
export type FormImplTypeId = typeof FormImplTypeId export type FormImplTypeId = typeof FormImplTypeId
export class FormImpl<in out P extends readonly PropertyKey[], in out A, in out I = A> export class FormImpl<in out P extends readonly PropertyKey[], in out A, in out I = A, in out ER = never, in out EW = never>
extends Pipeable.Class() implements Form<P, A, I> { extends Pipeable.Class() implements Form<P, A, I, ER, EW> {
readonly [FormTypeId]: FormTypeId = FormTypeId readonly [FormTypeId]: FormTypeId = FormTypeId
readonly [FormImplTypeId]: FormImplTypeId = FormImplTypeId readonly [FormImplTypeId]: FormImplTypeId = FormImplTypeId
constructor( constructor(
readonly path: P, readonly path: P,
readonly value: Lens.Lens<Option.Option<A>>, readonly value: Lens.Lens<Option.Option<A>, ER, EW, never, never>,
readonly encodedValue: Lens.Lens<I>, readonly encodedValue: Lens.Lens<I, ER, EW, never, never>,
readonly error: Lens.Lens<Option.Option<ParseResult.ParseError>>, readonly error: Lens.Lens<Option.Option<ParseResult.ParseError>, ER, EW, never, never>,
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>>, readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, ER, EW, never, never>,
readonly canSubmit: Subscribable.Subscribable<boolean>, readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
) { ) {
super() super()
} }
@@ -48,7 +48,7 @@ export const RootFormTypeId: unique symbol = Symbol.for("@effect-fc/Form/RootFor
export type RootFormTypeId = typeof RootFormTypeId export type RootFormTypeId = typeof RootFormTypeId
export interface RootForm<in out A, in out I = A, in out R = never, in out MA = void, in out ME = never, in out MR = never, in out MP = never> export interface RootForm<in out A, in out I = A, in out R = never, in out MA = void, in out ME = never, in out MR = never, in out MP = never>
extends Form<readonly [], A, I> { extends Form<readonly [], A, I, never, never> {
readonly schema: Schema.Schema<A, I, R> readonly schema: Schema.Schema<A, I, R>
readonly context: Context.Context<Scope.Scope | R> readonly context: Context.Context<Scope.Scope | R>
readonly mutation: Mutation.Mutation< readonly mutation: Mutation.Mutation<
@@ -74,11 +74,11 @@ extends FormImpl<readonly [], A, I> implements RootForm<A, I, R, MA, ME, MR, MP>
>, >,
readonly autosubmit: boolean, readonly autosubmit: boolean,
value: Lens.Lens<Option.Option<A>>, value: Lens.Lens<Option.Option<A>, never, never, never, never>,
encodedValue: Lens.Lens<I>, encodedValue: Lens.Lens<I, never, never, never, never>,
error: Lens.Lens<Option.Option<ParseResult.ParseError>>, error: Lens.Lens<Option.Option<ParseResult.ParseError>, never, never, never, never>,
validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>>, validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never, never, never>,
canSubmit: Subscribable.Subscribable<boolean>, canSubmit: Subscribable.Subscribable<boolean, never, never>,
readonly runSemaphore: Effect.Semaphore, readonly runSemaphore: Effect.Semaphore,
) { ) {