mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
Dev: Collapse duplicate logs
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "eruda",
|
||||
"version": "0.1.1",
|
||||
"version": "0.1.2",
|
||||
"description": "Console for mobile JavaScript",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -12,6 +12,7 @@ export default class Log extends util.Emitter
|
||||
this._logs = [];
|
||||
this._tpl = require('./Log.hbs');
|
||||
this._filter = 'all';
|
||||
this._lastLog = {};
|
||||
this._timer = {};
|
||||
}
|
||||
clear()
|
||||
@@ -36,7 +37,7 @@ export default class Log extends util.Emitter
|
||||
return this.filter(new RegExp(util.escapeRegExp(regexp)));
|
||||
}
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'input',
|
||||
ignoreFilter: true,
|
||||
val: transCode(jsCode)
|
||||
@@ -50,61 +51,51 @@ export default class Log extends util.Emitter
|
||||
this.error(e);
|
||||
}
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
output(msg)
|
||||
{
|
||||
msg = transMsg(msg);
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'output',
|
||||
ignoreFilter: true,
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
dir(obj)
|
||||
{
|
||||
var msg = util.isObj(obj) ? JSON.stringify(obj, null, 4) : transMsg(obj);
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'dir',
|
||||
isCode: true,
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
log()
|
||||
{
|
||||
var msg = transMultipleMsg(arguments);
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'log',
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
html(msg)
|
||||
{
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'html',
|
||||
ignoreFilter: true,
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
error(msg)
|
||||
@@ -120,40 +111,34 @@ export default class Log extends util.Emitter
|
||||
msg = errToStr(new Error(), transMsg(msg));
|
||||
}
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'error',
|
||||
ignoreFilter: ignoreFilter,
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
info()
|
||||
{
|
||||
var msg = transMultipleMsg(arguments);
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'info',
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
warn()
|
||||
{
|
||||
var msg = transMultipleMsg(arguments);
|
||||
|
||||
this._logs.push({
|
||||
this._insert({
|
||||
type: 'warn',
|
||||
val: msg
|
||||
});
|
||||
|
||||
this._render();
|
||||
|
||||
return this;
|
||||
}
|
||||
filter(type)
|
||||
@@ -186,6 +171,32 @@ export default class Log extends util.Emitter
|
||||
|
||||
return this;
|
||||
}
|
||||
_insert(log)
|
||||
{
|
||||
util.defaults(log, {
|
||||
type: 'log',
|
||||
isCode: false,
|
||||
ignoreFilter: false,
|
||||
val: '',
|
||||
showTimes: false,
|
||||
times: 1
|
||||
});
|
||||
|
||||
var lastLog = this._lastLog;
|
||||
|
||||
if (lastLog.type === log.type && lastLog.val === log.val)
|
||||
{
|
||||
lastLog.times++;
|
||||
lastLog.showTimes = true;
|
||||
} else
|
||||
{
|
||||
this._logs.push(log);
|
||||
|
||||
this._lastLog = log;
|
||||
}
|
||||
|
||||
this._render();
|
||||
}
|
||||
_runCmd(cmd)
|
||||
{
|
||||
cmd = util.trim(cmd);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<ul>
|
||||
{{#each logs}}
|
||||
<li class="eruda-{{type}}">
|
||||
{{#if showTimes}}<span class="eruda-times">{{times}}</span>{{/if}}
|
||||
{{#if isCode}}
|
||||
<pre><code>{{{val}}}</code></pre>
|
||||
{{else}}
|
||||
|
||||
@@ -13,6 +13,12 @@
|
||||
a {
|
||||
color: $blue !important;
|
||||
}
|
||||
.times {
|
||||
background: $blue;
|
||||
padding: 5px;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
&.log, &.output, &.info, &.dir {
|
||||
border-bottom: 1px solid #b4b4b4;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user