Extend type system to customize graph visualization solutions #847
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.
What was a problem
The problem this PR aims to solve is the inability to extend the type definitions of ts-graphviz library to meet specific needs for customizing graph visualization solutions.
How this PR fixes the problem
The TypeScript interface is extensible from the user space, and we took advantage of this property to develop user-extensible interfaces and rules.
This PR extends the type system of ts-graphviz library to allow for customization of graph visualization solutions based on specific needs. It introduces a way to define custom layouts and output formats, as well as the ability to add custom attributes to graphs.
The new functionality involves declaring and implementing interfaces in the Layout, Format, GraphAttributeKey, and Attribute and more namespaces of the ts-graphviz package.
Users can extend these interfaces with their own custom types and values to suit their specific requirements.