@rogowski approved of these trace changes :)

This commit is contained in:
Mark Nadal 2021-01-05 03:06:36 -08:00
parent 4221c24e84
commit 5f19570191
2 changed files with 85 additions and 40 deletions

View File

@ -8,6 +8,7 @@ html, body {
margin: 0 0;
font-family: monospace;
padding: 10px 15px;
color: white;
}
body {
background: rgba(0,0,0,0.7);
@ -35,6 +36,8 @@ body {
}*/
#diagram svg text {
fill: #79ce7f;
f-ill: black;
f-ill: red;
}
#diagram svg text:hover {
fill: #20ff3b;
@ -48,6 +51,11 @@ body {
#diagram svg .actor rect,
#diagram svg .actor path {
fill: #ffffff;
position: fixed;
top: 1em;
}
#diagram svg .actor {
opacity: 0;
}
#diagram svg .actor text {
fill: #000000;
@ -60,6 +68,14 @@ body {
stroke: rgba(0,0,0,0.5);
/* stroke-width: 5px; */
}
.method {
font-size: 140%;
display: block;
background: black;
color: white;
padding: 0.3em;
top: 5em;
}
</style>
</head>
<body>
@ -82,52 +98,78 @@ body {
<script>
;(function(){
// OVERLOAD GUN FUNCTIONS THAT WE WANT TO TRACE:
var _get = Gun.on._get;
Gun.on._get = function(a,b,c,d,e){ Gun._trace('_GET', a); _get.call(this, a,b,c,d,e) }
var get = Gun.chain.get;
Gun.chain.get = function(a,b,c,d,e){ Gun._trace('GET', a); return get.call(this, a,b,c,d,e) }
var put = Gun.chain.put;
Gun.chain.put = function(a,b,c,d,e){ Gun._trace('PUT', a); put.call(this, a,b,c,d,e) }
var _get = Gun.on._get; Gun.on._get = function(a,b,c,d,e){ Gun._trace('GET', a); _get.call(this, a,b,c,d,e) }
var _put = Gun.on.put; Gun.on.put = function(a,b,c,d,e){ Gun._trace('PUT', a); _put.call(this, a,b,c,d,e) }
var on = Gun.chain.on;
Gun.chain.on = function(a,b,c,d,e){ Gun._trace('ON', a); on.call(this, a,b,c,d,e) }
/*var get = Gun.chain.get; Gun.chain.get = function(a,b,c,d,e){ Gun._trace('.get', a); return get.call(this, a,b,c,d,e) }
var put = Gun.chain.put; Gun.chain.put = function(a,b,c,d,e){ Gun._trace('.put', a); return put.call(this, a,b,c,d,e) }
var on = Gun.chain.on; Gun.chain.on = function(a,b,c,d,e){ Gun._trace('.on', a); return on.call(this, a,b,c,d,e) }
var map = Gun.chain.map; Gun.chain.map = function(a,b,c,d,e){ Gun._trace('.map', a); return map.call(this, a,b,c,d,e) }*/
var once = Gun.chain.once; Gun.chain.once = function(a,b,c,d,e){ Gun._trace('.once', a); return once.call(this, a,b,c,d,e) }
var map = Gun.chain.map;
Gun.chain.map = function(a,b,c,d,e){ Gun._trace('MAP', a); map.call(this, a,b,c,d,e) }
var input = Gun.on.in; Gun.on.in = function(a,b,c,d,e){ Gun._trace('in', a); input.call(this, a,b,c,d,e) }
var input = Gun.on.in;
Gun.on.in = function(a,b,c,d,e){ Gun._trace('input', a); input.call(this, a,b,c,d,e) }
var output = Gun.on.out; Gun.on.out = function(a,b,c,d,e){ Gun._trace('out', a); output.call(this, a,b,c,d,e) }
var output = Gun.on.out;
Gun.on.out = function(a,b,c,d,e){ Gun._trace('output', a); output.call(this, a,b,c,d,e) }
//var only = console.only; console.only = function(a,b,c,d,e,f,g){ Gun._trace('ONLY'); return only.apply(console,arguments) }
var start = +new Date;
setTimeout(function log(){
if((+new Date - start) > 100){ return }
setTimeout(log, 0);
Gun._trace("ASYNC");
},0);
}());
;(function(){ // PASTE YOUR UNIT TEST INTO HERE TO TRACE IT!
var gun = window.gun = Gun();
var data = {
levelA2: { levelA3: { levelA4: { levelA5: "hello" } } },
//levelB2: { levelB3: { levelB4: { levelB5: "world" } } }
localStorage.clear();
var goff = Gun();
Gun.statedisk = function(o,s,cb){
goff.get(s).put(o, cb, {turn: function(fn){fn()}});
};
//gun.get('level1').put(data);
//gun.get('level1').map().map().on(function(v,k){ console.log('level3', k, v); check[k] = v });
// gun.get('level2').put({D1: 'hello!!', C1: 'world!!'})
gun.get('level1').put({A1: 'hello', B1: 'world'}, function(ack){
Gun._trace('ACKED')
//console.log('ack!', ack);
gun.get('level1').on(function(data){
Gun._trace('READ')
//console.log("read!", data);
//Gun._trace('ONLY');
Gun._trace('GET');
Gun._trace('PUT');
Gun._trace('out');
Gun._trace('in');
//Gun._trace('.get');
Gun._trace('.once');
//Gun._trace('.put');
var gun = Gun();
var bob = {age: 29, name: "Bob!"};
var cat = {name: "Fluffy", species: "kitty"};
var user = {bob: bob};
bob.pet = cat;
cat.slave = bob;
Gun.statedisk(user, 'nodecircle', function(){
console.only.i=1;console.log("=============", gun);
//gun.get('nodecircle').get('bob').once(function(data){
gun.get('nodecircle').get('bob').get('pet').get('slave').once(function(data){
console.log("*****************", data);//return;
expect(done.to).to.not.be.ok();
done.to = setTimeout(function(){
expect(data.age).to.be(29);
expect(data.name).to.be("Bob!");
expect('string' == typeof Gun.valid(data.pet)).to.ok();
done();
},300);
});
});
}());
Gun.on('trace.end', function(msg){
var code = msg.code, id;
console.log('_____TOTAL LOGS: ',Gun.traces.length, new Date());
//console.log('_____TOTAL LOGS: ',Gun.traces.length, new Date());
$('h2:first').text(`Total of steps: ${Gun.traces.length}`);
$('title:first').text(`(${Gun.traces.length}) steps | Gun Msg Trace`);
var diagram = Diagram.parse(code);
diagram.drawSVG(id||'diagram', {theme: 'simple'});
setTimeout(function(){
$('.actor').each(function(){
var pos = $(this).offset();
$("<span class='method'>").text($(this).text()).css({position: 'fixed', left: pos.left}).appendTo('body');
});
})
});
</script>
</body>

View File

@ -1,14 +1,15 @@
// @rogowski CAME UP WITH THIS BRILLIANT GENIUS ABSOLUTELY AMAZING AWESOME IDEA!!!!
///// TESTS rogowski
Gun.traces=[`Participant GUN`];
// Gun.logs=[];
//Gun.traces=[`Participant GUN`];
Gun.traces=[];
Gun._trace = function(evname, msg) {
//if(!(console.only.i)){ return }
clearTimeout(Gun._trace.to);
Gun._trace.to = setTimeout(function(){
Gun.on('trace.end', {code: Gun.traces.join('\n')});
}, 1000);
if (!msg) {
console.log('WARN, empty message: ',msg);
//console.log('WARN, empty message: ',msg);
// msg=evname;
// evname = 'GUN';
}
@ -17,15 +18,15 @@ Gun._trace = function(evname, msg) {
};
// msg.lastev = Gun._tracelastev;
Gun._trace.i = Gun._trace.i ? ++Gun._trace.i : 1;
console.log(`*(${Gun._trace.i}) ${Gun._tracelastev}->:%s, msg:`, evname, msg);
//console.log(`*(${Gun._trace.i}) ${Gun._tracelastev}->:%s, msg:`, evname, msg);
var __ = (!msg||!msg['#'] ? '' : ('#:'+msg['#']).slice(0,6)+'...');
var __ = (!msg||!msg['#'] ? '' : ('#'+msg['#']).slice(0,4)+'');
var dam = (!msg||!msg.dam ? '' : ('dam:'+msg.dam));
var at = (!msg||!msg['@'] ? '' : ('@:'+msg['@']).slice(0,9)+'...');
var at = (!msg||!msg['@'] ? '' : ('@:'+msg['@']).slice(0,9)+'');
var lS = (!msg||!msg.lS ? '' : ('lS:'+msg.lS));
var id = (!msg||!msg.id ? '' : ('id:'+msg.id));
var ram = (!msg||!msg.ram ? '' : ('ram:'+msg.ram));
var get = (!msg||!msg.get ? '' : ('get:'+Gun._clean(msg.get)).slice(0,15)+'...');
var get = (!msg||!msg.get ? '' : ('get:'+Gun._clean(msg.get)).slice(0,15)+'');
var put = !(typeof msg === 'object' && ('put' in msg)) ? '' : ('put:'+Gun._clean(msg&&msg.put?msg.put:'')).slice(0,30)+'...';
// Gun._tracelastevdt Gun._tracelastev;
@ -38,6 +39,7 @@ Gun._trace = function(evname, msg) {
var keys = Array.isArray(msg) ? keys.sort().join(',')
: typeof msg==='object' ? Object.keys(msg).sort().join(',')
: 'this';
if (dam) {
if (msg['#']) {
evname='GUN';
@ -46,7 +48,8 @@ Gun._trace = function(evname, msg) {
}
Gun.traces.push(`${Gun._tracelastev}->${evname}: (${Gun._trace.i}) {${keys}} ${get} ${put} ${__} ${dam} ${ram} ${id} ${at} ${lS}`);
} else {
Gun.traces.push(`${Gun._tracelastev}->${evname}: (${Gun._trace.i}) {${keys.slice(0,15)}} ${get} ${put} ${__} ${dam} ${ram} ${id} ${at} ${lS}`);
//Gun.traces.push(`${Gun._tracelastev}->${evname}: (${Gun._trace.i}) {${keys.slice(0,15)}} ${get} ${put} ${__} ${dam} ${ram} ${id} ${at} ${lS}`);
Gun.traces.push(Gun._tracelastev+'->'+evname+': '+(console.only.i||'')+' '+__);
// Gun.traces.push(`${Gun._tracelastev}->${evname}: (${Gun._trace.i}) {${!keys?'this':keys}}`);
}