@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
27 lines (23 loc) • 742 B
text/typescript
// ets_tracing: off
import { identity } from "../../../../Function/index.js"
import type * as O from "../../../../Option/index.js"
import type * as C from "../core.js"
import * as RefineOrDieWith from "./refineOrDieWith.js"
/**
* Keeps some of the errors, and terminates the fiber with the rest
*/
export function refineOrDie_<R, E, E1, A>(
self: C.Stream<R, E, A>,
pf: (e: E) => O.Option<E1>
): C.Stream<R, E | E1, A> {
return RefineOrDieWith.refineOrDieWith_(self, pf, identity)
}
/**
* Keeps some of the errors, and terminates the fiber with the rest
*
*
* @ets_data_first refineOrDie_
*/
export function refineOrDie<E, E1>(pf: (e: E) => O.Option<E1>) {
return <R, A>(self: C.Stream<R, E, A>) => refineOrDie_(self, pf)
}