123456789101112131415161718192021222324252627282930313233343536373839404142 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.functionsProxy = void 0;
- const lodash_1 = require("lodash");
- const proxy_1 = require("./proxy");
- const projectUtils_1 = require("../projectUtils");
- const registry_1 = require("../emulator/registry");
- const types_1 = require("../emulator/types");
- const functionsEmulator_1 = require("../emulator/functionsEmulator");
- const error_1 = require("../error");
- function functionsProxy(options) {
- return (rewrite) => {
- return new Promise((resolve) => {
- const projectId = (0, projectUtils_1.needProjectId)(options);
- if (!("function" in rewrite)) {
- throw new error_1.FirebaseError(`A non-function rewrite cannot be used in functionsProxy`, {
- exit: 2,
- });
- }
- let functionId;
- let region;
- if (typeof rewrite.function === "string") {
- functionId = rewrite.function;
- region = rewrite.region || "us-central1";
- }
- else {
- functionId = rewrite.function.functionId;
- region = rewrite.function.region || "us-central1";
- }
- let url = `https://${region}-${projectId}.cloudfunctions.net/${functionId}`;
- let destLabel = "live";
- if ((0, lodash_1.includes)(options.targets, "functions")) {
- destLabel = "local";
- if (registry_1.EmulatorRegistry.isRunning(types_1.Emulators.FUNCTIONS)) {
- url = functionsEmulator_1.FunctionsEmulator.getHttpFunctionUrl(projectId, functionId, region);
- }
- }
- resolve((0, proxy_1.proxyRequestHandler)(url, `${destLabel} Function ${region}/${functionId}`));
- });
- };
- }
- exports.functionsProxy = functionsProxy;
|