diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-11-18 20:41:08 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-11-18 20:41:08 -0400 |
commit | 5bc43a8bc8132a9d2cfa57937aa46fda56b663e5 (patch) | |
tree | 95f770dfa3c3bb5ed7e2abc30663b275da2973ff /src/data/yaml.js | |
parent | f481591b859282e1ea5483c89552375f5570e9e5 (diff) | |
parent | e35d23f4e9492b497138dce3f21382872e329e71 (diff) |
Merge branch 'commentary-entries' into album-commentary-tweaks
Diffstat (limited to 'src/data/yaml.js')
-rw-r--r-- | src/data/yaml.js | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js index 843e70b3..0734d539 100644 --- a/src/data/yaml.js +++ b/src/data/yaml.js @@ -21,6 +21,7 @@ import { decorateErrorWithIndex, decorateErrorWithAnnotation, empty, + filterAggregate, filterProperties, openAggregate, showAggregate, @@ -1686,8 +1687,10 @@ export function filterReferenceErrors(wikiData) { if (value) { value = Array.from(value.matchAll(commentaryRegex)) - .map(({groups}) => groups.artistReference); + .map(({groups}) => groups.artistReferences) + .map(text => text.split(',').map(text => text.trim())); } + writeProperty = false; break; } @@ -1804,11 +1807,22 @@ export function filterReferenceErrors(wikiData) { let newPropertyValue = value; - if (Array.isArray(value)) { + if (findFnKey === '_commentary') { + // Commentary doesn't write a property value, so no need to set. + filter( + value, {message: errorMessage}, + decorateErrorWithIndex(refs => + (refs.length === 1 + ? suppress(findFn)(refs[0]) + : filterAggregate( + refs, {message: `Errors in entry's artist references`}, + decorateErrorWithIndex(suppress(findFn))) + .aggregate + .close()))); + } else if (Array.isArray(value)) { newPropertyValue = filter( - value, - decorateErrorWithIndex(suppress(findFn)), - {message: errorMessage}); + value, {message: errorMessage}, + decorateErrorWithIndex(suppress(findFn))); } else { nest({message: errorMessage}, suppress(({call}) => { |