8
bun.lock
8
bun.lock
@@ -6,7 +6,7 @@
|
||||
"name": "@effect-fc/monorepo",
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.4.9",
|
||||
"@effect/language-service": "^0.84.1",
|
||||
"@effect/language-service": "^0.84.2",
|
||||
"@types/bun": "^1.3.11",
|
||||
"npm-check-updates": "^19.6.6",
|
||||
"npm-sort": "^0.0.4",
|
||||
@@ -37,7 +37,7 @@
|
||||
"name": "effect-fc",
|
||||
"version": "0.2.4",
|
||||
"dependencies": {
|
||||
"effect-lens": "^0.1.2",
|
||||
"effect-lens": "^0.1.3",
|
||||
},
|
||||
"devDependencies": {
|
||||
"@effect/platform-browser": "^0.76.0",
|
||||
@@ -502,7 +502,7 @@
|
||||
|
||||
"@effect-fc/example": ["@effect-fc/example@workspace:packages/example"],
|
||||
|
||||
"@effect/language-service": ["@effect/language-service@0.84.1", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-YUqjJU24HeYgPV453cR2fDqkZ+zZKMuxGnmxWAPscWJ6gt6FB7JZohMCOczRTIOGPrQMcloJX7BjCaPu+RNhpw=="],
|
||||
"@effect/language-service": ["@effect/language-service@0.84.2", "", { "bin": { "effect-language-service": "cli.js" } }, "sha512-l04qNxpiA8rY5yXWckRPJ7Mk5MNerXuNymSFf+IdflfI5i8jgL1bpBNLuP6ijg7wgjdHc/KmTnCj2kT0SCntuA=="],
|
||||
|
||||
"@effect/platform": ["@effect/platform@0.96.0", "", { "dependencies": { "find-my-way-ts": "^0.1.6", "msgpackr": "^1.11.4", "multipasta": "^0.2.7" }, "peerDependencies": { "effect": "^3.21.0" } }, "sha512-U7PLhkVzg7zzrgFvyWATOzD6reL87KG/fcdOxgLWBQ/J5CCU6qdPAVG+0o6o+IxcsLoqGwxs+rFxaFzrdtDV1A=="],
|
||||
|
||||
@@ -1380,7 +1380,7 @@
|
||||
|
||||
"effect-fc": ["effect-fc@workspace:packages/effect-fc"],
|
||||
|
||||
"effect-lens": ["effect-lens@0.1.2", "", { "peerDependencies": { "effect": "^3.21.0" } }, "sha512-1HdT+xv+Nmy7sQlsK6tBjqKtTZbzb/OPco66/45QnRtdXUGDjFrGMn2jpm/yC5Wxyhb7sNea791aVVq3YgAuwQ=="],
|
||||
"effect-lens": ["effect-lens@0.1.3", "", { "peerDependencies": { "effect": "^3.21.0" } }, "sha512-LtGugMzJehYlQfD9GAbvAOFolVj6UOokqA2EI3M43GC2+wqTDloQjyiW3hrpH3UlayDor7Yg1ZG05Do5a0knsA=="],
|
||||
|
||||
"electron-to-chromium": ["electron-to-chromium@1.5.313", "", {}, "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA=="],
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.4.9",
|
||||
"@effect/language-service": "^0.84.1",
|
||||
"@effect/language-service": "^0.84.2",
|
||||
"@types/bun": "^1.3.11",
|
||||
"npm-check-updates": "^19.6.6",
|
||||
"npm-sort": "^0.0.4",
|
||||
|
||||
@@ -46,6 +46,6 @@
|
||||
"react": "^19.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"effect-lens": "^0.1.2"
|
||||
"effect-lens": "^0.1.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ extends Pipeable.Pipeable {
|
||||
readonly value: Subscribable.Subscribable<Option.Option<A>, ER, never>
|
||||
readonly encodedValue: Lens.Lens<I, ER, EW, never, never>
|
||||
readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>, ER, never>
|
||||
readonly validationFiber: Subscribable.Subscribable<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, ER, never>
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, ER, never>
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>
|
||||
}
|
||||
|
||||
@@ -33,10 +33,10 @@ extends Pipeable.Class() implements Form<P, A, I, ER, EW> {
|
||||
|
||||
constructor(
|
||||
readonly path: P,
|
||||
readonly value: Lens.Lens<Option.Option<A>, ER, EW, never, never>,
|
||||
readonly value: Subscribable.Subscribable<Option.Option<A>, ER, never>,
|
||||
readonly encodedValue: Lens.Lens<I, ER, EW, never, never>,
|
||||
readonly error: Lens.Lens<Option.Option<ParseResult.ParseError>, ER, EW, never, never>,
|
||||
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, ER, EW, never, never>,
|
||||
readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>, ER, never>,
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||
) {
|
||||
super()
|
||||
@@ -57,6 +57,8 @@ extends Form<readonly [], A, I, never, never> {
|
||||
>
|
||||
readonly autosubmit: boolean
|
||||
|
||||
readonly validationFiber: Subscribable.Subscribable<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never>
|
||||
|
||||
readonly run: Effect.Effect<void>
|
||||
readonly submit: Effect.Effect<Option.Option<Result.Final<MA, ME, MP>>, Cause.NoSuchElementException>
|
||||
}
|
||||
@@ -74,11 +76,12 @@ extends FormImpl<readonly [], A, I> implements RootForm<A, I, R, MA, ME, MR, MP>
|
||||
>,
|
||||
readonly autosubmit: boolean,
|
||||
|
||||
value: Lens.Lens<Option.Option<A>, never, never, never, never>,
|
||||
encodedValue: Lens.Lens<I, never, never, never, never>,
|
||||
error: Lens.Lens<Option.Option<ParseResult.ParseError>, never, never, never, never>,
|
||||
validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never, never, never>,
|
||||
canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly value: Lens.Lens<Option.Option<A>, never, never, never, never>,
|
||||
readonly encodedValue: Lens.Lens<I, never, never, never, never>,
|
||||
readonly error: Lens.Lens<Option.Option<ParseResult.ParseError>, never, never, never, never>,
|
||||
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never, never, never>,
|
||||
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||
|
||||
readonly runSemaphore: Effect.Semaphore,
|
||||
) {
|
||||
@@ -87,7 +90,7 @@ extends FormImpl<readonly [], A, I> implements RootForm<A, I, R, MA, ME, MR, MP>
|
||||
value,
|
||||
encodedValue,
|
||||
error,
|
||||
validationFiber,
|
||||
isValidating,
|
||||
canSubmit,
|
||||
)
|
||||
}
|
||||
@@ -202,6 +205,7 @@ export const make = Effect.fnUntraced(function* <A, I = A, R = never, MA = void,
|
||||
Lens.fromSubscriptionRef(yield* SubscriptionRef.make(options.initialEncodedValue)),
|
||||
errorLens,
|
||||
validationFiberLens,
|
||||
Subscribable.map(validationFiberLens, Option.isSome),
|
||||
Subscribable.map(
|
||||
Subscribable.zipLatestAll(valueLens, errorLens, validationFiberLens, mutation.result),
|
||||
([value, error, validationFiber, result]) => (
|
||||
@@ -241,14 +245,10 @@ export const focusObjectField = <P extends readonly PropertyKey[], A extends obj
|
||||
|
||||
return new FormImpl(
|
||||
path,
|
||||
Lens.map(
|
||||
form.value,
|
||||
a => Option.map(a, v => v[key]),
|
||||
(a, b) => Option.map(),
|
||||
),
|
||||
Subscribable.map(form.value, Option.map(a => a[key])),
|
||||
Lens.focusObjectField(form.encodedValue, key),
|
||||
form.error,
|
||||
form.validationFiber,
|
||||
form.isValidating,
|
||||
form.canSubmit,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user