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