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.
You can install MondJS using your preferred package manager:
npm:
npm install mondjs
yarn:
yarn add mondjs
pnpm:
pnpm add mondjs
These basic examples show very briefly two of the characteristics of MondJS: Result
and Option
.
๐ญ Result
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);
๐ฎ Option
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.
For detailed information on using MondJS, including guides and examples, check out the documentation in the docs folder:
-
๐ก 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.
The whole project is under the MIT license (see file).
MondJS was created and mainly developed by Nehuรฉn (GitHub here).