import { type Result } from '../types/core/index.js'; /** * Collapses a nested `Result, E>` one level. * * @typeParam T - The inner success value type. * @typeParam E - The shared error value type. * @param result - The nested `Result` to collapse. * @returns A single-layer `Result`. * @since 0.1.0 * @see {@link andThen} - Chains computations that already return `Result`. * @example * ```ts * import { Ok, flatten } from '@resultsafe/core-fp-result'; * * const value = flatten(Ok(Ok(3))); * console.log(value.ok); // true * ``` * @public */ export const flatten = (result: Result, E>): Result => result.ok ? result.value : { ok: false, error: result.error };