TL;DR
Should there be a single typescript library that implements common Neo4j Desktop Integrations?
I have noticed that every neo4j app out there (browser, halin, neomap, etc) has had to implement roughly the same neo4j desktop integration code. Something along the lines of..checking for and getting the context, looking for the active graph, connecting to it, subscribing to changes, etc.
If we have a quick base library, we could build framework-specific additions pretty quickly over it (react hooks and vue plugins). Ultimately, I believe the learning curve would be reduced and there would be more rapid experimentation with creating Graph Apps. With these as well as the updated docs, suggested in the PR.
There is some great information in the neo4j-apps/graph-app-starter, you can get the typescript (probably coming directly from the Neo4j Desktop Electron code base). This could be a quick way to expose the types in the @neo4j-apps/*
space, to start implementing these changes. Additionally, when the deprecation of the window.neo4jDesktopApi
api comes around, that integration layer that uses GraphQL can be upgraded much easier as well as communicated in one place.
Note: I started pursuing this path back in the Global Graph Hack, with this repo, however due to some current events at the time, I did not get further than consolidating information and created a tiny private library.