UNPKG

horizon-devtools

Version:
76 lines (52 loc) 2.21 kB
# Horizon Devtools > A better dev experience for Horizon users ## Demo ![Demo](https://github.com/rrdelaney/horizon-devtools/blob/master/assets/demo.gif) ## Installation ``` npm install --save horizon-devtools ``` ## Usage ```js // Require the dependencies import React from 'react' import ReactDOM from 'react-dom' import { createDevTools } from 'horizon-devtools' import App from './App' // Create your horizon instance let horizon = Horizon() horizon.connect() // Run the `createDevTools` function on your horizon instance // This returns a `DevTools` component to render into your react app let DevTools = createDevTools(horizon) // Render your app! ReactDOM.render(<div> <DevTools /> <App /> </div>, document.getElementById('root')) ``` ## Guide The devtools will track any query you make through Horizon after the tools are initialized with `createDevTools`. If the query ends with `fetch()` the devtools will display the result of that query. If `watch()` is used 🔄 will show next to the query and be live updated with the results. `⌃ + Q` will show/hide the devtools. `⌃ + W` will change the position of the devtools. You can run custom queries using the query editor in the devtools. Type in a query into the bottom text box and press `⌃ + Enter` to run it. The horizon instance will be bound to `horizon`. If a query excludes `fetch()` or `watch()`, `fetch()` will be automatically appended. If a query excludes `subscribe()`, `subscribe()` will be automatically appended. For example, if `horizon('users')` is entered, `horizon('users').fetch().subscribe()` will be run. ## API ### `createDevTools(horizon): DevTools` Attaches instrumentation for monitoring on the horizon instance. It returns a `DevTools` component hooked up to the instrumentation that automatically updates. ### `<DevTools defaultVisible={true} defaultPosition='right' />` This renders the developer tools into the window. If `defaultVisible` is set to false, the tools will not be open at first. `defaultPosition` can be either `left`, `right`, `top`, or `bottom`. ## Contributing To run the example use `npm run dev` and go to `localhost:8181`. To build for publishing run `npm run build`.