From e9837401145605aff5bc2ec7e73004f397c5d2d1 Mon Sep 17 00:00:00 2001 From: Jesse Kelly Date: Tue, 9 Apr 2024 16:29:24 -0600 Subject: [PATCH] Added {Readable,Subscribable}.unwrap (#2498) --- .changeset/wild-lamps-promise.md | 5 +++++ packages/effect/src/Readable.ts | 11 +++++++++++ packages/effect/src/Subscribable.ts | 12 ++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 .changeset/wild-lamps-promise.md diff --git a/.changeset/wild-lamps-promise.md b/.changeset/wild-lamps-promise.md new file mode 100644 index 0000000000..8b9d0ef1df --- /dev/null +++ b/.changeset/wild-lamps-promise.md @@ -0,0 +1,5 @@ +--- +"effect": patch +--- + +added {Readable, Subscribable}.unwrap diff --git a/packages/effect/src/Readable.ts b/packages/effect/src/Readable.ts index 019112c594..b5bc249ff9 100644 --- a/packages/effect/src/Readable.ts +++ b/packages/effect/src/Readable.ts @@ -79,3 +79,14 @@ export const mapEffect: { self: Readable, f: (a: NoInfer) => Effect ): Readable => make(core.flatMap(self.get, f))) + +/** + * @since 2.0.0 + * @category constructors + */ +export const unwrap = ( + effect: Effect, E1, R1> +): Readable => + make( + core.flatMap(effect, (s) => s.get) + ) diff --git a/packages/effect/src/Subscribable.ts b/packages/effect/src/Subscribable.ts index 85f7c4493f..8ae1f85140 100644 --- a/packages/effect/src/Subscribable.ts +++ b/packages/effect/src/Subscribable.ts @@ -85,3 +85,15 @@ export const mapEffect: { get: Effect.flatMap(self.get, f), changes: Stream.mapEffect(self.changes, f) })) + +/** + * @since 2.0.0 + * @category constructors + */ +export const unwrap = ( + effect: Effect.Effect, E1, R1> +): Subscribable => + make({ + get: Effect.flatMap(effect, (s) => s.get), + changes: Stream.unwrap(Effect.map(effect, (s) => s.changes)) + })