UNPKG

@httpland/coop-middleware

Version:

HTTP cross-origin opener policy(COOP) middleware

34 lines (33 loc) 1.28 kB
"use strict"; // Copyright 2023-latest the httpland authors. All rights reserved. MIT license. // This module is browser compatible. Object.defineProperty(exports, "__esModule", { value: true }); exports.stringifyCrossOriginOpenerPolicy = void 0; const deps_js_1 = require("./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. */ function stringifyCrossOriginOpenerPolicy(policy) { const token = new deps_js_1.Token(policy.value); const parameters = (0, deps_js_1.isString)(policy.reportTo) ? new deps_js_1.Parameters({ [Param.ReportTo]: new deps_js_1.Token(policy.reportTo), }) : new deps_js_1.Parameters(); const item = new deps_js_1.Item([token, parameters]); try { return (0, deps_js_1.stringifySfv)(item); } catch (cause) { throw TypeError(Msg.InvalidCrossOriginOpenerPolicy, { cause }); } } exports.stringifyCrossOriginOpenerPolicy = stringifyCrossOriginOpenerPolicy; var Msg; (function (Msg) { Msg["InvalidCrossOriginOpenerPolicy"] = "invalid CrossOriginOpenerPolicy format."; })(Msg || (Msg = {}));