firebase-rules-parser
Version:
Parser for Firebase rule files
36 lines • 2.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class FirestoreRulesClosure {
constructor(parent) {
this.parent = parent;
this.path = '';
this.addValues = (obj) => {
this.self = Object.assign({}, this.self, obj);
};
this.getValue = (fieldName) => {
let closure = this;
do {
const obj = closure.self[fieldName];
if (obj !== undefined) {
return obj;
}
closure = closure.parent;
} while (closure);
return undefined;
};
this.open = () => {
return new FirestoreRulesClosure(this);
};
this.close = () => {
if (!this.parent) {
throw new Error('Can not close closure on global level');
}
};
this.self = {};
}
getPath() {
return this.parent ? this.parent.getPath() + this.path : this.path;
}
}
exports.FirestoreRulesClosure = FirestoreRulesClosure;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlyZXN0b3JlUnVsZUNsb3N1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXByZXRlci9GaXJlc3RvcmVSdWxlQ2xvc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQWEscUJBQXFCO0lBS2hDLFlBQW1CLE1BQThCO1FBQTlCLFdBQU0sR0FBTixNQUFNLENBQXdCO1FBRjFDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFVbEIsY0FBUyxHQUFHLENBQUMsR0FBNEIsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxJQUFJLHFCQUFRLElBQUksQ0FBQyxJQUFJLEVBQUssR0FBRyxDQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFBO1FBRU0sYUFBUSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO1lBQ3RDLElBQUksT0FBTyxHQUFzQyxJQUFJLENBQUM7WUFDdEQsR0FBRztnQkFDRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7b0JBQ3JCLE9BQU8sR0FBRyxDQUFDO2lCQUNaO2dCQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO2FBQzFCLFFBQVEsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQTtRQUVNLFNBQUksR0FBRyxHQUFHLEVBQUU7WUFDakIsT0FBTyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQTtRQUVNLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQzthQUMxRDtRQUNILENBQUMsQ0FBQTtRQS9CQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JFLENBQUM7Q0EyQkY7QUF0Q0Qsc0RBc0NDIn0=