@fly/edge
Version:
Fly's TypeScript Edge
44 lines • 5.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.responseModifier = exports.requestModifier = void 0;
/**
* A convenience function for building middleware that only operates on a response.
* @param fn
*/
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);
};
};
}
exports.requestModifier = requestModifier;
/**
* A convenience function for building middleware that only operates on a response.
* @param fn
*/
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);
};
};
}
exports.responseModifier = responseModifier;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taWRkbGV3YXJlL2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0E7OztHQUdHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLEVBQTREO0lBRTFGLE9BQU8sVUFBUyxLQUFvQixFQUFFLEdBQUcsSUFBVztRQUNsRCxPQUFPLEtBQUssV0FBVSxHQUFnQixFQUFFLElBQWtCO1lBQ3hELElBQUcsT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFDO2dCQUN6QixHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFBO2dCQUM1QixJQUFJLEdBQUcsU0FBUyxDQUFBO2FBQ2pCO1lBQ0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO1lBQzNCLElBQUcsSUFBSSxZQUFZLE9BQU8sRUFBQztnQkFDekIsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFBO2FBQ2xCO1lBQ0QsSUFBRyxJQUFJLEVBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUE7YUFDWjtZQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN6QixDQUFDLENBQUE7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBbEJELDBDQWtCQztBQU9EOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEVBQW9FO0lBRW5HLE9BQU8sVUFBUyxLQUFvQixFQUFFLEdBQUcsSUFBVztRQUNsRCxPQUFPLEtBQUssV0FBVSxHQUFnQixFQUFFLElBQWtCO1lBQ3hELE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUNuQyxJQUFHLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBQztnQkFDekIsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDNUIsSUFBSSxHQUFHLFNBQVMsQ0FBQTthQUNqQjtZQUVELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQzFCLENBQUMsQ0FBQTtJQUNILENBQUMsQ0FBQTtBQUNILENBQUM7QUFiRCw0Q0FhQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBNaWRkbGV3YXJlXG4gKi9cbmltcG9ydCB7IEZldGNoRnVuY3Rpb24sIEZldGNoR2VuZXJhdG9yV2l0aE9wdGlvbnMsIEZldGNoR2VuZXJhdG9yIH0gZnJvbSBcIi4uL2ZldGNoXCI7XG5cbmV4cG9ydCB0eXBlIFJlc3BvbnNlTW9kaWZpZXJSZXN1bHQgPSBQcm9taXNlPHVuZGVmaW5lZCB8IHZvaWQgfCBSZXNwb25zZT4gfCB1bmRlZmluZWQgfCB2b2lkIHwgUmVzcG9uc2Vcbi8qKlxuICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgbWlkZGxld2FyZSB0aGF0IG9ubHkgb3BlcmF0ZXMgb24gYSByZXF1ZXN0LlxuICogQHBhcmFtIGZuIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdE1vZGlmaWVyPEo+KGZuOiAocmVxOiBSZXF1ZXN0LCBvcHRpb25zOiBKKSA9PiBSZXNwb25zZU1vZGlmaWVyUmVzdWx0KTogRmV0Y2hHZW5lcmF0b3JXaXRoT3B0aW9uczxKPlxuLyoqXG4gKiBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBidWlsZGluZyBtaWRkbGV3YXJlIHRoYXQgb25seSBvcGVyYXRlcyBvbiBhIHJlc3BvbnNlLlxuICogQHBhcmFtIGZuIFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdE1vZGlmaWVyKGZuOiAocmVxOiBSZXF1ZXN0LCAuLi5hcmdzOiBhbnlbXSkgPT4gUmVzcG9uc2VNb2RpZmllclJlc3VsdCk6IEZldGNoR2VuZXJhdG9yXG57XG4gIHJldHVybiBmdW5jdGlvbihmZXRjaDogRmV0Y2hGdW5jdGlvbiwgLi4uYXJnczogYW55W10pe1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbihyZXE6IFJlcXVlc3RJbmZvLCBpbml0PzogUmVxdWVzdEluaXQpe1xuICAgICAgaWYodHlwZW9mIHJlcSA9PT0gXCJzdHJpbmdcIil7XG4gICAgICAgIHJlcSA9IG5ldyBSZXF1ZXN0KHJlcSwgaW5pdClcbiAgICAgICAgaW5pdCA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgbGV0IHJlc3AgPSBmbihyZXEsIC4uLmFyZ3MpXG4gICAgICBpZihyZXNwIGluc3RhbmNlb2YgUHJvbWlzZSl7XG4gICAgICAgIHJlc3AgPSBhd2FpdCByZXNwXG4gICAgICB9XG4gICAgICBpZihyZXNwKXtcbiAgICAgICAgcmV0dXJuIHJlc3BcbiAgICAgIH1cbiAgICAgIHJldHVybiBmZXRjaChyZXEsIGluaXQpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgbWlkZGxld2FyZSB0aGF0IG9ubHkgb3BlcmF0ZXMgb24gYSByZXNwb25zZS5cbiAqIEBwYXJhbSBmbiBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3BvbnNlTW9kaWZpZXI8Sj4oZm46IChyZXNwOiBSZXNwb25zZSwgb3B0aW9uczogSikgPT4gUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZSk6IEZldGNoR2VuZXJhdG9yV2l0aE9wdGlvbnM8Sj5cbi8qKlxuICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgYnVpbGRpbmcgbWlkZGxld2FyZSB0aGF0IG9ubHkgb3BlcmF0ZXMgb24gYSByZXNwb25zZS5cbiAqIEBwYXJhbSBmbiBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc3BvbnNlTW9kaWZpZXIoZm46IChyZXNwOiBSZXNwb25zZSwgLi4uYXJnczogYW55W10pID0+IFByb21pc2U8UmVzcG9uc2U+IHwgUmVzcG9uc2UpOiBGZXRjaEdlbmVyYXRvclxue1xuICByZXR1cm4gZnVuY3Rpb24oZmV0Y2g6IEZldGNoRnVuY3Rpb24sIC4uLmFyZ3M6IGFueVtdKXtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24ocmVxOiBSZXF1ZXN0SW5mbywgaW5pdD86IFJlcXVlc3RJbml0KXtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBmZXRjaChyZXEsIGluaXQpXG4gICAgICBpZih0eXBlb2YgcmVxID09PSBcInN0cmluZ1wiKXtcbiAgICAgICAgcmVxID0gbmV3IFJlcXVlc3QocmVxLCBpbml0KVxuICAgICAgICBpbml0ID0gdW5kZWZpbmVkXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbihyZXNwLCAuLi5hcmdzKVxuICAgIH1cbiAgfVxufSJdfQ==