UNPKG

@fly/edge

Version:
34 lines 3.45 kB
"use strict"; /** * @module Backends */ Object.defineProperty(exports, "__esModule", { value: true }); exports.firebase = void 0; const proxy_1 = require("../proxy"); const subdomain_service_1 = require("./subdomain_service"); /** * Creates a `fetch` like function for proxying requests to hosted Firebase sites. * * Example: * ```typescript * import { firebase } from "./src/backends"; * const backend = firebase({ * subdomain: "multi-site-magic" * }); * ``` * @param options Firebase site information. Accepts subdomain as a string. */ function firebase(options) { const config = subdomain_service_1.normalizeOptions(options); const firebaseHost = `${config.subdomain}.firebaseapp.com`; const uri = `https://${firebaseHost}${config.directory}`; const headers = { "host": firebaseHost, "x-forwarded-host": config.hostname || false }; const fn = proxy_1.proxy(uri, { headers: headers }); return Object.assign(fn, { proxyConfig: config }); } exports.firebase = firebase; firebase.normalizeOptions = subdomain_service_1.normalizeOptions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZHMvZmlyZWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCxvQ0FBZ0Q7QUFDaEQsMkRBQXlFO0FBRXpFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLE9BQWtDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLG9DQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE1BQU0sWUFBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsa0JBQWtCLENBQUE7SUFDMUQsTUFBTSxHQUFHLEdBQUcsV0FBVyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ3hELE1BQU0sT0FBTyxHQUFHO1FBQ2QsTUFBTSxFQUFFLFlBQVk7UUFDcEIsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLO0tBQzdDLENBQUE7SUFFRCxNQUFNLEVBQUUsR0FBRyxhQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDM0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBQ2xELENBQUM7QUFaRCw0QkFZQztBQUVELFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxvQ0FBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBCYWNrZW5kc1xuICovXG5cbmltcG9ydCB7IHByb3h5LCBQcm94eUZ1bmN0aW9uIH0gZnJvbSBcIi4uL3Byb3h5XCI7XG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25zLCBTdWJkb21haW5PcHRpb25zIH0gZnJvbSBcIi4vc3ViZG9tYWluX3NlcnZpY2VcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYGZldGNoYCBsaWtlIGZ1bmN0aW9uIGZvciBwcm94eWluZyByZXF1ZXN0cyB0byBob3N0ZWQgRmlyZWJhc2Ugc2l0ZXMuXG4gKiBcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBmaXJlYmFzZSB9IGZyb20gXCIuL3NyYy9iYWNrZW5kc1wiO1xuICogY29uc3QgYmFja2VuZCA9IGZpcmViYXNlKHtcbiAqICBzdWJkb21haW46IFwibXVsdGktc2l0ZS1tYWdpY1wiXG4gKiB9KTtcbiAqIGBgYFxuICogQHBhcmFtIG9wdGlvbnMgRmlyZWJhc2Ugc2l0ZSBpbmZvcm1hdGlvbi4gQWNjZXB0cyBzdWJkb21haW4gYXMgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZShvcHRpb25zOiBTdWJkb21haW5PcHRpb25zIHwgc3RyaW5nKTogUHJveHlGdW5jdGlvbjxTdWJkb21haW5PcHRpb25zPiB7XG4gIGNvbnN0IGNvbmZpZyA9IG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgY29uc3QgZmlyZWJhc2VIb3N0ID0gYCR7Y29uZmlnLnN1YmRvbWFpbn0uZmlyZWJhc2VhcHAuY29tYCBcbiAgY29uc3QgdXJpID0gYGh0dHBzOi8vJHtmaXJlYmFzZUhvc3R9JHtjb25maWcuZGlyZWN0b3J5fWBcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICBcImhvc3RcIjogZmlyZWJhc2VIb3N0LFxuICAgIFwieC1mb3J3YXJkZWQtaG9zdFwiOiBjb25maWcuaG9zdG5hbWUgfHwgZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGZuID0gcHJveHkodXJpLCB7IGhlYWRlcnM6IGhlYWRlcnMgfSlcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZm4sIHsgcHJveHlDb25maWc6IGNvbmZpZ30pXG59XG5cbmZpcmViYXNlLm5vcm1hbGl6ZU9wdGlvbnMgPSBub3JtYWxpemVPcHRpb25zO1xuIl19