Handle errors with confidence and resilience everywhere.
Functional programming for pragmatists. No Category Theory degree required. The framework-agnostic TypeScript library designed for production safety.
npm install @deessejs/fpOr git clone and start contributing
Simplified Flow
1try {
2 const user = getUser(id);
3 return process(user);
4} catch (e) {
5 handleError(e);
6}1getUser(id)
2 .map(user => process(user))
3 .tapError(err => handleError(err));Capabilities
Never try & catch again
Errors become typed values you can map, flatMap, and chain — without breaking your flow.
Async without boilerplate
Fluent chaining for Promises. Same API as sync code. No more nested pyramids.
One API everywhere
Sync or Async, it doesn't matter. One set of functions to learn for everything.
Errors that tell a story
Structured domain errors with context and Zod validation. Built for debugging.
Production-ready
Debounce, throttle, memoize, and timeouts out of the box.
Make absence explicit
No more null checks — absence is visible in the type system from the start.
Retry without the mess
Exponential backoff, jitter, and predicates handled elegantly.
Composable by design
Pipe and flow let you build readable transformation pipelines.
Details
Write more resilient code.
Deesse is currently in early development. Join us in building the most pragmatic error handling library for TypeScript.