UNPKG

@httpland/coop-middleware

Version:

HTTP cross-origin opener policy(COOP) middleware

38 lines (37 loc) 1.22 kB
import { CrossOriginOpenerPolicyValue } from "./constants.js"; import { CrossOriginOpenerPolicy } from "./types.js"; import { type Middleware } from "./deps.js"; /** Middleware options. */ export interface Options extends Partial<Pick<CrossOriginOpenerPolicy, "reportTo">> { /** Opener policy value. * @default "same-origin" */ readonly policy?: `${CrossOriginOpenerPolicyValue}`; /** Whether header is report-only or not. * Depending on the value, the header will be: * - `true`: `Cross-Origin-Opener-Policy-Report-Only` * - `false`: `Cross-Origin-Opener-Policy` * @default false */ readonly reportOnly?: boolean; } /** Create cross-origin opener policy middleware. * * @example * ```ts * import { * coop, * type Handler, * } from "https://deno.land/x/coop_middleware@$VERSION/mod.ts"; * import { assert } from "https://deno.land/std/testing/asserts.ts"; * * declare const request: Request; * declare const handler: Handler; * * const middleware = coop(); * const response = await middleware(request, handler); * * assert(response.headers.has("cross-origin-opener-policy")); * ``` */ export declare function coop(options?: Options): Middleware;