firebase-tools
Version:
Command-Line Interface for Firebase
29 lines (28 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensureDataConnectTriggerRegion = ensureDataConnectTriggerRegion;
exports.getDataConnectP4SA = getDataConnectP4SA;
const api_1 = require("../../../api");
const error_1 = require("../../../error");
const AUTOPUSH_DATACONNECT_SA_DOMAIN = "gcp-sa-autopush-dataconnect.iam.gserviceaccount.com";
const STAGING_DATACONNECT_SA_DOMAIN = "gcp-sa-staging-dataconnect.iam.gserviceaccount.com";
const PROD_DATACONNECT_SA_DOMAIN = "gcp-sa-firebasedataconnect.iam.gserviceaccount.com";
function ensureDataConnectTriggerRegion(endpoint) {
if (!endpoint.eventTrigger.region) {
endpoint.eventTrigger.region = endpoint.region;
}
if (endpoint.eventTrigger.region !== endpoint.region) {
throw new error_1.FirebaseError("The Firebase Data Connect trigger location must match the function region.");
}
return Promise.resolve();
}
function getDataConnectP4SA(projectNumber) {
const origin = (0, api_1.dataconnectOrigin)();
if (origin.includes("autopush")) {
return `service-${projectNumber}@${AUTOPUSH_DATACONNECT_SA_DOMAIN}`;
}
if (origin.includes("staging")) {
return `service-${projectNumber}@${STAGING_DATACONNECT_SA_DOMAIN}`;
}
return `service-${projectNumber}@${PROD_DATACONNECT_SA_DOMAIN}`;
}