Una librería de mónadas implementadas en TypeScript con un enfoque orientado a objetos, diseñada para manejar errores y efectos secundarios de forma funcional y elegante.
Esta librería proporciona implementaciones completas y tipadas de las mónadas más útiles para desarrollo en TypeScript:
Representa un valor que puede ser exitoso (Right) o un error (Left). Ideal para manejo de errores sin excepciones.
Representa un valor que puede existir (Some) o no existir (None). Reemplaza el uso de null y undefined de forma segura.
Encapsula operaciones que pueden lanzar excepciones, convirtiéndolas en Success o Failure.
Representa computaciones asincrónicas con evaluación lazy (perezosa).
Encapsula efectos secundarios de forma pura, permitiendo composición antes de la ejecución.
Combina Either con operaciones asincrónicas para manejo de errores en código asíncrono.
andThen y orElsemap, flatMap, fold para transformaciones elegantescombineWith para combinar múltiples mónadasnpm install @leanmind/monadsimport { Either } from '@leanmind/monads';
const divide = (a: number, b: number): Either<string, number> => {
if (b === 0) {
return Either.left('Division by zero');
}
return Either.right(a / b);
};
const result = divide(10, 2)
.map(x => x * 2)
.fold({
ifRight: x => `Result: ${x}`,
ifLeft: err => `Error: ${err}`,
});El proyecto incluye: