UNPKG

@fly/edge

Version:
35 lines 3.48 kB
"use strict"; /** * @module Backends */ Object.defineProperty(exports, "__esModule", { value: true }); exports.surge = void 0; const proxy_1 = require("../proxy"); const subdomain_service_1 = require("./subdomain_service"); /** * Creates a `fetch` like function for proxying requests to hosted Surge. * * Example: * ```typescript * import { surge } from "./src/backends"; * const backend = surge({ * subdomain: "cloistered-swim", * directory: "/", * }); * ``` * @param options surge information. Accepts subdomain as a string. */ function surge(options) { const config = subdomain_service_1.normalizeOptions(options); const surgeHost = `${config.subdomain}.surge.sh`; const uri = `https://${surgeHost}${config.directory}`; const headers = { "host": surgeHost, "x-forwarded-host": config.hostname || false }; const fn = proxy_1.proxy(uri, { headers: headers, rewriteLocationHeaders: true }); return Object.assign(fn, { proxyConfig: config }); } exports.surge = surge; surge.normalizeOptions = subdomain_service_1.normalizeOptions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvc3VyZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxvQ0FBZ0Q7QUFDaEQsMkRBQXlFO0FBRXpFOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLEtBQUssQ0FBQyxPQUFrQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxvQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QyxNQUFNLFNBQVMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLFdBQVcsQ0FBQTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxXQUFXLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDckQsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsU0FBUztRQUNqQixrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7S0FDN0MsQ0FBQTtJQUVELE1BQU0sRUFBRSxHQUFHLGFBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDekUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUM7QUFaRCxzQkFZQztBQUVELEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxvQ0FBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBCYWNrZW5kc1xuICovXG5cbmltcG9ydCB7IHByb3h5LCBQcm94eUZ1bmN0aW9uIH0gZnJvbSBcIi4uL3Byb3h5XCI7XG5pbXBvcnQgeyBTdWJkb21haW5PcHRpb25zLCBub3JtYWxpemVPcHRpb25zIH0gZnJvbSBcIi4vc3ViZG9tYWluX3NlcnZpY2VcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYGZldGNoYCBsaWtlIGZ1bmN0aW9uIGZvciBwcm94eWluZyByZXF1ZXN0cyB0byBob3N0ZWQgU3VyZ2UuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IHN1cmdlIH0gZnJvbSBcIi4vc3JjL2JhY2tlbmRzXCI7XG4gKiBjb25zdCBiYWNrZW5kID0gc3VyZ2Uoe1xuICogIHN1YmRvbWFpbjogXCJjbG9pc3RlcmVkLXN3aW1cIixcbiAqICBkaXJlY3Rvcnk6IFwiL1wiLFxuICogfSk7XG4gKiBgYGBcbiAqIEBwYXJhbSBvcHRpb25zIHN1cmdlIGluZm9ybWF0aW9uLiBBY2NlcHRzIHN1YmRvbWFpbiBhcyBhIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1cmdlKG9wdGlvbnM6IFN1YmRvbWFpbk9wdGlvbnMgfCBzdHJpbmcpOiBQcm94eUZ1bmN0aW9uPFN1YmRvbWFpbk9wdGlvbnM+IHtcbiAgY29uc3QgY29uZmlnID0gbm9ybWFsaXplT3B0aW9ucyhvcHRpb25zKTtcblxuICBjb25zdCBzdXJnZUhvc3QgPSBgJHtjb25maWcuc3ViZG9tYWlufS5zdXJnZS5zaGBcbiAgY29uc3QgdXJpID0gYGh0dHBzOi8vJHtzdXJnZUhvc3R9JHtjb25maWcuZGlyZWN0b3J5fWBcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBcImhvc3RcIjogc3VyZ2VIb3N0LFxuICAgIFwieC1mb3J3YXJkZWQtaG9zdFwiOiBjb25maWcuaG9zdG5hbWUgfHwgZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGZuID0gcHJveHkodXJpLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJld3JpdGVMb2NhdGlvbkhlYWRlcnM6IHRydWUgfSlcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZm4sIHsgcHJveHlDb25maWc6IGNvbmZpZ30pXG59XG5cbnN1cmdlLm5vcm1hbGl6ZU9wdGlvbnMgPSBub3JtYWxpemVPcHRpb25zO1xuIl19