0.1.0 β€’ Published 11 months ago

safe-try-catch v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

πŸ”’ Safe Try Catch

Safe and structured error handling for JavaScript.

⚑ Features

  • πŸ”„ Safe error handling for synchronous and asynchronous functions
  • πŸ” Supports try/catch for both sync and async operations
  • 🎯 Clear separation between success and failure using Result<T, E>
  • πŸ›  Compatible with Promises
  • πŸ“¦ Easy integration with existing codebases
  • πŸ’‘ Inspired by Rust’s error-handling model

πŸ“¦ Install

# Using npm
npm install safe-try-catch

# Using yarn
yarn add safe-try-catch

# Using pnpm
pnpm add safe-try-catch

# Using bun
bun add safe-try-catch

πŸ“‹ Usage

Basic Example

Wraps synchronous or asynchronous functions with safe error handling.

import { safeTry } from 'safe-try-catch';

const [result, error] = safeTry(() => {
  throw new Error("This is an error");
});

Wrapping a function

Wraps a function to handle errors safely, and can be used with both synchronous and asynchronous functions.

import { wrapTry } from 'safe-try-catch';

// Unsafe synchronous function
function unsafeSyncAction(value: string): string {
  if (value === "") throw new Error("Value is empty");
  return value.trim();
}

const safeAction = wrapTry(unsafeSyncAction);
const [result, error] = safeAction("  Hello World  ");

if (error) {
  console.error(error.message);
} else {
  console.log(result); // "Hello World"
}

πŸ“— API

safeTry(fn: () => T): Result<T, Error>

  • Description: Directly executes a function or block of code inside error handling. Ideal for quick, inline code execution.
  • Parameters:
    • fn: A synchronous function to be executed.
  • Returns: A tuple [result, error].

wrapTry<T, E>(fn: (...args: any[]) => T | Promise<T>): (...args: any[]) => Promise<Result<T, E>>

  • Description: Wraps a given function (synchronous or asynchronous) in safe error handling. Returns a function that handles errors and returns a Promise.
  • Parameters:
    • fn: A function to be wrapped that returns a value or a Promise.
  • Returns: A function that returns a Promise containing a tuple [result, error].

🀝 Contributing

Contributions, issues and feature requests are welcome! Feel free to check issues page.

❀️ Show your support

Give a ⭐️ if this project helped you! Or buy me a coffeelatte πŸ™Œ on Ko-fi

πŸ“ License

Copyright Β© 2024 Sammwy. This project is MIT licensed.

0.1.0

11 months ago