From 2646e295d9eb4811a41bff61168d7c9ef854e84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 24 Mar 2026 11:48:01 +0100 Subject: [PATCH] Add mapStream --- packages/effect-fc/src/Lens.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/effect-fc/src/Lens.ts b/packages/effect-fc/src/Lens.ts index bce74e0..3c8e23f 100644 --- a/packages/effect-fc/src/Lens.ts +++ b/packages/effect-fc/src/Lens.ts @@ -139,6 +139,24 @@ export const mapEffect: { )), })) +export const mapStream: { + ( + self: Lens, + f: (changes: Stream.Stream, NoInfer, NoInfer>) => Stream.Stream, NoInfer, NoInfer>, + ): Lens + ( + f: (changes: Stream.Stream, NoInfer, NoInfer>) => Stream.Stream, NoInfer, NoInfer>, + ): (self: Lens) => Lens +} = Function.dual(2, ( + self: Lens, + f: (changes: Stream.Stream, NoInfer, NoInfer>) => Stream.Stream, NoInfer, NoInfer>, +): Lens => make({ + get get() { return self.get }, + get changes() { return f(self.changes) }, + modify: self.modify, +})) + + export const mapField: { ( self: Lens,