Skip to content
/ mondjs Public

๐Ÿ› Monadic error handling for JavaScript/TypeScript.

License

Notifications You must be signed in to change notification settings

nehu3n/mondjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ› MondJS

Monadic Error Handling for JavaScript/TypeScript

NPM Package

Minzipped size

๐Ÿ‘‹๐Ÿผ 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.

๐ŸŽญ 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.

Documentation ๐Ÿ“–

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.

๐Ÿ“„ License

The whole project is under the MIT license (see file).

๐Ÿ‘ค Author

MondJS was created and mainly developed by Nehuรฉn (GitHub here).

Give a star โญ to this repository if you see this ๐Ÿ˜‰.

About

๐Ÿ› Monadic error handling for JavaScript/TypeScript.

Resources

License

Stars

Watchers

Forks