UNPKG

@httpland/coop-middleware

Version:

HTTP cross-origin opener policy(COOP) middleware

30 lines (29 loc) 1.04 kB
// Copyright 2023-latest the httpland authors. All rights reserved. MIT license. // This module is browser compatible. import { isString, Item, Parameters, stringifySfv, Token } from "./deps.js"; var Param; (function (Param) { Param["ReportTo"] = "report-to"; })(Param || (Param = {})); /** Serialize {@link CrossOriginOpenerPolicy} into string. * @throws {TypeError} If the {@link CrossOriginOpenerPolicy} is invalid. */ export function stringifyCrossOriginOpenerPolicy(policy) { const token = new Token(policy.value); const parameters = isString(policy.reportTo) ? new Parameters({ [Param.ReportTo]: new Token(policy.reportTo), }) : new Parameters(); const item = new Item([token, parameters]); try { return stringifySfv(item); } catch (cause) { throw TypeError(Msg.InvalidCrossOriginOpenerPolicy, { cause }); } } var Msg; (function (Msg) { Msg["InvalidCrossOriginOpenerPolicy"] = "invalid CrossOriginOpenerPolicy format."; })(Msg || (Msg = {}));