25.0.0-beta.3 • Published 5 months ago
@contextjs/webserver-middleware-cookies v25.0.0-beta.3
@contextjs/webserver-middleware-cookies
Middleware for ContextJS WebServer that transparently handles HTTP cookies in requests and responses.
Installation
npm i @contextjs/webserver-middleware-cookies
Features
- Automatic Parsing: Reads the
Cookie
header and populatescontext.request.cookies
with aCookieCollection
ofCookie
objects. - Response Management: Collects cookies you add to
context.response.cookies
and emits properSet-Cookie
headers at the end of each request. - Full Cookie Options: Support for domain, path, expires, max-age, secure, HttpOnly, and SameSite attributes.
- OOP & Async: Built as a modern, promise-based middleware compatible with the ContextJS ecosystem.
Usage
First, register the middleware alongside your web server options:
import "@contextjs/webserver-middleware-cookies";
import { Application } from "@contextjs/system";
import { HttpContext, WebServerOptions } from "@contextjs/webserver";
import { Cookie, CookieOptions, SameSiteMode } from "@contextjs/webserver-middleware-cookies";
const app = new Application();
app.useWebServer((options: WebServerOptions) => {
options.onEvent = e => console.log(`[WebServer:${e.type}]`, e.detail);
options
.useCookies()
.useMiddleware({
name: "logger",
version: "1.0.0",
async onRequest(context: HttpContext) {
const sessionCookie = context.request.cookies.get("session");
console.log("Session:", sessionCookie?.value);
const cookieOptions = new CookieOptions("localhost", "/", null, true, SameSiteMode.Lax, true, null);
const cookie = new Cookie("session", "abc123", cookieOptions);
context.response.cookies.set("session", cookie);
return await context.response
.setHeader("Content-Type", "text/plain")
.sendAsync("Hello, ContextJS!");
}
});
});
await app.runAsync();
API Reference
For detailed API documentation, please refer to the API Reference.
25.0.0-beta.3
5 months ago
25.0.0-beta.2
5 months ago
25.0.0-beta.1
5 months ago
0.5.3-alpha.1
5 months ago
0.5.2-alpha.1
5 months ago
0.5.1-alpha.1
5 months ago