0.9.3 • Published 11 months ago

@ocubist/error-alchemy v0.9.3

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

Error Alchemy

Description

Error Alchemy is a sophisticated error-handling framework designed for robust error management in TypeScript applications. It provides a flexible and powerful toolkit for creating custom errors, handling error transmutation, and ensuring detailed error logging and resolution. The library leverages Zod schemas extensively to ensure advanced type-safety and comprehensive type inference.

Installation

To install Error Alchemy, use npm or yarn:

npm install @ocubist/error-alchemy
# or
yarn add @ocubist/error-alchemy

Usage

Basic Example

import { useErrorAlchemy } from "@ocubist/error-alchemy";
import { z } from "zod";

// Define your Zod schemas
const errorPropsSchema = z.object({
  name: z.string(),
  message: z.string(),
});

// Initialize the Error Alchemy toolkit
const { craftMysticError, craftErrorTransmuter } = useErrorAlchemy(
  "MyModule",
  "ExampleContext"
);

// Craft a custom error
const MyCustomError = craftMysticError({
  name: "MyCustomError",
  errorCode: "CUSTOM_ERROR",
  severity: "critical",
});

// Create a transmuter for the custom error
const transmuter = craftErrorTransmuter(
  (err) => err instanceof Error,
  (err) => new MyCustomError({ message: err.message, origin: err })
);

// Use the transmuter in your application
try {
  throw new Error("Something went wrong!");
} catch (error) {
  const customError = transmuter.execute(error);
  console.error("Handled error:", customError);
}

Advanced Example with Error Synthesizer

import { useErrorAlchemy } from "@ocubist/error-alchemy";
import { z } from "zod";

// Define your Zod schemas
const errorPropsSchema = z.object({
  name: z.string(),
  message: z.string(),
});

// Initialize the Error Alchemy toolkit
const { craftErrorSynthesizer, craftMysticError, craftErrorTransmuter } =
  useErrorAlchemy("MyModule", "ExampleContext");

// Craft a custom error
const MyCustomError = craftMysticError({
  name: "MyCustomError",
  errorCode: "CUSTOM_ERROR",
  severity: "critical",
});

// Create a transmuter for the custom error
const transmuter = craftErrorTransmuter(
  (err) => err instanceof Error,
  (err) => new MyCustomError({ message: err.message, origin: err })
);

// Create an error synthesizer
const synthesizer = craftErrorSynthesizer([transmuter]);

// Use the synthesizer in your application
try {
  throw new Error("Something went wrong!");
} catch (error) {
  const synthesizedError = synthesizer.synthesize(error);
  console.error("Handled synthesized error:", synthesizedError);
}

API Documentation

For the full API documentation, please visit the Error Alchemy Documentation.

License

Error Alchemy is licensed under the MIT License. See the LICENSE file for more information.

0.8.8

1 year ago

0.8.5

1 year ago

0.9.3

11 months ago

0.8.4

1 year ago

0.8.7

1 year ago

0.8.6

1 year ago

0.8.1

1 year ago

0.7.2

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.9.2

11 months ago

0.8.3

1 year ago

0.7.4

1 year ago

0.9.1

1 year ago

0.7.3

1 year ago

0.7.0

1 year ago

0.6.2

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.4

2 years ago

0.5.3

2 years ago

0.5.5

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.8

2 years ago

0.4.7

2 years ago

0.4.6

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago