All Projects → Raathigesh → Wiretap

Raathigesh / Wiretap

Licence: mit
🔍 A desktop app for inspecting mobx and mobx state tree apps

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wiretap

Giraffql
Interactive GraphQL exploration tool built with React - still working on the website
Stars: ✭ 176 (-11.11%)
Mutual labels:  developer-tools
Jstoolnpp
A JavaScript (JSON) tool for Notepad++ (formerly JSMinNpp) and Visual Studio Code.
Stars: ✭ 186 (-6.06%)
Mutual labels:  developer-tools
Watchexec
Executes commands in response to file modifications
Stars: ✭ 2,651 (+1238.89%)
Mutual labels:  developer-tools
Interrupt
A community for embedded software makers.
Stars: ✭ 178 (-10.1%)
Mutual labels:  developer-tools
Nake
Magic script-based C# task runner for .NET Core
Stars: ✭ 183 (-7.58%)
Mutual labels:  developer-tools
Alldemo
🍑 2020全栈学习Demo大合集 包含最新 hooks TS 等 还有umi+dva,数据可视化等实战项目 (持续更新中)
Stars: ✭ 189 (-4.55%)
Mutual labels:  mobx
Box
Develop Tool
Stars: ✭ 175 (-11.62%)
Mutual labels:  developer-tools
Fprettify
auto-formatter for modern fortran source code
Stars: ✭ 193 (-2.53%)
Mutual labels:  developer-tools
Hue Debugger Ui
💡 Graphical interface for observing and interacting directly with Hue API
Stars: ✭ 186 (-6.06%)
Mutual labels:  developer-tools
Lighthouse Security
Runs the default Google Lighthouse tests with additional security tests
Stars: ✭ 190 (-4.04%)
Mutual labels:  developer-tools
Garden
Automation for Kubernetes development and testing. Spin up production-like environments for development, testing, and CI on demand. Use the same configuration and workflows at every step of the process. Speed up your builds and test runs via shared result caching.
Stars: ✭ 2,289 (+1056.06%)
Mutual labels:  developer-tools
Txeh
Go library and CLI utilty for /etc/hosts management.
Stars: ✭ 181 (-8.59%)
Mutual labels:  developer-tools
Phantomas
Headless Chromium-based web performance metrics collector and monitoring tool
Stars: ✭ 2,191 (+1006.57%)
Mutual labels:  developer-tools
Powerline Go
A beautiful and useful low-latency prompt for your shell, written in go
Stars: ✭ 2,299 (+1061.11%)
Mutual labels:  developer-tools
Boostnote.next
Boost Note is a powerful, lightspeed collaborative workspace for developer teams. Forum (New!): https://github.com/BoostIO/BoostNote-App/discussions
Stars: ✭ 2,682 (+1254.55%)
Mutual labels:  developer-tools
Mobx React Lite
Lightweight React bindings for MobX based on React 16.8 and Hooks
Stars: ✭ 2,096 (+958.59%)
Mutual labels:  mobx
Feathers React Native Chat
A React Native example chat app using feathers
Stars: ✭ 189 (-4.55%)
Mutual labels:  mobx
Mobx Share
🔑一个分享mobx的在线演示ppt
Stars: ✭ 196 (-1.01%)
Mutual labels:  mobx
Windowsdevtools
Windows UI development tools.
Stars: ✭ 194 (-2.02%)
Mutual labels:  developer-tools
Flutter book
Flutter1.17.x book App,使用Mobx数据管理器支持Android和iOS,使用库json_serializable、json_annotation、dio。
Stars: ✭ 190 (-4.04%)
Mutual labels:  mobx
logo

Mobx Wiretap

The dev tool your mobx and mobx-state-tree app deserve

Wiretap

What's Mobx Wiretap?

Mobx wiretap is an electron app which allows you to inspect your mobx and mobx-state-tree states during development time. This makes debugging easy and fun.

Gitter chat

Features

  • Mobx
    • Live inspection of observable state
    • Update observable state
    • Listen to action logs
    • Invoke actions
  • Mobx state tree
    • Live inspection of state tree
    • View action, snapshot and patch logs
    • Apply snapshots and patches
    • Invoke actions with arguments
    • Record and replay actions

Getting started

1) Download the app

2) Install the npm module

yarn add mobx-wiretap --dev

3) Inspecting mobx observables

import { observable } from "mobx";
import { wiretap, inspect } from "mobx-wiretap";

// Provide a name as the app name.
wiretap("My awesome app");

const todos = observable([{
   text: "Watch narcos",
   completed: false
}])

// Now you are inspecting todos.
// Changes will reflect in real time in the app.
// First parameter is a required label.
inspect("Todos", todos);

4) Inspecting Mobx-state-tree observables

import { types } from "mobx-state-tree";
// Please note that you have to require from '/mst'.
import { wiretap, inspect } from "mobx-wiretap/mst";

// Provide a name as the app name.
wiretap("My awesome app");

const Todo = types.model("Todo", {
    title: types.string,
    done: false
}).actions(self => ({
    toggle() {
        self.done = !self.done
    }
}));

const todo = Todo.create({
    title: "Get coffee",
    done: false
});

// Now you are inspecting todos.
// Changes will reflect in real time in the app.
// First parameter is a required label.
inspect("Todo", todo);

Sometimes wiretap would not be able to auto-detect the actions from the mst observable you are tracking. In that case, you would be able to pass the action names as the third parameter as follows.

inspect("Todo", todo, ['addTodo']);

5) Inspecting plain object with log()

import { wiretap, log } from "mobx-wiretap";
wiretap("My awesome app");

// Call log
log("CustomObject", {
    question: "Are unicorns real?"
});

Examples

Connect to a specific port or a host

Wiretap usually listens on port 4000. If port 4000 is already occupied, wiretap would start listening on a different port. You can find the port in the sidebar.

If wiretap is listening on port other than 4000, you must provide the port when initializing. You could also provide a host.

import { wiretap } from "mobx-wiretap";
wiretap("My awesome app", {
    host: 'http://localhost',
    port: 84585
});

Mobx Wiretap Live (Experimental)

Mobx Wiretap Live is the same inspector but as a hosted app.

App: https://wiretap.debuggable.io/live/

Initialize with the peer id

All you have to do is install mobx-wiretap-remote and initialize your connection with the ID presented to you on https://wiretap.debuggable.io/live/

import { wiretap } from "mobx-wiretap-remote";
wiretap("My awesome app", {
    peerId: "<ID From https://wiretap.debuggable.io/live/>"
});

But if you are worried about sending your data to an unknown service, not to worry, your app data is NOT sent to a centralized server. Instead the app uses WebRTC - peer to peer connection and sends the data directly to the peer. So your app is a peer and the inspector tab is another peer.

FAQ

How does this differ from mobx-dev-tools?

Mobx-dev-tools is an awesome tool to inspect your react app and see how the UI reacts to state changes. Wiretap focuses more on the state itself. You would still need mobx-dev-tools to keep an eye on the react components.

The road ahead

  • Support for mobx computed properties.
  • Support for mobx-state-tree views.
  • Support for react native.

Looking for your suggestions

Let me know what you want to see in wiretap. Go right ahead and share your feedback and thoughts by creating an issue.

Contribute

  • Go into packages/app directory
  • Do yarn install
  • Run yarn dev to start the app

Inspiration

Inspired by Reactotron.

Thanks

Thanks Alex Bergin for the awesome loading animation.

License

MIT © Raathigeshan

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].