@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
39 lines (35 loc) • 971 B
text/typescript
// ets_tracing: off
import * as CK from "../../../Collections/Immutable/Chunk/index.js"
import type * as T from "../../../Effect/index.js"
import * as ContramapChunksEffect from "./contramapChunksEffect.js"
import type * as C from "./core.js"
/**
* Effectfully transforms this sink's input elements.
*/
export function contramapEffect_<
R,
R1,
InErr,
InErr1 extends InErr,
In,
In1,
OutErr,
L,
Z
>(
self: C.Sink<R, InErr, In, OutErr, L, Z>,
f: (in_: In1) => T.Effect<R1, InErr1, In>
): C.Sink<R1 & R, InErr & InErr1, In1, OutErr, L, Z> {
return ContramapChunksEffect.contramapChunksEffect_(self, CK.mapEffect(f))
}
/**
* Effectfully transforms this sink's input elements.
*
* @ets_data_first contramapEffect_
*/
export function contramapEffect<R1, InErr, InErr1 extends InErr, In, In1>(
f: (in_: In1) => T.Effect<R1, InErr1, In>
) {
return <R, OutErr, L, Z>(self: C.Sink<R, InErr, In, OutErr, L, Z>) =>
contramapEffect_(self, f)
}