node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »

san-escobar

dynamic code analysis with pretty visualisation

It allows for spying JS object (via ES6 Proxies) and intercepts what is happening in given object (e.g. function calls). It output traces to the standard output in nice HTML format.

It was written as a proof of concept, but if you're interested (and have some feature request) you can create an issue here: https://github.com/hex13/enter-ghost/issues/new

screenshot

Usage:

It works best when calling from NodeJS.

Just redirect process output to *.html file:

node example.js > output.html

and open it in a browser as interactive visualisation:

code example:

const SE = require('san-escobar');
const { log, spy } = SE(SE.htmlLogger);
 
// first create some objects to log... 
 
const pizza = {
    eat() {},
    bake() {},
    buy() {},
    name: "Super Pizza",
    id: 120,
    specification: {
        tomatos: true,
        strawberries: false,
        cheese: true,
        oregano: true,
    },
    price: 4.3,
    url: 'https://example.com/pizza/id=120',
};
pizza.specification.pizza = pizza;
const moon = {
    craters: {
        amount: 'many',
    },
    water: null,
};
 
// then... 
 
log('This is Pizza', pizza); // it's like console.log but outputs in different way (e.g. in HTML format) 
 
log('This is Moon', moon);
 
// create spy 
const proxied = spy({
    fact(n) {
        if (== 1) return n;
        return n * this.fact(- 1);
    }
});
 
proxied.fact(7);