graph-app-kit
v1.0.6
Published
Build Neo4j Graph Apps using components and utilities from this graph app kit.
Downloads
345
Readme
Graph App Kit
Build Neo4j Graph Apps using components and utilities from this graph app kit.
Browse source code and read README:s in sub directories for examples and docs.
Check out the interactive playground for a demo of the components.
What's in here
| Component | Description |
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <AsciiTable> | Render your data in an text/ascii table with fixed width font. |
| <Chart> | Render your data in a chart visualization. |
| <Cypher> | A simple component to execute a Cypher query and return the result to your render function. | |
| <CypherEditor> | A cypher editor component with code highlighting and autocomplete functionality. |
| <DesktopIntegration> | Easy integration for your app into the Neo4j Desktop API. Subscribe to events etc. |
| <DriverProvider> | Provide your React application with a neo4j-driver in application context. |
| <GraphAppBase> | A base component for apps to reduce the amount of boilerplate code for connection handling. Integrates the app with the Neo4j Desktop API and provides the application with a neo4j-driver in application context. |
| <Render> | A declarative toggling component to mount / unmount child components under certain conditions. |
Install and import
npm install graph-app-kit --registry https://neo.jfrog.io/neo/api/npm/npm
// or
yarn add graph-app-kit --registry https://neo.jfrog.io/neo/api/npm/npmimport "semantic-ui-css/semantic.min.css";
import { Cypher } from "graph-app-kit/components/Cypher";
import { DriverProvider } from "graph-app-kit/components/DriverProvider";
import { Render } from "graph-app-kit/components/Render";
import { Chart } from "graph-app-kit/components/Chart";
import { CypherEditor } from "graph-app-kit/components/Editor";Component playground / library
There's an interactive playground to view and modify the components.
This is temporarily hosted at https://styleguide-cqfmjsxkhp.now.sh
Feedback wanted!
To use the playground when developing components: yarn playground and to
generate a static version to deploy: yarn playground:build (the artifacts end
up in styleguide/)
Development mode
git clone [email protected]:neo4j-apps/graph-app-kit.git graph-app-kit
cd graph-app-kit
yarn installDev environment setup
The preferred way to develop new components is to either develop it directly in
src/dev/Component or import there.
To start dev server on http://localhost:3000/ (loads src/dev/index.js in webpack):
yarn start
To have continous testing (add tests to src/dev/Component.test.js): yarn dev
Exposing components
Here's a checklist for things to be done before opening a PR with a new component:
- Restore
src/devto it's initial state. - Name the component file
ComponentName.jsand the test fileComponentName.test.js. - Export the component as a named export + a default export. Named for the kit users and default for placing it in the playground.
- Add an
index.jsin the components directory, which just exports the named import. i.e.export { ComponentName } from './ComponentName'. - Execute
yarn testand make sure the test coverage for the component is reasonable. - Add a
README.mdin the components directory where you showcase one (or more) example usages and instructions of the component. - Execute
yarn playgroundto see it in action. Make sure it looks good and makes sense. - Add an import test for the component in
test_package/react/package.test.jsANDtest_package/preact/preact.test.js. Executeyarn test:packageand watch it fail. - Add the component to the file
conf/kit_exports.js. Follow the named / path convention. - Execute
yarn test:packageagain and watch it pass. - Open a PR and wait for praise.
Linting
yarn lintTesting
Single run:
yarn test
// or for including production bundle tests
yarn test:allContinous testing (watch mode):
yarn dev