@fly/edge
Version:
Fly's TypeScript Edge
39 lines • 3.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addResponseHeaders = exports.responseHeaders = void 0;
/**
* @module Middleware
*/
const builder_1 = require("./builder");
/**
* Middleware to set headers on responses
* @param fetch
* @param options
*/
exports.responseHeaders = builder_1.responseModifier(addResponseHeaders);
/**
* Sets provided headers on a response object
* @private
* @param resp
* @param options
* @hidden
*/
async function addResponseHeaders(resp, headers) {
if (headers) {
if ("headers" in headers && typeof headers.headers === "object") {
//@ts-ignore
headers = headers.headers;
}
for (const [k, v] of Object.entries(headers)) {
if (v === false || v === "") {
resp.headers.delete(k);
}
else if (v !== true) { // true implies pass through
resp.headers.set(k, v.toString());
}
}
}
return resp;
}
exports.addResponseHeaders = addResponseHeaders;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taWRkbGV3YXJlL3Jlc3BvbnNlLWhlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx1Q0FBNkM7QUFTN0M7Ozs7R0FJRztBQUNVLFFBQUEsZUFBZSxHQUFHLDBCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUE7QUFFbkU7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQWMsRUFBRSxPQUErQjtJQUN0RixJQUFJLE9BQU8sRUFBRTtRQUNYLElBQUcsU0FBUyxJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFDO1lBQzdELFlBQVk7WUFDWixPQUFPLEdBQUksT0FBTyxDQUFDLE9BQWtDLENBQUM7U0FDdkQ7UUFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDdkI7aUJBQU0sSUFBUyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsNEJBQTRCO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7YUFDbEM7U0FDRjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBZkQsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgTWlkZGxld2FyZVxuICovXG5pbXBvcnQgeyByZXNwb25zZU1vZGlmaWVyIH0gZnJvbSBcIi4vYnVpbGRlclwiO1xuXG4vKipcbiAqIEhlYWRlciBuYW1lL3ZhbHVlIHBhaXJzIHRvIHNldCBvbiBhIHJlc3BvbnNlLiBUaGUgYm9vbGVhbiBgZmFsc2VgIHJlbW92ZXMgdGhlIGhlYWRlciBlbnRpcmVseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNPcHRpb25zIHtcbiAgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IGZhbHNlXG59XG5cbi8qKlxuICogTWlkZGxld2FyZSB0byBzZXQgaGVhZGVycyBvbiByZXNwb25zZXNcbiAqIEBwYXJhbSBmZXRjaCBcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCByZXNwb25zZUhlYWRlcnMgPSByZXNwb25zZU1vZGlmaWVyKGFkZFJlc3BvbnNlSGVhZGVycylcblxuLyoqXG4gKiBTZXRzIHByb3ZpZGVkIGhlYWRlcnMgb24gYSByZXNwb25zZSBvYmplY3RcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gcmVzcCBcbiAqIEBwYXJhbSBvcHRpb25zIFxuICogQGhpZGRlblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkUmVzcG9uc2VIZWFkZXJzKHJlc3A6IFJlc3BvbnNlLCBoZWFkZXJzOiBSZXNwb25zZUhlYWRlcnNPcHRpb25zKXtcbiAgaWYgKGhlYWRlcnMpIHtcbiAgICBpZihcImhlYWRlcnNcIiBpbiBoZWFkZXJzICYmIHR5cGVvZiBoZWFkZXJzLmhlYWRlcnMgPT09IFwib2JqZWN0XCIpe1xuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBoZWFkZXJzID0gKGhlYWRlcnMuaGVhZGVycyBhcyBSZXNwb25zZUhlYWRlcnNPcHRpb25zKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpIHtcbiAgICAgIGlmICh2ID09PSBmYWxzZSB8fCB2ID09PSBcIlwiKSB7XG4gICAgICAgIHJlc3AuaGVhZGVycy5kZWxldGUoaylcbiAgICAgIH0gZWxzZSBpZiAoPGFueT52ICE9PSB0cnVlKSB7IC8vIHRydWUgaW1wbGllcyBwYXNzIHRocm91Z2hcbiAgICAgICAgcmVzcC5oZWFkZXJzLnNldChrLCB2LnRvU3RyaW5nKCkpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNwXG59XG4iXX0=