1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.updateRules = void 0;
- const apiv2_1 = require("./apiv2");
- const database_1 = require("./management/database");
- const error_1 = require("./error");
- const api_1 = require("./database/api");
- const utils = require("./utils");
- async function updateRules(projectId, instance, src, options = {}) {
- const queryParams = {};
- if (options.dryRun) {
- queryParams.dryRun = "true";
- }
- const downstreamOptions = { instance: instance, project: projectId };
- await (0, database_1.populateInstanceDetails)(downstreamOptions);
- if (!downstreamOptions.instanceDetails) {
- throw new error_1.FirebaseError(`Could not get instance details`, { exit: 2 });
- }
- const origin = utils.getDatabaseUrl((0, api_1.realtimeOriginOrCustomUrl)(downstreamOptions.instanceDetails.databaseUrl), instance, "");
- const client = new apiv2_1.Client({ urlPrefix: origin });
- const response = await client.request({
- method: "PUT",
- path: ".settings/rules.json",
- queryParams,
- body: src,
- resolveOnHTTPError: true,
- });
- if (response.status === 400) {
- throw new error_1.FirebaseError(`Syntax error in database rules:\n\n${response.body.error}`);
- }
- else if (response.status > 400) {
- throw new error_1.FirebaseError("Unexpected error while deploying database rules.", { exit: 2 });
- }
- }
- exports.updateRules = updateRules;
|