feat(extraField)!: support duplicate keys, unify parser option, move save to options, avoid empty __nonStandard__#96
Merged
Conversation
…, dont add `__nonStandard__` if not have
… original `custom` now is `default`
save to options, avoid empty __nonStandard__save to options, avoid empty __nonStandard__
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✅ Changes
Support multiple values for the same key
getExtraFields(item, "custom")now returnsMap<string, string[]>to allow multiple identical keys (e.g. multipleoriginal-authorentries).getExtraFields(item, "default")overload remains compatible with Zotero's api and returnsMap<string, string>.Move save to options: Both
setExtraFieldandreplaceExtraFieldsnow use anoptionsobject instead of a standalonesaveargument (introduced in feat(extra-field-tool): allow disable save #95) for cleaner and extensible API design.Parser option:
parser: "enhanced" | "classical"replaces the previous backend parameter.enhanced: enhanced custom parser (multi-value support), originalcustomclassical: Zotero built-in parser (single value per key), originaldefaultFixed
__nonStandard__handling__nonStandard__: [""]when no non-standard lines exist in theextrafield.💥 BREAKING CHANGES
getExtraFields(item, "custom")now returnsMap<string, string[]>instead ofMap<string, string>. Code that previously expected a string value must now handle arrays.saveargument insetExtraFieldandreplaceExtraFieldshas been replaced by anoptionsobject ({ save?: boolean }).