« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/yaml.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js
index f8591311..0c1e76bc 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -229,7 +229,7 @@ function makeProcessDocument(thingConstructor, {
 
     const fieldCombinationErrors = [];
 
-    for (const {message, fields: fieldsSpec} of invalidFieldCombinations) {
+    for (const {message, fields: fieldsSpec, drop} of invalidFieldCombinations) {
       const fieldsPresent =
         fieldsSpec.flatMap(fieldSpec => {
           if (Array.isArray(fieldSpec)) {
@@ -259,7 +259,12 @@ function makeProcessDocument(thingConstructor, {
             fieldsSpec,
             message));
 
-        for (const field of Object.keys(filteredDocument)) {
+        const dropFields =
+          (drop
+            ? Object.keys(filteredDocument).filter(key => drop.includes(key))
+            : Object.keys(filteredDocument));
+
+        for (const field of dropFields) {
           skippedFields.add(field);
         }
       }