UNPKG

@fly/edge

Version:
32 lines 3.73 kB
"use strict"; 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