mondjs
v1.1.0
Published
🐛 Monadic Error Handling for JavaScript/TypeScript.
Downloads
68
Maintainers
Readme
🐛 MondJS
Monadic Error Handling for JavaScript/TypeScript
👋🏼 About
MondJS is a lightweight JavaScript/TypeScript library that brings monadic error handling, inspired by Rust, to your codebase.
This approach to error handling is more robust and reliable than traditional exception handling, which should be reserved for truly exceptional cases, rather than used as the primary method for managing common errors in general situations.
🚀 Getting Started
Installation 📥
You can install MondJS using your preferred package manager:
npm:
npm install mondjs
yarn:
yarn add mondjs
pnpm:
pnpm add mondjs
Basic examples 🔎
These basic examples show very briefly two of the characteristics of MondJS: Result
and Option
.
import { type Result, ok, err } from "mondjs";
function divide(a: number, b: number): Result<number, string> {
if (a === 0 || b === 0) {
return err("Divided by 0.");
}
return ok(a / b);
}
const result = divide(4, 0).unwrap();
console.log(result);
import { type Option, some, none } from "mondjs";
type User = {
id: number;
name: string;
};
const users: User[] = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
];
function findUserById(id: number): Option<User> {
const user = users.find((user) => user.id === id);
return user ? some(user) : none();
}
const defaultUser: User = { id: 3, name: "Jhon" };
const userOption = findUserById(3).unwrapOr(defaultUser);
console.log(userOption);
For more details and to see all the functionalities of MondJS, please refer to the documentation section.
Documentation 📖
For detailed information on using MondJS, including guides and examples, see documentation in the docs folder in the GitHub repository:
💡 Main page: docs/README.md - Overview and basic explanation.
👀 Examples: docs/examples - Practical examples for various use cases.
Explore these resources to get started with MondJS.
📄 License
The whole project is under the MIT license (see file).
👤 Author
MondJS was created and mainly developed by Nehuén (GitHub here).