UNPKG

@nasriya/hypercloud

Version:

Nasriya HyperCloud is a lightweight Node.js HTTP2 framework.

22 lines (21 loc) 1.01 kB
import helpers from "../../../utils/helpers.js"; class StrictTransportSecurity { static defaultMaxAge = 15552000; static defaultIncludeSubDomains = true; static defaultPreload = false; static validate(options) { if (options === false) { return null; } ; const { maxAge = StrictTransportSecurity.defaultMaxAge, includeSubDomains = StrictTransportSecurity.defaultIncludeSubDomains, preload = StrictTransportSecurity.defaultPreload } = options || {}; if (!helpers.is.integer(maxAge) || maxAge <= 0) { throw new Error(`Invalid maxAge value for Strict-Transport-Security: ${maxAge}`); } const maxAgeDirective = `max-age=${maxAge}`; const includeSubDomainsDirective = includeSubDomains ? "; includeSubDomains" : ""; const preloadDirective = preload ? "; preload" : ""; return `${maxAgeDirective}${includeSubDomainsDirective}${preloadDirective}`; } } export default StrictTransportSecurity;