Skip to main content
Module

x/mandarinets/deps.ts>Context

Mandarine.TS is a typescript, decorator-driven framework that allows you to create server-side applications. Mandarine.TS provides a range of built-in solutions such as Dependency Injection, Components, ORM and more. Under its umbrella, Mandarine.TS has 4 modules: Core, Data, Security and MVC, these modules will offer you the requirements to build a Mandarine-powered application.
Latest
class Context
import { Context } from "https://deno.land/x/mandarinets@v2.3.2/deps.ts";

Provides context about the current request and response to middleware functions.

Constructors

new
Context(
app: Application<S>,
serverRequest: ServerRequest,
secure?,
)

Type Parameters

optional
S extends State = Record<string, any>

Properties

app: Application<State>

A reference to the current application.

cookies: Cookies

An object which allows access to cookies, mediating both the request and response.

readonly
isUpgradable: boolean

Is true if the current connection is upgradeable to a web socket. Otherwise the value is false. Use .upgrade() to upgrade the connection and return the web socket.

request: Request

An object which contains information about the current request.

respond: boolean

Determines if the request should be responded to. If false when the middleware completes processing, the response will not be sent back to the requestor. Typically this is used if the middleware will take over low level processing of requests and responses, for example if using web sockets. This automatically gets set to false when the context is upgraded to a web socket via the .upgrade() method.

The default is true.

response: Response

An object which contains information about the response that will be sent when the middleware finishes processing.

readonly
socket: WebSocket | undefined

If the the current context has been upgraded, then this will be set to with the web socket, otherwise it is undefined.

state: S

The object to pass state to front-end views. This can be typed by supplying the generic state argument when creating a new app. For example:

const app = new Application<{ foo: string }>();

Or can be contextually inferred based on setting an initial state object:

const app = new Application({ state: { foo: "bar" } });

Methods

assert(
condition: any,
errorStatus?: ErrorStatus,
message?: string,
props?: Record<string, unknown>,
): asserts condition

Asserts the condition and if the condition fails, creates an HTTP error with the provided status (which defaults to 500). The error status by default will be set on the .response.status.

send(options: ContextSendOptions): Promise<string | undefined>

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

If the options.path is not supplied, the file to be sent will default to this .request.url.pathname.

Requires Deno read permission.

sendEvents(options?: ServerSentEventTargetOptions): ServerSentEventTarget

Convert the connection to stream events, returning an event target for sending server sent events. Events dispatched on the returned target will be sent to the client and be available in the client's EventSource that initiated the connection.

This will set .respond to false.

throw(
errorStatus: ErrorStatus,
message?: string,
props?: Record<string, unknown>,
): never

Create and throw an HTTP Error, which can be used to pass status information which can be caught by other middleware to send more meaningful error messages back to the client. The passed error status will be set on the .response.status by default as well.

upgrade(): Promise<WebSocket>

Take the current request and upgrade it to a web socket, resolving with the web socket object. This will set .respond to false.