@n3rd1n/monads
v1.0.5
Published
A collection of monad implementations for TypeScript
Maintainers
Readme
@n3rd1n/monads
A collection of monad implementations for TypeScript.
Installation
npm install @n3rd1n/monadsUsage
import { Functor, Optional } from '@n3rd1n/monads'
// Optional - für Werte die null/undefined sein können
const maybeValue = Optional.Maybe(getUserName())
.map(name => name.toUpperCase())
.do(name => console.log(name))
.getOrDefault('Anonymous')
// Functor - für Wert-Transformationen
const result = Functor.From(5)
.map(x => x * 2)
.map(x => x.toString())
.get() // "10"
// Async Operationen
const asyncResult = await Optional.Maybe(userId)
.mapAsync(id => fetchUser(id))
.mapAsync(user => fetchPosts(user))
.await()API
Optional
Monade für optionale Werte (Alternative zu null/undefined).
Optional.Maybe(value)- Erstellt ein Optional aus einem WertOptional.Just(value)- Erstellt ein Optional mit WertOptional.None()- Erstellt ein leeres Optional.map(fn)- Transformiert den Wert.mapAsync(fn)- Async Transformation.filter(fn)- Filtert basierend auf Prädikat.do(fn)- Führt Seiteneffekt aus.orElse(fn)- Fallback wenn leer.get()- Gibt Wert zurück (wirft Error wenn leer).getOrDefault(default)- Gibt Wert oder Default zurück.toNullable()- Konvertiert zu T | null
Functor
Einfache Monade für Wert-Transformationen.
Functor.From(value)- Erstellt einen Functor.map(fn)- Transformiert den Wert.mapAsync(fn)- Async Transformation.log(message?)- Loggt den Wert.get()- Gibt den Wert zurück
Development
# Dependencies installieren
npm install
# Build erstellen
npm run buildLicense
MIT
