mirror of
https://github.com/amark/gun.git
synced 2025-06-24 15:02:33 +00:00
@rogowski approved of these trace changes :)
This commit is contained in:
parent
4221c24e84
commit
5f19570191
104
test/trace.html
104
test/trace.html
@ -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" } } }
|
||||
};
|
||||
//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);
|
||||
});
|
||||
});
|
||||
localStorage.clear();
|
||||
var goff = Gun();
|
||||
Gun.statedisk = function(o,s,cb){
|
||||
goff.get(s).put(o, cb, {turn: function(fn){fn()}});
|
||||
};
|
||||
//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>
|
||||
|
@ -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}}`);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user