diff --git a/packages/effect-lens/src/Lens.ts b/packages/effect-lens/src/Lens.ts index bfda515..5a1e02c 100644 --- a/packages/effect-lens/src/Lens.ts +++ b/packages/effect-lens/src/Lens.ts @@ -91,17 +91,15 @@ extends Pipeable.Class() implements Lens { get get(): Effect.Effect { let effect: Effect.Effect = this.sourceGet - for (const step of this.steps) { + for (const step of this.steps) effect = step.transform(effect as never) - } return effect as Effect.Effect } get changes(): Stream.Stream { let stream: Stream.Stream = this.sourceChanges - for (const step of this.steps) { + for (const step of this.steps) stream = step.transformStream(stream as never) - } return stream as Stream.Stream } @@ -114,12 +112,11 @@ extends Pipeable.Class() implements Lens { const parents: unknown[] = [] let current: Effect.Effect = Effect.succeed(source) - for (const step of this.steps) { + for (const step of this.steps) current = Effect.flatMap(current, parent => { parents.push(parent) return step.transform(Effect.succeed(parent) as never) }) - } return Effect.flatMap(current, a => Effect.flatMap( f(a as A), @@ -127,7 +124,9 @@ extends Pipeable.Class() implements Lens { let rebuilt: Effect.Effect = Effect.succeed(next) for (let i = this.steps.length - 1; i >= 0; i--) { + // biome-ignore lint/style/noNonNullAssertion: won't throw const step = this.steps[i]! + // biome-ignore lint/style/noNonNullAssertion: won't throw const parent = parents[i]! rebuilt = step.update(rebuilt as never, parent as never) }