Socket
Book a DemoInstallSign in
Socket

@asyncapi/edavisualiser

Package Overview
Dependencies
Maintainers
3
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@asyncapi/edavisualiser

A React flow library for visualizing event driven architectures.

latest
Source
npmnpm
Version
1.2.0
Version published
Weekly downloads
5
25%
Maintainers
3
Weekly downloads
 
Created
Source

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Maintenance score Npm latest version License last commit Playground All Contributors

https://user-images.githubusercontent.com/13396189/169362612-0b6129b6-09b6-4807-aff9-8b545bcbc5dc.mp4

EDAVisualiser

EDAVisualiser is a visualization library to show various views revolving around your application. An Application is seen as something that communicates with others through incoming and outgoing "connections". This is what makes up the foundation for the views.

It is written in React, however, it also supports the most used frameworks such as Vue and Angular, check out the examples for concrete code examples.

Installation

Run this command to install the visualizer in your project:

npm install @asyncapi/edavisualiser

Inputs

The library uses a domain-driven approach, meaning we don't assume one or the other input but build on top of a domain model that is specific to this problem we are trying to solve.

InputExampleDescription
AsyncAPIPreview, codeAllows you to reuse pre-parsed AsyncAPI documents from the official AsyncAPI parser, underneath it splits up the AsyncAPI document into the core building blocks. AsyncAPI v2.0 -> v2.5 is supported.
Core building blocksPreview, codeThe core building blocks is the domain abstraction for inputs this is what any other input type is converted to.

Views

A view could for example be how a "system" of applications is related, how a single application relates to others, only the fantasy sets the limitations, and feel free to propose new ideas!

ApplicationFocusView

Puts a single application in focus as part of a larger system. Used to figure out who is "connected" to the application.

Configurations

These are all the arguments you can use to configure the view.

ArgumentsDescriptionValue typeDefault
applicationThe core building block for setting the application information.ApplicationNodeData | undefinedundefined
incomingOperationsThe core building block for setting incoming operations for the application.Array<IncomingNodeData> | undefinedundefined
outgoingOperationsThe core building block for setting incoming operations for the application.Array<OutgoingNodeData> | undefinedundefined
externalThis is the main difference from the ApplicationView as it shows how external applications interact with it.Array<ApplicationViewData> | undefinedundefined
asyncapiIf the application is to be loaded from a pre-parsed AsyncAPI document, which can extend the node with a custom react component in the top of the node. I.e., if you want to render a button or whatever it can be.AsyncapiApplicationData | undefinedundefined
layoutUsed to customize the layout of nodes by setting their position.(elements: FlowElement[]) => React.JSXElementConstructor<LayoutProps> | undefinedA column layout (ColumnLayout)
sideMenuUsed to create a custom menu, or whatever you wish to display within the view on top of the nodes.() => React.JSXElementConstructor<any> | undefinedSimple headline with the library name
includeControlsInclude controls to zoom in and out, focus and lock nodes.boolean | undefinedfalse 
edgeTypeDetermine the type of edge between nodes.Either 'smoothstep', 'step', 'straight', 'floating', 'default', 'simplebezier', 'animated'smoothstep 

ApplicationView

Puts a single application in focus with only it's near connections that are incoming to the application or outgoing from it.

Configurations

These are all the arguments you can use to configure the view.

ArgumentsDescriptionValue typeDefault
applicationThe core building block for setting the application information.ApplicationNodeData | undefinedundefined
incomingOperationsThe core building block for setting incoming operations for the application.Array<IncomingNodeData> | undefinedundefined
outgoingOperationsThe core building block for setting incoming operations for the application.Array<OutgoingNodeData> | undefinedundefined
asyncapiIf the application is to be loaded from a pre-parsed AsyncAPI document, which can extend the node with a custom react component in the top of the node. I.e., if you want to render a button or whatever it can be.AsyncapiApplicationData | undefinedundefined
layoutUsed to customize the layout of nodes by setting their position.(elements: FlowElement[]) => React.JSXElementConstructor<LayoutProps> | undefinedA column layout (ColumnLayout)
sideMenuUsed to create a custom menu, or whatever you wish to display within the view on top of the nodes.() => React.JSXElementConstructor<any> | undefinedSimple headline with the library name
includeControlsInclude controls to zoom in and out, focus and lock nodes.boolean | undefinedfalse 
edgeTypeDetermine the type of edge between nodes.Either 'smoothstep', 'step', 'straight', 'floating', 'default', 'simplebezier', 'animated'smoothstep 

SystemView

Puts the system/collection of applications in focus to figure out how they are all connected.

Configurations

These are all the arguments you can use to configure the view.

ArgumentsDescriptionValue typeDefault
applicationsA list of all the applications within your "system".Array<ApplicationViewData> | undefinedundefined
layoutUsed to customize the layout of nodes by setting their position.(elements: FlowElement[]) => React.JSXElementConstructor<LayoutProps> | undefinedA circle layout (CircleLayout)
sideMenuUsed to create a custom menu, or whatever you wish to display within the view on top of the nodes.() => React.JSXElementConstructor<any> | undefinedSimple headline with the library name
includeControlsInclude controls to zoom in and out, focus and lock nodes.boolean | undefinedfalse 
edgeTypeDetermine the type of edge between nodes.Either 'smoothstep', 'step', 'straight', 'floating', 'default', 'simplebezier', 'animated'smoothstep 

Showcases

These are the use-cases and where this library is used that you can use as inspiration.

Feel free to add your own projects that are using this library and why.

Contributors ✨

Thanks go to these wonderful people (emoji key):


Jonas Lagoni

💻 🤔 🚧 📖 💡

Maciej Urbańczyk

💻 🤔 🚧

David Boyne

💻 🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

Special thanks to @magicmatatjahu for the react setup that allows the library to be offered to all frontend frameworks, and to @boyney123 for the initial visualization code that first appeared in the AsyncAPI studio.

FAQs

Package last updated on 15 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts