@fly/edge
Version:
Fly's TypeScript Edge
36 lines • 3.65 kB
JavaScript
;
/**
* @module Backends
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.zeitNow = void 0;
const proxy_1 = require("../proxy");
const subdomain_service_1 = require("./subdomain_service");
/**
* Creates a `fetch` like function for proxying requests to hosted Zeit Now.
*
* Example:
* ```typescript
* import { zeitNow } from "./src/backends";
* const backend = zeitNow({
* subdomain: "nextjs-news-v2",
* directory: "/",
* hostname: "https://nextjs-news-v2.now.sh/"
* });
* ```
* @param options zeitNow information. Accepts subdomain as a string.
*/
function zeitNow(options) {
const config = subdomain_service_1.normalizeOptions(options);
const zeitNowHost = `${config.subdomain}.now.sh`;
const uri = `https://${zeitNowHost}${config.directory}`;
const headers = {
"host": zeitNowHost,
"x-forwarded-host": config.hostname || false
};
const fn = proxy_1.proxy(uri, { headers: headers, rewriteLocationHeaders: true });
return Object.assign(fn, { proxyConfig: config });
}
exports.zeitNow = zeitNow;
zeitNow.normalizeOptions = subdomain_service_1.normalizeOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVpdC1ub3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvemVpdC1ub3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxvQ0FBZ0Q7QUFDaEQsMkRBQXlFO0FBRXpFOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixPQUFPLENBQUMsT0FBa0M7SUFDeEQsTUFBTSxNQUFNLEdBQUcsb0NBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxTQUFTLENBQUE7SUFDaEQsTUFBTSxHQUFHLEdBQUcsV0FBVyxXQUFXLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ3ZELE1BQU0sT0FBTyxHQUFHO1FBQ2QsTUFBTSxFQUFFLFdBQVc7UUFDbkIsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLO0tBQzdDLENBQUE7SUFFRCxNQUFNLEVBQUUsR0FBRyxhQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3pFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBWkQsMEJBWUM7QUFFRCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsb0NBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQmFja2VuZHNcbiAqL1xuXG5pbXBvcnQgeyBwcm94eSwgUHJveHlGdW5jdGlvbiB9IGZyb20gXCIuLi9wcm94eVwiO1xuaW1wb3J0IHsgU3ViZG9tYWluT3B0aW9ucywgbm9ybWFsaXplT3B0aW9ucyB9IGZyb20gXCIuL3N1YmRvbWFpbl9zZXJ2aWNlXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBmZXRjaGAgbGlrZSBmdW5jdGlvbiBmb3IgcHJveHlpbmcgcmVxdWVzdHMgdG8gaG9zdGVkIFplaXQgTm93LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyB6ZWl0Tm93IH0gZnJvbSBcIi4vc3JjL2JhY2tlbmRzXCI7XG4gKiBjb25zdCBiYWNrZW5kID0gemVpdE5vdyh7XG4gKiAgc3ViZG9tYWluOiBcIm5leHRqcy1uZXdzLXYyXCIsXG4gKiAgZGlyZWN0b3J5OiBcIi9cIixcbiAqICBob3N0bmFtZTogXCJodHRwczovL25leHRqcy1uZXdzLXYyLm5vdy5zaC9cIiBcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyB6ZWl0Tm93IGluZm9ybWF0aW9uLiBBY2NlcHRzIHN1YmRvbWFpbiBhcyBhIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHplaXROb3cob3B0aW9uczogU3ViZG9tYWluT3B0aW9ucyB8IHN0cmluZyk6IFByb3h5RnVuY3Rpb248U3ViZG9tYWluT3B0aW9ucz4ge1xuICBjb25zdCBjb25maWcgPSBub3JtYWxpemVPcHRpb25zKG9wdGlvbnMpO1xuXG4gIGNvbnN0IHplaXROb3dIb3N0ID0gYCR7Y29uZmlnLnN1YmRvbWFpbn0ubm93LnNoYFxuICBjb25zdCB1cmkgPSBgaHR0cHM6Ly8ke3plaXROb3dIb3N0fSR7Y29uZmlnLmRpcmVjdG9yeX1gXG4gIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgXCJob3N0XCI6IHplaXROb3dIb3N0LFxuICAgIFwieC1mb3J3YXJkZWQtaG9zdFwiOiBjb25maWcuaG9zdG5hbWUgfHwgZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGZuID0gcHJveHkodXJpLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJld3JpdGVMb2NhdGlvbkhlYWRlcnM6IHRydWUgfSlcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZm4sIHsgcHJveHlDb25maWc6IGNvbmZpZ30pXG59XG5cbnplaXROb3cubm9ybWFsaXplT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGlvbnM7XG4iXX0=