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.
Type Safety: Totalmente tipado con TypeScript
Railway Oriented Programming: Soporta patrones como andThen y orElse
Composición: Métodos map, flatMap, fold para transformaciones elegantes
Combinadores: Método combineWith para combinar múltiples mónadas
Sin excepciones: Manejo de errores explícito y funcional
Zero dependencies: Sin dependencias externas
npm 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}`,
});TypeScript
NPM
ESM y CommonJS
Husky (Git hooks)
Semantic Release
El proyecto incluye:
README completo con ejemplos de cada mónada
Documentación de todos los métodos
Ejemplos de uso en escenarios reales
Guías de Railway Oriented Programming