Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/oak_commons/http_errors.ts

A set of APIs for handling HTTP and HTTPS requests with Deno 🐿️ 🦕
Go to Latest
import * as oakCommons from "https://deno.land/x/oak_commons@0.6.0/http_errors.ts";

A collection of HTTP errors and utilities.

The export errors contains an individual class that extends HttpError which makes handling HTTP errors in a structured way.

The function createHttpError provides a way to create instances of errors in a factory pattern.

The function isHttpError is a type guard that will narrow a value to an HttpError instance.

Examples

Example 1

import { errors, isHttpError } from "https://deno.land/std@0.224.0/http/http_errors.ts";

try {
  throw new errors.NotFound();
} catch (e) {
  if (isHttpError(e)) {
    const response = new Response(e.message, { status: e.status });
  } else {
    throw e;
  }
}

Example 2

import { createHttpError } from "https://deno.land/std@0.224.0/http/http_errors.ts";
import { Status } from "https://deno.land/std@0.224.0/http/status.ts";

try {
  throw createHttpError(
    Status.BadRequest,
    "The request was bad.",
    { expose: false }
  );
} catch (e) {
  // handle errors
}

Classes

The base class that all derivative HTTP extend, providing a status and an expose property.

Variables

A namespace that contains each error constructor. Each error extends HTTPError and provides .status and .expose properties, where the .status will be an error Status value and .expose indicates if information, like a stack trace, should be shared in the response.

Functions

A factory function which provides a way to create errors. It takes up to 3 arguments, the error Status, an message, which defaults to the status text and error options, which includes the expose property to set the .expose value on the error.

A type guard that determines if the value is an HttpError or not.