All Projects → Front-Street → Helios

Front-Street / Helios

Licence: other
A Chrome Dev Tool for tracking state in Apollo and Vue.js.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Helios

Artemis Dev Tool
An Apollo GraphQL Query Schema Testing Tool
Stars: ✭ 66 (+200%)
Mutual labels:  chrome-devtools, apollo-client
useful-forks.github.io
Improving GitHub's Forks list discoverability through automatic filtering. The project offers an online tool and a Chrome extension.
Stars: ✭ 917 (+4068.18%)
Mutual labels:  chrome-devtools
React Rewind
Time Travel Debugger for React useReducer
Stars: ✭ 159 (+622.73%)
Mutual labels:  chrome-devtools
nextjs-graphql-auth
Authentication system using NextJS, GraphQL, Apollo Client, Apollo Server, MongoDB, Nginx, Docker, Docker-Compose and Kubernetes
Stars: ✭ 27 (+22.73%)
Mutual labels:  apollo-client
Devtools Playground
Standalone Devtools for prototyping & debugging
Stars: ✭ 190 (+763.64%)
Mutual labels:  chrome-devtools
2019-15
Catch My Mind - 웹으로 즐길 수 있는 캐치마인드
Stars: ✭ 19 (-13.64%)
Mutual labels:  apollo-client
Css Used Chromeext
Get all css rules used by the selected DOM and its children.
Stars: ✭ 146 (+563.64%)
Mutual labels:  chrome-devtools
nap
[Deprecated] NextJS + Apollo + PassportJS
Stars: ✭ 52 (+136.36%)
Mutual labels:  apollo-client
GitHunt-Polymer
An example of a client-side app built with Polymer and Apollo Client.
Stars: ✭ 13 (-40.91%)
Mutual labels:  apollo-client
ctrip-apollo
The most delightful and handy Node.js client for ctrip apollo configuration service.
Stars: ✭ 56 (+154.55%)
Mutual labels:  apollo-client
gatsby-starter-redux-saas
An Gatsby starter for Saas products. Uses redux and apollo and a graphql token auth backend.
Stars: ✭ 18 (-18.18%)
Mutual labels:  apollo-client
Remotedebug Ios Webkit Adapter
Debug Safari and WebViews on iOS from tools like VS Code and Chrome DevTools
Stars: ✭ 2,563 (+11550%)
Mutual labels:  chrome-devtools
datahub
Datahub v2
Stars: ✭ 16 (-27.27%)
Mutual labels:  apollo-client
Nim
Streamline Your Node.js Debugging Workflow with Chromium (Chrome, Edge, More) DevTools.
Stars: ✭ 168 (+663.64%)
Mutual labels:  chrome-devtools
matters-web
Website of Matters.News, built with Next.js.
Stars: ✭ 70 (+218.18%)
Mutual labels:  apollo-client
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites
Stars: ✭ 1,853 (+8322.73%)
Mutual labels:  chrome-devtools
Mare
a Lua 5.3 debugger
Stars: ✭ 242 (+1000%)
Mutual labels:  chrome-devtools
bookshelf
My GraphQL playground
Stars: ✭ 64 (+190.91%)
Mutual labels:  apollo-client
react-native-feed
News feed built with react-native, apollo-client and graphql & powered by postgraphql
Stars: ✭ 99 (+350%)
Mutual labels:  apollo-client
boilerplate
Boilerplate for @prisma-cms
Stars: ✭ 22 (+0%)
Mutual labels:  apollo-client

Helios

A Chrome Dev Tool for tracking state in Apollo and Vue.js.

Getting Started

To use Helios install our Chrome Dev Tool. In your Vue application, bind our custom function to your component . Wrap the built-in Apollo mutate method with the custom method from our library.

After that the Chrome Dev Tool observes your application, allowing it to pass messages between the browser and Helios. Helios captures the Apollo state immediately before and immediately after the mutation and does a diff on those two objects, organizing them by mutation type, and displays the changes in the dev tool panel.

Prerequisites

Google Chrome, the Helios extension and the code below in a util file (Helios.js)

Installing

After installing the Helios extension, create a file in your project called Helios.js containing the following code:

export default function ApolloDev (configObj) {
  const prevState = JSON.parse(
    JSON.stringify(this.$apolloProvider.clients.defaultClient.cache.data.data))
  return new Promise((resolve, reject) => {
    this.$apollo.mutate(configObj).then(res => {
      const newState = this.$apolloProvider.clients.defaultClient.cache.data.data
      window.postMessage([prevState, newState], '*')
      resolve(res)
    })
  })
}

Now import Helios.js wherever you make state mutations

import ApolloDev from "../utils/Helios";

Finally, bind the function and make your state mutation.

this.ApolloDev = ApolloDev.bind(this);
      this.ApolloDev({
        mutation: CREATE_VOTE_MUTATION,
        variables: {
          userId,
          linkId
        },
        update: (store, { data: { createVote } }) => {
          this.updateStoreAfterVote(store, createVote, linkId);
        }
      });

Built With

  • deep-diff - A diffing tool for determining structural differences between objects
  • Browserify - Dependency bundler
  • Apollo-Client - A fully-featured GraphQL client

Contributing

Fork the repo and create a pull request

Authors

  • Erik Cox - Chrome Dev Tool UI and messaging
  • Stephanie Fong - Designed wrapper function for Apoll retaining original mutate functionality
  • Paul Valderama - Developed diffing function for Apollo state objects

License

This project is licensed under the MIT License

Acknowledgments

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].