@nasriya/hypercloud
Version:
Nasriya HyperCloud is a lightweight Node.js HTTP2 framework.
25 lines (24 loc) • 841 B
JavaScript
import helpers from "../../../utils/helpers.js";
class CrossOriginOpenerPolicy {
static #_utils = {
isValidPolicy: (policy) => {
const validPolicies = new Set(["same-origin", "same-origin-allow-popups", "unsafe-none"]);
return validPolicies.has(policy);
}
};
static validate(options) {
if (options === false) {
return null;
}
;
if (!options || helpers.isNot.realObject(options) || !options.policy) {
return 'same-origin';
}
const { policy } = options;
if (typeof policy !== "string" || !CrossOriginOpenerPolicy.#_utils.isValidPolicy(policy)) {
throw new Error(`Invalid Cross-Origin-Opener-Policy value: ${policy}`);
}
return policy;
}
}
export default CrossOriginOpenerPolicy;