@fly/edge
Version:
Fly's TypeScript Edge
34 lines • 3.4 kB
JavaScript
;
/**
* @module Backends
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.netlify = void 0;
const proxy_1 = require("../proxy");
const subdomain_service_1 = require("./subdomain_service");
/**
* Creates a `fetch` like function for proxying requests to hosted Netlify sites.
*
* Example:
* ```typescript
* import { netlify } from "./src/backends";
* const backend = netlify({
* subdomain: "example"
* });
* ```
* @param options Netlify site information. Accepts subdomain as a string.
*/
function netlify(options) {
const config = subdomain_service_1.normalizeOptions(options);
const netlifyHost = `${config.subdomain}.netlify.app`;
const uri = `https://${netlifyHost}${config.directory}`;
const headers = {
"host": netlifyHost,
"x-forwarded-host": config.hostname || false
};
const fn = proxy_1.proxy(uri, { headers: headers });
return Object.assign(fn, { proxyConfig: config });
}
exports.netlify = netlify;
netlify.normalizeOptions = subdomain_service_1.normalizeOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0bGlmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kcy9uZXRsaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsb0NBQWdEO0FBQ2hELDJEQUF5RTtBQUV6RTs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxPQUFrQztJQUN4RCxNQUFNLE1BQU0sR0FBRyxvQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QyxNQUFNLFdBQVcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLGNBQWMsQ0FBQTtJQUNyRCxNQUFNLEdBQUcsR0FBRyxXQUFXLFdBQVcsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDdkQsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsV0FBVztRQUNuQixrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7S0FDN0MsQ0FBQTtJQUVELE1BQU0sRUFBRSxHQUFHLGFBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQVpELDBCQVlDO0FBRUQsT0FBTyxDQUFDLGdCQUFnQixHQUFHLG9DQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIEJhY2tlbmRzXG4gKi9cblxuaW1wb3J0IHsgcHJveHksIFByb3h5RnVuY3Rpb24gfSBmcm9tIFwiLi4vcHJveHlcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbnMsIFN1YmRvbWFpbk9wdGlvbnMgfSBmcm9tIFwiLi9zdWJkb21haW5fc2VydmljZVwiO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgZmV0Y2hgIGxpa2UgZnVuY3Rpb24gZm9yIHByb3h5aW5nIHJlcXVlc3RzIHRvIGhvc3RlZCBOZXRsaWZ5IHNpdGVzLlxuICogXG4gKiBFeGFtcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgbmV0bGlmeSB9IGZyb20gXCIuL3NyYy9iYWNrZW5kc1wiO1xuICogY29uc3QgYmFja2VuZCA9IG5ldGxpZnkoe1xuICogIHN1YmRvbWFpbjogXCJleGFtcGxlXCJcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyBOZXRsaWZ5IHNpdGUgaW5mb3JtYXRpb24uIEFjY2VwdHMgc3ViZG9tYWluIGFzIGEgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV0bGlmeShvcHRpb25zOiBTdWJkb21haW5PcHRpb25zIHwgc3RyaW5nKTogUHJveHlGdW5jdGlvbjxTdWJkb21haW5PcHRpb25zPiB7XG4gIGNvbnN0IGNvbmZpZyA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgY29uc3QgbmV0bGlmeUhvc3QgPSBgJHtjb25maWcuc3ViZG9tYWlufS5uZXRsaWZ5LmFwcGAgXG4gIGNvbnN0IHVyaSA9IGBodHRwczovLyR7bmV0bGlmeUhvc3R9JHtjb25maWcuZGlyZWN0b3J5fWBcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBcImhvc3RcIjogbmV0bGlmeUhvc3QsXG4gICAgXCJ4LWZvcndhcmRlZC1ob3N0XCI6IGNvbmZpZy5ob3N0bmFtZSB8fCBmYWxzZVxuICB9XG5cbiAgY29uc3QgZm4gPSBwcm94eSh1cmksIHsgaGVhZGVyczogaGVhZGVycyB9KVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihmbiwgeyBwcm94eUNvbmZpZzogY29uZmlnfSlcbn1cblxubmV0bGlmeS5ub3JtYWxpemVPcHRpb25zID0gbm9ybWFsaXplT3B0aW9ucztcbiJdfQ==