@httpland/coop-middleware
Version:
HTTP cross-origin opener policy(COOP) middleware
30 lines (29 loc) • 1.04 kB
JavaScript
// 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 = {}));