index.js 884 Bytes
"use strict";
function parseMaxAge(option) {
    if (option === undefined) {
        return 0;
    }
    if (typeof option !== 'number' || option < 0) {
        throw new Error(option + " is not a valid value for maxAge. Please choose a positive integer.");
    }
    return option;
}
function getHeaderValueFromOptions(options) {
    options = options || {};
    var directives = [];
    if (options.enforce) {
        directives.push('enforce');
    }
    directives.push("max-age=" + parseMaxAge(options.maxAge));
    if (options.reportUri) {
        directives.push("report-uri=\"" + options.reportUri + "\"");
    }
    return directives.join(', ');
}
module.exports = function expectCt(options) {
    var headerValue = getHeaderValueFromOptions(options);
    return function expectCt(_req, res, next) {
        res.setHeader('Expect-CT', headerValue);
        next();
    };
};