summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/security_configuration/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/security_configuration/utils.js')
-rw-r--r--app/assets/javascripts/security_configuration/utils.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/assets/javascripts/security_configuration/utils.js b/app/assets/javascripts/security_configuration/utils.js
new file mode 100644
index 00000000000..071ebff4f21
--- /dev/null
+++ b/app/assets/javascripts/security_configuration/utils.js
@@ -0,0 +1,24 @@
+export const augmentFeatures = (securityFeatures, complianceFeatures, features = []) => {
+ const featuresByType = features.reduce((acc, feature) => {
+ acc[feature.type] = feature;
+ return acc;
+ }, {});
+
+ const augmentFeature = (feature) => {
+ const augmented = {
+ ...feature,
+ ...featuresByType[feature.type],
+ };
+
+ if (augmented.secondary) {
+ augmented.secondary = { ...augmented.secondary, ...featuresByType[feature.secondary.type] };
+ }
+
+ return augmented;
+ };
+
+ return {
+ augmentedSecurityFeatures: securityFeatures.map((feature) => augmentFeature(feature)),
+ augmentedComplianceFeatures: complianceFeatures.map((feature) => augmentFeature(feature)),
+ };
+};