export const unwrapEffect = <Args extends any[], R>(f: EffectfulFn<Args, R>) =>
(...args: Args): R => pipe(
f(...args),
Effect.either,
Effect.runSync,
E.match({
onLeft: error => { throw error; },
onRight: identity
})
);
type EffectfulFn<Args extends any[], R> =
(...args: Args) => Effect.Effect<never, unknown, R>
export const unwrapEffect = <Args extends any[], R>(f: EffectfulFn<Args, R>) =>
(...args: Args): R => pipe(
f(...args),
Effect.either,
Effect.runSync,
E.match({
onLeft: error => { throw error; },
onRight: identity
})
);
type EffectfulFn<Args extends any[], R> =
(...args: Args) => Effect.Effect<never, unknown, R>