@fly/edge
Version:
Fly's TypeScript Edge
32 lines • 3.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.httpsRedirect = exports.httpsUpgrader = void 0;
const builder_1 = require("./builder");
/**
* Redirects http requests to https in production.
*
* In development, this only logs a message
*/
exports.httpsUpgrader = builder_1.requestModifier(httpsRedirect);
/**
* Checks request protocol, returns Redirect response if request is http.
*
* In development, this function just logs a message to the console.
*
* @param req The request to check
* @param options Options for the resulting redirect
*/
function httpsRedirect(req, options) {
let { status, text } = options || { status: 302, text: "" };
status = status || 302;
text = text || "Redirecting";
if (app.env === "development")
console.log("skipping httpsUpgrader in dev");
const url = new URL(req.url);
if (app.env != "development" && url.protocol != "https:") {
url.protocol = "https:";
return new Response(text, { status: status, headers: { location: url.toString() } });
}
}
exports.httpsRedirect = httpsRedirect;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cHMtdXBncmFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWlkZGxld2FyZS9odHRwcy11cGdyYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSx1Q0FBNEM7QUFFNUM7Ozs7R0FJRztBQUNVLFFBQUEsYUFBYSxHQUFHLHlCQUFlLENBQUMsYUFBYSxDQUFDLENBQUE7QUFFM0Q7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxHQUFZLEVBQUUsT0FBeUI7SUFDbkUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUMzRCxNQUFNLEdBQUcsTUFBTSxJQUFJLEdBQUcsQ0FBQTtJQUN0QixJQUFJLEdBQUcsSUFBSSxJQUFJLGFBQWEsQ0FBQTtJQUM1QixJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssYUFBYTtRQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQTtJQUMzRSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDNUIsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLGFBQWEsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsRUFBRTtRQUN4RCxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN2QixPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtLQUNyRjtBQUNILENBQUM7QUFWRCxzQ0FVQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBNaWRkbGV3YXJlXG4gKi9cbmltcG9ydCB7IFJlZGlyZWN0T3B0aW9ucyB9IGZyb20gXCIuLi9mZXRjaFwiO1xuaW1wb3J0IHsgcmVxdWVzdE1vZGlmaWVyIH0gZnJvbSBcIi4vYnVpbGRlclwiO1xuXG4vKipcbiAqIFJlZGlyZWN0cyBodHRwIHJlcXVlc3RzIHRvIGh0dHBzIGluIHByb2R1Y3Rpb24uXG4gKiBcbiAqIEluIGRldmVsb3BtZW50LCB0aGlzIG9ubHkgbG9ncyBhIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IGh0dHBzVXBncmFkZXIgPSByZXF1ZXN0TW9kaWZpZXIoaHR0cHNSZWRpcmVjdClcblxuLyoqXG4gKiBDaGVja3MgcmVxdWVzdCBwcm90b2NvbCwgcmV0dXJucyBSZWRpcmVjdCByZXNwb25zZSBpZiByZXF1ZXN0IGlzIGh0dHAuXG4gKiBcbiAqIEluIGRldmVsb3BtZW50LCB0aGlzIGZ1bmN0aW9uIGp1c3QgbG9ncyBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuXG4gKiBcbiAqIEBwYXJhbSByZXEgVGhlIHJlcXVlc3QgdG8gY2hlY2tcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXN1bHRpbmcgcmVkaXJlY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0dHBzUmVkaXJlY3QocmVxOiBSZXF1ZXN0LCBvcHRpb25zPzogUmVkaXJlY3RPcHRpb25zKXtcbiAgbGV0IHsgc3RhdHVzLCB0ZXh0IH0gPSBvcHRpb25zIHx8IHsgc3RhdHVzOiAzMDIsIHRleHQ6IFwiXCIgfVxuICBzdGF0dXMgPSBzdGF0dXMgfHwgMzAyXG4gIHRleHQgPSB0ZXh0IHx8IFwiUmVkaXJlY3RpbmdcIlxuICBpZiAoYXBwLmVudiA9PT0gXCJkZXZlbG9wbWVudFwiKSBjb25zb2xlLmxvZyhcInNraXBwaW5nIGh0dHBzVXBncmFkZXIgaW4gZGV2XCIpXG4gIGNvbnN0IHVybCA9IG5ldyBVUkwocmVxLnVybClcbiAgaWYgKGFwcC5lbnYgIT0gXCJkZXZlbG9wbWVudFwiICYmIHVybC5wcm90b2NvbCAhPSBcImh0dHBzOlwiKSB7XG4gICAgdXJsLnByb3RvY29sID0gXCJodHRwczpcIlxuICAgIHJldHVybiBuZXcgUmVzcG9uc2UodGV4dCwgeyBzdGF0dXM6IHN0YXR1cywgaGVhZGVyczogeyBsb2NhdGlvbjogdXJsLnRvU3RyaW5nKCkgfSB9KVxuICB9XG59Il19