UNPKG

@kurbar/access-control

Version:

Role, Attribute and Condition based Access Control for Node.js

40 lines (39 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotCondition = void 0; var common_1 = require("./../utils/common"); var index_1 = require("./index"); var core_1 = require("../core"); var utils_1 = require("../utils/"); /** * Not condition * * @author Dilip Kola <dilip@tensult.com> */ var NotCondition = /** @class */ (function () { function NotCondition() { } NotCondition.prototype.evaluate = function (args, context) { if (!args) { return true; } if (!context) { return false; } if (common_1.CommonUtil.type(args) !== 'array' && common_1.CommonUtil.type(args) !== 'object') { throw new core_1.AccessControlError('NotCondition expects type of args to be array or object'); } var conditions = utils_1.ArrayUtil.toArray(args); var conditionEvaluations = conditions.map(function (condition) { return index_1.ConditionUtil.evaluate(condition, context); }); if (common_1.CommonUtil.containsPromises(conditionEvaluations)) { return Promise.all(conditionEvaluations).then(common_1.CommonUtil.allFalse); } else { return common_1.CommonUtil.allFalse(conditionEvaluations); } }; return NotCondition; }()); exports.NotCondition = NotCondition;