UNPKG

@fly/cdn

Version:
39 lines 5.1 kB
/** * A convenience function for building middleware that only operates on a response. * @param fn */ export function requestModifier(fn) { return function (fetch, ...args) { return async function (req, init) { if (typeof req === "string") { req = new Request(req, init); init = undefined; } let resp = fn(req, ...args); if (resp instanceof Promise) { resp = await resp; } if (resp) { return resp; } return fetch(req, init); }; }; } /** * A convenience function for building middleware that only operates on a response. * @param fn */ export function responseModifier(fn) { return function (fetch, ...args) { return async function (req, init) { const resp = await fetch(req, init); if (typeof req === "string") { req = new Request(req, init); init = undefined; } return fn(resp, ...args); }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0E7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUE0RDtJQUUxRixPQUFPLFVBQVMsS0FBb0IsRUFBRSxHQUFHLElBQVc7UUFDbEQsT0FBTyxLQUFLLFdBQVUsR0FBZ0IsRUFBRSxJQUFrQjtZQUN4RCxJQUFHLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBQztnQkFDekIsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDNUIsSUFBSSxHQUFHLFNBQVMsQ0FBQTthQUNqQjtZQUNELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtZQUMzQixJQUFHLElBQUksWUFBWSxPQUFPLEVBQUM7Z0JBQ3pCLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQTthQUNsQjtZQUNELElBQUcsSUFBSSxFQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFBO2FBQ1o7WUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDekIsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQU9EOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFvRTtJQUVuRyxPQUFPLFVBQVMsS0FBb0IsRUFBRSxHQUFHLElBQVc7UUFDbEQsT0FBTyxLQUFLLFdBQVUsR0FBZ0IsRUFBRSxJQUFrQjtZQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDbkMsSUFBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUM7Z0JBQ3pCLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQzVCLElBQUksR0FBRyxTQUFTLENBQUE7YUFDakI7WUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUE7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIE1pZGRsZXdhcmVcbiAqL1xuaW1wb3J0IHsgRmV0Y2hGdW5jdGlvbiwgRmV0Y2hHZW5lcmF0b3JXaXRoT3B0aW9ucywgRmV0Y2hHZW5lcmF0b3IgfSBmcm9tIFwiLi4vZmV0Y2hcIjtcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2VNb2RpZmllclJlc3VsdCA9IFByb21pc2U8dW5kZWZpbmVkIHwgdm9pZCB8IFJlc3BvbnNlPiB8IHVuZGVmaW5lZCB8IHZvaWQgfCBSZXNwb25zZVxuLyoqXG4gKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBidWlsZGluZyBtaWRkbGV3YXJlIHRoYXQgb25seSBvcGVyYXRlcyBvbiBhIHJlcXVlc3QuXG4gKiBAcGFyYW0gZm4gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0TW9kaWZpZXI8Sj4oZm46IChyZXE6IFJlcXVlc3QsIG9wdGlvbnM6IEopID0+IFJlc3BvbnNlTW9kaWZpZXJSZXN1bHQpOiBGZXRjaEdlbmVyYXRvcldpdGhPcHRpb25zPEo+XG4vKipcbiAqIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGJ1aWxkaW5nIG1pZGRsZXdhcmUgdGhhdCBvbmx5IG9wZXJhdGVzIG9uIGEgcmVzcG9uc2UuXG4gKiBAcGFyYW0gZm4gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0TW9kaWZpZXIoZm46IChyZXE6IFJlcXVlc3QsIC4uLmFyZ3M6IGFueVtdKSA9PiBSZXNwb25zZU1vZGlmaWVyUmVzdWx0KTogRmV0Y2hHZW5lcmF0b3JcbntcbiAgcmV0dXJuIGZ1bmN0aW9uKGZldGNoOiBGZXRjaEZ1bmN0aW9uLCAuLi5hcmdzOiBhbnlbXSl7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uKHJlcTogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCl7XG4gICAgICBpZih0eXBlb2YgcmVxID09PSBcInN0cmluZ1wiKXtcbiAgICAgICAgcmVxID0gbmV3IFJlcXVlc3QocmVxLCBpbml0KVxuICAgICAgICBpbml0ID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBsZXQgcmVzcCA9IGZuKHJlcSwgLi4uYXJncylcbiAgICAgIGlmKHJlc3AgaW5zdGFuY2VvZiBQcm9taXNlKXtcbiAgICAgICAgcmVzcCA9IGF3YWl0IHJlc3BcbiAgICAgIH1cbiAgICAgIGlmKHJlc3Ape1xuICAgICAgICByZXR1cm4gcmVzcFxuICAgICAgfVxuICAgICAgcmV0dXJuIGZldGNoKHJlcSwgaW5pdClcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBidWlsZGluZyBtaWRkbGV3YXJlIHRoYXQgb25seSBvcGVyYXRlcyBvbiBhIHJlc3BvbnNlLlxuICogQHBhcmFtIGZuIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzcG9uc2VNb2RpZmllcjxKPihmbjogKHJlc3A6IFJlc3BvbnNlLCBvcHRpb25zOiBKKSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IFJlc3BvbnNlKTogRmV0Y2hHZW5lcmF0b3JXaXRoT3B0aW9uczxKPlxuLyoqXG4gKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBidWlsZGluZyBtaWRkbGV3YXJlIHRoYXQgb25seSBvcGVyYXRlcyBvbiBhIHJlc3BvbnNlLlxuICogQHBhcmFtIGZuIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzcG9uc2VNb2RpZmllcihmbjogKHJlc3A6IFJlc3BvbnNlLCAuLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZSk6IEZldGNoR2VuZXJhdG9yXG57XG4gIHJldHVybiBmdW5jdGlvbihmZXRjaDogRmV0Y2hGdW5jdGlvbiwgLi4uYXJnczogYW55W10pe1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbihyZXE6IFJlcXVlc3RJbmZvLCBpbml0PzogUmVxdWVzdEluaXQpe1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKHJlcSwgaW5pdClcbiAgICAgIGlmKHR5cGVvZiByZXEgPT09IFwic3RyaW5nXCIpe1xuICAgICAgICByZXEgPSBuZXcgUmVxdWVzdChyZXEsIGluaXQpXG4gICAgICAgIGluaXQgPSB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZuKHJlc3AsIC4uLmFyZ3MpXG4gICAgfVxuICB9XG59Il19