UNPKG

@fly/cdn

Version:
32 lines 3.42 kB
/** * @module Backends */ import { proxy } from "../proxy"; import { normalizeOptions } from "./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. */ export function ghostProBlog(options) { const config = 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(uri, { headers: headers }); return Object.assign(fn, { proxyConfig: config }); } ghostProBlog.normalizeOptions = normalizeOptions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hvc3RfcHJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhY2tlbmRzL2dob3N0X3Byby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFrQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QyxNQUFNLFNBQVMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLFdBQVcsQ0FBQTtJQUNoRCxNQUFNLEdBQUcsR0FBRyxXQUFXLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDckQsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsU0FBUztRQUNqQixrQkFBa0IsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUs7S0FDN0MsQ0FBQTtJQUVELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBCYWNrZW5kc1xuICovXG5cbmltcG9ydCB7IHByb3h5LCBQcm94eUZ1bmN0aW9uIH0gZnJvbSBcIi4uL3Byb3h5XCI7XG5pbXBvcnQgeyBTdWJkb21haW5PcHRpb25zLCBub3JtYWxpemVPcHRpb25zIH0gZnJvbSBcIi4vc3ViZG9tYWluX3NlcnZpY2VcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYGZldGNoYCBsaWtlIGZ1bmN0aW9uIGZvciBwcm94eWluZyByZXF1ZXN0cyB0byBob3N0ZWQgR2hvc3QgUHJvIGJsb2dzLlxuICogXG4gKiBFeGFtcGxlOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgZ2hvc3QgfSBmcm9tIFwiLi9zcmMvYmFja2VuZHNcIjtcbiAqIGNvbnN0IGJhY2tlbmQgPSBnaG9zdCh7XG4gKiAgc3ViZG9tYWluOiBcImZseS1pb1wiLFxuICogIGRpcmVjdG9yeTogXCIvYXJ0aWNsZXMvXCIsXG4gKiAgaG9zdG5hbWU6IFwiZmx5LmlvXCJcbiAqIH0pO1xuICogYGBgXG4gKiBAcGFyYW0gb3B0aW9ucyBHaG9zdCBQcm8gYmxvZyBpbmZvcm1hdGlvbi4gQWNjZXB0cyBzdWJkb21haW4gYXMgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnaG9zdFByb0Jsb2cob3B0aW9uczogU3ViZG9tYWluT3B0aW9ucyB8IHN0cmluZyk6IFByb3h5RnVuY3Rpb248U3ViZG9tYWluT3B0aW9ucz4ge1xuICBjb25zdCBjb25maWcgPSBub3JtYWxpemVPcHRpb25zKG9wdGlvbnMpO1xuXG4gIGNvbnN0IGdob3N0SG9zdCA9IGAke2NvbmZpZy5zdWJkb21haW59Lmdob3N0LmlvYFxuICBjb25zdCB1cmkgPSBgaHR0cHM6Ly8ke2dob3N0SG9zdH0ke2NvbmZpZy5kaXJlY3Rvcnl9YFxuICBjb25zdCBoZWFkZXJzID0ge1xuICAgIFwiaG9zdFwiOiBnaG9zdEhvc3QsXG4gICAgXCJ4LWZvcndhcmRlZC1ob3N0XCI6IGNvbmZpZy5ob3N0bmFtZSB8fCBmYWxzZVxuICB9XG5cbiAgY29uc3QgZm4gPSBwcm94eSh1cmksIHsgaGVhZGVyczogaGVhZGVycyB9KVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihmbiwgeyBwcm94eUNvbmZpZzogY29uZmlnfSlcbn1cblxuZ2hvc3RQcm9CbG9nLm5vcm1hbGl6ZU9wdGlvbnMgPSBub3JtYWxpemVPcHRpb25zO1xuIl19