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,