From 3131b51997bfe48bbea527963ed2cb1bb859eb71 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Sun, 21 Jun 2020 22:41:33 +0300 Subject: [PATCH] feat: allow more than two policy keys in getGrantedPolicy --- .../packages/core/src/lib/states/config.state.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/states/config.state.ts b/npm/ng-packs/packages/core/src/lib/states/config.state.ts index d9b738b2aa..9d37dfe2f9 100644 --- a/npm/ng-packs/packages/core/src/lib/states/config.state.ts +++ b/npm/ng-packs/packages/core/src/lib/states/config.state.ts @@ -98,18 +98,19 @@ export class ConfigState { const orRegexp = /\|\|/g; const andRegexp = /&&/g; + // TODO: Allow combination of ANDs & ORs if (orRegexp.test(key)) { - const keys = key.split('||').filter(k => !!k); + const keys = key.split('||').filter(Boolean); - if (keys.length !== 2) return false; + if (keys.length < 2) return false; - return getPolicy(keys[0].trim()) || getPolicy(keys[1].trim()); + return keys.some(key => getPolicy(key.trim())); } else if (andRegexp.test(key)) { - const keys = key.split('&&').filter(k => !!k); + const keys = key.split('&&').filter(Boolean); - if (keys.length !== 2) return false; + if (keys.length < 2) return false; - return getPolicy(keys[0].trim()) && getPolicy(keys[1].trim()); + return keys.every(key => getPolicy(key.trim())); } return getPolicy(key);