Lerna with eslint & esbuild drives two npm packages:
graphistry-client: rxjs-based vanilla reactive JS API with minimal dependenciesgraphistry-client-react: React wrapper aroundgraphistry-client
We strive to keep the libraries compatible across RxJS and React versions:
graphistry-client: Bundles its own tree-shakenrxjsversion, and it is unpinned so you can also reuse in your own packages. Noreactdependency. For convenience, we reexport a minimal useful set ofrxjsmethods.graphistry-client-react: Depends ongraphistry-client, including for any use ofrxjs. Version ofreactis unpinned.
Builds are containerized, including for local dev, and automated via github actions
Docs are automated via JSDocs (graphistry-client) and Storybook (graphistry-client + graphistry-client-react)
They auto-publish to graphistry.github.io/graphistry-js as branch #docs
Both libraries bundle into multiple formats (esm, cjs, iife), optional minification, and optional externing (rxjs+react) as part of the npm publish
Every Graphistry enterprise release hosts the coordinated JS library versions
The docs run in multiple locations: