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

x/oak_sessions/deps.ts

Session middleware for Oak
Go to Latest
import * as oakSessions from "https://deno.land/x/oak_sessions@v4.1.6/deps.ts";

A middleware framework for handling HTTP with Deno.

oak works well on both Deno CLI and Deno deploy, and is inspired by koa. It works well with both the Deno CLI and Deno Deploy.

Example server

A minimal router server which responds with content on /. With Deno CLI this will listen on port 8080 and on Deploy, this will simply serve requests received on the application.

import { Application, Router } from "https://deno.land/x/oak/mod.ts";

const router = new Router();
router.get("/", (ctx) => {
  ctx.response.body = `<!DOCTYPE html>
    <html>
      <head><title>Hello oak!</title><head>
      <body>
        <h1>Hello oak!</h1>
      </body>
    </html>
  `;
});

const app = new Application();
app.use(router.routes());
app.use(router.allowedMethods());

app.listen({ port: 8080 });

Namespaces

A collection of oak specific APIs for management of ETags.

A collection of APIs to help assist in creating middleware.

A collection of utility APIs which can make testing of an oak application easier.

Classes

A class which registers middleware (via .use()) and then processes inbound requests against that middleware (via .listen()).

Provides context about the current request and response to middleware functions, and the current instance being processed is the first argument provided a Middleware function.

Provides an way to manage cookies in a request and response on the server as a single iterable collection, as well as the ability to sign and verify cookies to prevent tampering.

An interface which provides an interface to access the fields of a multipart/form-data body.

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

The oak abstraction of the Deno native HTTP server which is used internally for handling native HTTP requests. Generally users of oak do not need to worry about this class.

A class that takes a file (either a Deno.FsFile or Uint8Array) and bytes and streams the ranges as a multi-part encoded HTTP body.

An internal oak abstraction for handling a Deno native request. Most users of oak do not need to worry about this abstraction.

An interface which provides information about the current request. The instance related to the current request is available on the Context's .request property.

An interface to control what response will be sent when the middleware finishes processing the request.

An interface for registering middleware that will run when certain HTTP methods and paths are requested, as well as provides a way to parameterize parts of the requested path.

An event which contains information which will be sent to the remote connection and be made available in an EventSource as an event. A server creates new events and dispatches them on the target which will then be sent to a client.

Enums

Standard HTTP status codes.

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.

A symbol that indicates to response.redirect() to attempt to redirect back to the request referrer. For example:

A record of all the status codes text.

Allows external parties to modify the context state.

Functions

Compose multiple middleware functions into a single middleware function.

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 incudes the expose property to set the .expose value on the error.

Calculate an ETag for an entity. When the entity is a specific set of data it will be fingerprinted as a "strong" tag, otherwise if it is just file information, it will be calculated as a weak tag.

Create middleware that will attempt to decode the response.body into something that can be used to generate an ETag and add the ETag header to the response.

For a given Context, try to determine the response body entity that an ETag can be calculated from.

A helper function that takes the value from the If-Match header and a calculated etag for the target. By using strong comparison, return true if the values match, otherwise false.

A helper function that takes the value from the If-None-Match header and a calculated etag for the target entity and returns false if the etag for the entity matches the supplied value, otherwise true.

Given a context, return the .request.url.searchParams as a Map of keys and values of the params.

Determine, by the value of an If-Range header, if a Range header should be applied to a request, returning true if it should or otherwise false.

Determines if a HTTP Status is an ErrorStatus (4XX or 5XX).

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

Determines if a HTTP Status is a RedirectStatus (3XX).

Middleware that provides a back-to-back proxy for requests.

Asynchronously fulfill a response with a file from the local file system.

Creates a mock of Application.

Create a mock of Context or RouterContext.

Creates a mock next() function which can be used when calling middleware.

Interfaces

Available options that are used when creating a new instance of Application.

Options which can be used when accessing the .body() of a request.

When setting the contentTypes property of BodyOptions, provide additional content types which can influence how the body is decoded. This is specifically designed to allow a server to support custom or specialized media types that are not part of the public database.

Just the part of Deno.FileInfo that is required to calculate an ETag, so partial or user generated file information can be passed.

When reading a body in full via .read() from a FormDataReader this is what is what the value is resolved, providing a split between any fields, and multi-part files that were provided.

A representation of a file that has been read from a form data body. Based on the FormDataReadOptions that were passed when reading will determine if files are written to disk or not and how they are written to disk. When written to disk, the extension of the file will be determined by the content type, with the .filename property containing the full path to the file.

Options which impact how the form data is decoded for a FormDataReader. All these options have sensible defaults for most applications, but can be modified for different use cases. Many of these options can have an impact on the stability of a server, especially if there is someone attempting a denial of service attack on your server, so be careful when changing the defaults.

Middleware are functions which are chained together to deal with requests.

Middleware objects allow encapsulation of middleware along with the ability to initialize the middleware upon listen.

The context passed router middleware.

Middleware that will be called by the router when handling a specific parameter, which the middleware will be called when a request matches the route parameter.

Options that can be set in a mock context.

Type Aliases

The tagged type for "bytes" bodies.

The tagged type for "form" bodies.

The tagged type for "form-data" bodies.

The tagged type for "json" bodies.

The tagged type for "reader" bodies.

The tagged type for "stream" bodies.

The tagged type for "text" bodies.

The type of the body, where:

The tagged type for "undefined" bodies.

A HTTP status that is an error (4XX and 5XX).

Type that represents Middleware or MiddlewareObject.

A function for chaining middleware.

A HTTP status that is a redirect (3XX).