@@ -99,6 +99,25 @@ export const mapOptionEffect: {
|
|||||||
onNone: () => Effect.succeed(Option.none()),
|
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. */
|
/** Converts typed failures from both channels into `Result` values. */
|
||||||
export const result = <A, E, R>(
|
export const result = <A, E, R>(
|
||||||
self: View<A, E, R>,
|
self: View<A, E, R>,
|
||||||
|
|||||||
@@ -40,6 +40,25 @@ export const mapOptionEffect: {
|
|||||||
onNone: () => Effect.succeed(Option.none()),
|
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.
|
* Combines the current values and streams of changes from multiple `Subscribable` values.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user