GSI - Employe Self Service Mobile
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

54 lines
1.9 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepare = void 0;
const clc = require("colorette");
const path = require("path");
const error_1 = require("../../error");
const parseBoltRules_1 = require("../../parseBoltRules");
const rtdb = require("../../rtdb");
const utils = require("../../utils");
const dbRulesConfig = require("../../database/rulesConfig");
function prepare(context, options) {
const rulesConfig = dbRulesConfig.getRulesConfig(context.projectId, options);
const next = Promise.resolve();
if (!rulesConfig || rulesConfig.length === 0) {
return next;
}
const ruleFiles = {};
const deploys = [];
rulesConfig.forEach((ruleConfig) => {
if (!ruleConfig.rules) {
return;
}
ruleFiles[ruleConfig.rules] = null;
deploys.push(ruleConfig);
});
for (const file of Object.keys(ruleFiles)) {
switch (path.extname(file)) {
case ".json":
ruleFiles[file] = options.config.readProjectFile(file);
break;
case ".bolt":
ruleFiles[file] = (0, parseBoltRules_1.parseBoltRules)(file);
break;
default:
throw new error_1.FirebaseError("Unexpected rules format " + path.extname(file));
}
}
context.database = {
deploys: deploys,
ruleFiles: ruleFiles,
};
utils.logBullet(clc.bold(clc.cyan("database: ")) + "checking rules syntax...");
return Promise.all(deploys.map((deploy) => {
return rtdb
.updateRules(context.projectId, deploy.instance, ruleFiles[deploy.rules], { dryRun: true })
.then(() => {
utils.logSuccess(clc.bold(clc.green("database: ")) +
"rules syntax for database " +
clc.bold(deploy.instance) +
" is valid");
});
}));
}
exports.prepare = prepare;