This PR extracts much of the actual docmaps-composition logic into a processor.ts file and treats the plugin API as purely a source of info about zero or more documents/steps/atoms of a docmap. This lets plugins other than crossref abide by the same API contract and still provide legitimate docmaps; but more importantly it lets the graphy algorithm operate independent of its plugin, so that code can be iterated on.
Related Issues
This is the first of several PRs that will all contribute to #84. Since that issue will take longer to address, and the Widget/API work are higher priority right now, I will aim to merge this separately and create a new branch with later graph state.
Checklist
[x] I have tested these changes locally and they work as expected.
[x] I have added or updated tests to cover any new functionality or bug fixes.
[x] I have updated the documentation to reflect any changes or additions to the project.
Provide any additional information that might be helpful in understanding this pull request, such as screenshots, links to relevant research, or other context.
Description
This PR extracts much of the actual docmaps-composition logic into a
processor.ts
file and treats the plugin API as purely a source of info about zero or more documents/steps/atoms of a docmap. This lets plugins other than crossref abide by the same API contract and still provide legitimate docmaps; but more importantly it lets the graphy algorithm operate independent of its plugin, so that code can be iterated on.Related Issues
This is the first of several PRs that will all contribute to #84. Since that issue will take longer to address, and the Widget/API work are higher priority right now, I will aim to merge this separately and create a new branch with later graph state.
Checklist
Additional Information
Provide any additional information that might be helpful in understanding this pull request, such as screenshots, links to relevant research, or other context.