UNPKG

firebase-rules-parser

Version:
36 lines 2.54 kB
"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=