From 14a23e8040b4abe53a065b61adde18f3d23b9551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 22 May 2026 00:55:40 +0200 Subject: [PATCH] Refactor --- packages/effect-lens/src/Lens.ts | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/packages/effect-lens/src/Lens.ts b/packages/effect-lens/src/Lens.ts index ba6e678..e9bf203 100644 --- a/packages/effect-lens/src/Lens.ts +++ b/packages/effect-lens/src/Lens.ts @@ -40,19 +40,6 @@ export interface LensStep => Predicate.hasProperty(u, LensStepTypeId) -// export const LensWithInternalsTypeId: unique symbol = Symbol.for("@effect-fc/Lens/LensWithInternals") -// export type LensWithInternalsTypeId = typeof LensWithInternalsTypeId - -// export interface LensWithInternals -// extends Lens { -// readonly [LensWithInternalsTypeId]: LensWithInternalsTypeId - -// readonly update: (a: A) => Effect.Effect -// readonly withLock: (self: Effect.Effect) => Effect.Effect -// } - -// export const isLensWithInternals = (u: unknown): u is LensWithInternals => Predicate.hasProperty(u, LensWithInternalsTypeId) - // export const asLensWithInternals = ( // lens: Lens // ): LensWithInternals => { @@ -74,13 +61,17 @@ extends Pipeable.Class() implements Lens { readonly steps: readonly LensStep[] = [] - abstract readonly read: Effect.Effect - abstract readonly changes: Stream.Stream - abstract readonly commit: (a: A) => Effect.Effect + abstract readonly sourceGet: Effect.Effect + abstract readonly sourceChanges: Stream.Stream + abstract readonly sourceCommit: (a: A) => Effect.Effect abstract readonly withLock: (self: Effect.Effect) => Effect.Effect get get(): Effect.Effect { + return this.sourceGet + } + get changes(): Stream.Stream { + return this.sourceChanges } modifyEffect( @@ -88,7 +79,7 @@ extends Pipeable.Class() implements Lens { ): Effect.Effect { return this.withLock(Effect.flatMap( this.get, - a => Effect.flatMap(f(a), ([b, next]) => Effect.as(this.commit(next), b), + a => Effect.flatMap(f(a), ([b, next]) => Effect.as(this.sourceCommit(next), b), ))) } }