@nasriya/hypercloud
Version:
Nasriya HyperCloud is a lightweight Node.js HTTP2 framework.
34 lines (33 loc) • 1.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const docs_1 = require("../../../docs/docs");
const helpers_1 = __importDefault(require("../../../utils/helpers"));
class XFrameOptions {
static validate(options) {
if (options === false) {
return null;
}
if (!options || helpers_1.default.isNot.realObject(options) || !options.action) {
return 'DENY';
}
const { action, uri } = options;
switch (action) {
case docs_1.XFrameOptionsOption.DENY:
case docs_1.XFrameOptionsOption.SAMEORIGIN:
return action;
case docs_1.XFrameOptionsOption.ALLOWFROM:
if (uri) {
return `${action} ${uri}`;
}
else {
throw new Error("URI must be provided for ALLOW-FROM value.");
}
default:
throw new Error("Invalid X-Frame-Options value.");
}
}
}
exports.default = XFrameOptions;