UNPKG

@nasriya/hypercloud

Version:

Nasriya HyperCloud is a lightweight Node.js HTTP2 framework.

29 lines (28 loc) 938 B
import { XFrameOptionsOption } from "../../../docs/docs.js"; import helpers from "../../../utils/helpers.js"; class XFrameOptions { static validate(options) { if (options === false) { return null; } if (!options || helpers.isNot.realObject(options) || !options.action) { return 'DENY'; } const { action, uri } = options; switch (action) { case XFrameOptionsOption.DENY: case XFrameOptionsOption.SAMEORIGIN: return action; case 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."); } } } export default XFrameOptions;