0.2.5 #43
8
bun.lock
8
bun.lock
@@ -6,7 +6,7 @@
|
|||||||
"name": "@effect-fc/monorepo",
|
"name": "@effect-fc/monorepo",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.4.9",
|
"@biomejs/biome": "^2.4.9",
|
||||||
"@effect/language-service": "^0.84.1",
|
"@effect/language-service": "^0.84.2",
|
||||||
"@types/bun": "^1.3.11",
|
"@types/bun": "^1.3.11",
|
||||||
"npm-check-updates": "^19.6.6",
|
"npm-check-updates": "^19.6.6",
|
||||||
"npm-sort": "^0.0.4",
|
"npm-sort": "^0.0.4",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"name": "effect-fc",
|
"name": "effect-fc",
|
||||||
"version": "0.2.4",
|
"version": "0.2.4",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"effect-lens": "^0.1.2",
|
"effect-lens": "^0.1.3",
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@effect/platform-browser": "^0.76.0",
|
"@effect/platform-browser": "^0.76.0",
|
||||||
@@ -502,7 +502,7 @@
|
|||||||
|
|
||||||
"@effect-fc/example": ["@effect-fc/example@workspace:packages/example"],
|
"@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=="],
|
"@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-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=="],
|
"electron-to-chromium": ["electron-to-chromium@1.5.313", "", {}, "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA=="],
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.4.9",
|
"@biomejs/biome": "^2.4.9",
|
||||||
"@effect/language-service": "^0.84.1",
|
"@effect/language-service": "^0.84.2",
|
||||||
"@types/bun": "^1.3.11",
|
"@types/bun": "^1.3.11",
|
||||||
"npm-check-updates": "^19.6.6",
|
"npm-check-updates": "^19.6.6",
|
||||||
"npm-sort": "^0.0.4",
|
"npm-sort": "^0.0.4",
|
||||||
|
|||||||
@@ -46,6 +46,6 @@
|
|||||||
"react": "^19.2.0"
|
"react": "^19.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"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 value: Subscribable.Subscribable<Option.Option<A>, ER, never>
|
||||||
readonly encodedValue: Lens.Lens<I, ER, EW, never, never>
|
readonly encodedValue: Lens.Lens<I, ER, EW, never, never>
|
||||||
readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>, ER, 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>
|
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,10 +33,10 @@ extends Pipeable.Class() implements Form<P, A, I, ER, EW> {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
readonly path: P,
|
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 encodedValue: Lens.Lens<I, ER, EW, never, never>,
|
||||||
readonly error: Lens.Lens<Option.Option<ParseResult.ParseError>, ER, EW, never, never>,
|
readonly error: Subscribable.Subscribable<Option.Option<ParseResult.ParseError>, ER, never>,
|
||||||
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, ER, EW, never, never>,
|
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||||
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||||
) {
|
) {
|
||||||
super()
|
super()
|
||||||
@@ -57,6 +57,8 @@ extends Form<readonly [], A, I, never, never> {
|
|||||||
>
|
>
|
||||||
readonly autosubmit: boolean
|
readonly autosubmit: boolean
|
||||||
|
|
||||||
|
readonly validationFiber: Subscribable.Subscribable<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never>
|
||||||
|
|
||||||
readonly run: Effect.Effect<void>
|
readonly run: Effect.Effect<void>
|
||||||
readonly submit: Effect.Effect<Option.Option<Result.Final<MA, ME, MP>>, Cause.NoSuchElementException>
|
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,
|
readonly autosubmit: boolean,
|
||||||
|
|
||||||
value: Lens.Lens<Option.Option<A>, never, never, never, never>,
|
readonly value: Lens.Lens<Option.Option<A>, never, never, never, never>,
|
||||||
encodedValue: Lens.Lens<I, never, never, never, never>,
|
readonly encodedValue: Lens.Lens<I, never, never, never, never>,
|
||||||
error: Lens.Lens<Option.Option<ParseResult.ParseError>, never, never, never, never>,
|
readonly 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>,
|
readonly validationFiber: Lens.Lens<Option.Option<Fiber.Fiber<A, ParseResult.ParseError>>, never, never, never, never>,
|
||||||
canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
readonly isValidating: Subscribable.Subscribable<boolean, never, never>,
|
||||||
|
readonly canSubmit: Subscribable.Subscribable<boolean, never, never>,
|
||||||
|
|
||||||
readonly runSemaphore: Effect.Semaphore,
|
readonly runSemaphore: Effect.Semaphore,
|
||||||
) {
|
) {
|
||||||
@@ -87,7 +90,7 @@ extends FormImpl<readonly [], A, I> implements RootForm<A, I, R, MA, ME, MR, MP>
|
|||||||
value,
|
value,
|
||||||
encodedValue,
|
encodedValue,
|
||||||
error,
|
error,
|
||||||
validationFiber,
|
isValidating,
|
||||||
canSubmit,
|
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)),
|
Lens.fromSubscriptionRef(yield* SubscriptionRef.make(options.initialEncodedValue)),
|
||||||
errorLens,
|
errorLens,
|
||||||
validationFiberLens,
|
validationFiberLens,
|
||||||
|
Subscribable.map(validationFiberLens, Option.isSome),
|
||||||
Subscribable.map(
|
Subscribable.map(
|
||||||
Subscribable.zipLatestAll(valueLens, errorLens, validationFiberLens, mutation.result),
|
Subscribable.zipLatestAll(valueLens, errorLens, validationFiberLens, mutation.result),
|
||||||
([value, error, validationFiber, result]) => (
|
([value, error, validationFiber, result]) => (
|
||||||
@@ -241,14 +245,10 @@ export const focusObjectField = <P extends readonly PropertyKey[], A extends obj
|
|||||||
|
|
||||||
return new FormImpl(
|
return new FormImpl(
|
||||||
path,
|
path,
|
||||||
Lens.map(
|
Subscribable.map(form.value, Option.map(a => a[key])),
|
||||||
form.value,
|
|
||||||
a => Option.map(a, v => v[key]),
|
|
||||||
(a, b) => Option.map(),
|
|
||||||
),
|
|
||||||
Lens.focusObjectField(form.encodedValue, key),
|
Lens.focusObjectField(form.encodedValue, key),
|
||||||
form.error,
|
form.error,
|
||||||
form.validationFiber,
|
form.isValidating,
|
||||||
form.canSubmit,
|
form.canSubmit,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user