@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
22 lines (19 loc) • 538 B
text/typescript
// ets_tracing: off
import * as O from "../../Option/index.js"
import * as T from "../deps-core.js"
import { addIfOpen } from "./addIfOpen.js"
import type { Finalizer } from "./finalizer.js"
import { release } from "./release.js"
import type { ReleaseMap } from "./ReleaseMap.js"
export function add(finalizer: Finalizer) {
return (_: ReleaseMap) =>
T.map_(
addIfOpen(finalizer)(_),
O.fold(
(): Finalizer => () => T.unit,
(k): Finalizer =>
(e) =>
release(k, e)(_)
)
)
}