@@ -99,6 +99,25 @@ export const mapOptionEffect: {
|
||||
onNone: () => Effect.succeed(Option.none()),
|
||||
})))
|
||||
|
||||
/**
|
||||
* Allows transforming only the `changes` stream of a `View`.
|
||||
*/
|
||||
export const mapStream: {
|
||||
<A, E, R>(
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): (self: View<A, E, R>) => View<A, E, R>
|
||||
<A, E, R>(
|
||||
self: View<A, E, R>,
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): View<A, E, R>
|
||||
} = Function.dual(2, <A, E, R>(
|
||||
self: View<A, E, R>,
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): View<A, E, R> => make({
|
||||
get get() { return self.get },
|
||||
get changes() { return f(self.changes) },
|
||||
}))
|
||||
|
||||
/** Converts typed failures from both channels into `Result` values. */
|
||||
export const result = <A, E, R>(
|
||||
self: View<A, E, R>,
|
||||
|
||||
@@ -40,6 +40,25 @@ export const mapOptionEffect: {
|
||||
onNone: () => Effect.succeed(Option.none()),
|
||||
})))
|
||||
|
||||
/**
|
||||
* Allows transforming only the `changes` stream of a `Subscribable`.
|
||||
*/
|
||||
export const mapStream: {
|
||||
<A, E, R>(
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): (self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E, R>
|
||||
<A, E, R>(
|
||||
self: Subscribable.Subscribable<A, E, R>,
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): Subscribable.Subscribable<A, E, R>
|
||||
} = Function.dual(2, <A, E, R>(
|
||||
self: Subscribable.Subscribable<A, E, R>,
|
||||
f: (changes: Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>) => Stream.Stream<NoInfer<A>, NoInfer<E>, NoInfer<R>>,
|
||||
): Subscribable.Subscribable<A, E, R> => Subscribable.make({
|
||||
get get() { return self.get },
|
||||
get changes() { return f(self.changes) },
|
||||
}))
|
||||
|
||||
/**
|
||||
* Combines the current values and streams of changes from multiple `Subscribable` values.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user