diff --git a/src/Console/Console.es6 b/src/Console/Console.es6
index 9a09195..6795ebf 100644
--- a/src/Console/Console.es6
+++ b/src/Console/Console.es6
@@ -10,6 +10,7 @@ export default class Console extends Tool
constructor()
{
super();
+
this.name = 'console';
}
init($el, parent)
@@ -22,67 +23,58 @@ export default class Console extends Tool
this._bindEvent();
this._initConfig();
}
- show()
- {
- super.show();
-
- this._log.render();
- }
overrideConsole()
{
var log = this._log,
- origConsole = {},
+ origConsole = this._origConsole = {},
winConsole = window.console;
- CONSOLE_METHOD.forEach((name) =>
+ CONSOLE_METHOD.forEach(name =>
{
- var origin = origConsole[name] = winConsole[name];
+ var origin = origConsole[name] = winConsole[name].bind(winConsole);
- winConsole[name] = function ()
+ winConsole[name] = (...args) =>
{
- log[name].apply(log, arguments);
-
- origin.apply(winConsole, arguments);
+ log[name](...args);
+ origin(...args);
};
});
- this._origConsole = origConsole;
-
return this;
}
restoreConsole()
{
- var origConsole = this._origConsole;
- if (origConsole)
- {
- var winConsole = window.console;
- CONSOLE_METHOD.forEach((name) => winConsole[name] = origConsole[name]);
- }
+ if (!this._origConsole) return this;
+
+ CONSOLE_METHOD.forEach(name => window.console[name] = this._origConsole[name]);
+ delete this._origConsole;
+
+ return this;
}
catchGlobalErr()
{
- var log = this._log;
-
this._origOnerror = window.onerror;
- window.onerror = (errMsg, url, lineNum, column, errObj) =>
- {
- if (errObj) return log.error(errObj);
- log.error(errMsg);
- };
+
+ window.onerror = (errMsg, url, lineNum, column, errObj) => this._log.error(errObj ? errObj : errMsg);
return this;
}
ignoreGlobalErr()
{
- var origOnerror = this._origOnerror;
- if (origOnerror) window.onerror = origOnerror;
+ if (this._origOnerror)
+ {
+ window.onerror = this._origOnerror;
+ delete this._origOnerror;
+ }
+
+ return this;
}
destroy()
{
super.destroy();
this.ignoreGlobalErr();
- this.restoreConsole();
+ return this.restoreConsole();
}
_appendTpl()
{
@@ -127,14 +119,11 @@ export default class Console extends Tool
$inputBtns.on('click', '.cancel', () => this._hideInput());
$inputBtns.on('click', '.execute', () =>
{
- var jsInput = $input.val();
-
- if (util.trim(jsInput) === '') return;
+ var jsInput = $input.val().trim();
+ if (jsInput === '') return;
log.input(jsInput);
-
$input.val('').get(0).blur();
-
this._hideInput();
});
@@ -188,4 +177,3 @@ export default class Console extends Tool
}
const CONSOLE_METHOD = ['log', 'error', 'info', 'warn', 'dir', 'time', 'timeEnd', 'clear'];
-
diff --git a/src/Console/Log.es6 b/src/Console/Log.es6
index 48be503..788da4a 100644
--- a/src/Console/Log.es6
+++ b/src/Console/Log.es6
@@ -26,34 +26,28 @@ export default class Log extends util.Emitter
{
this._logs = [];
this._lastLog = {};
-
this._isUpdated = true;
- this.render();
+
+ return this.render();
}
input(jsCode)
{
- var src = jsCode;
-
- jsCode = util.trim(jsCode);
-
if (util.startWith(jsCode, ':'))
{
- var cmd = jsCode.slice(1);
- this._runCmd(cmd);
+ this._runCmd(jsCode.slice(1));
return this;
} else if (util.startWith(jsCode, '/'))
{
- var regexp = util.trim(jsCode.slice(1));
- return this.filter(new RegExp(util.escapeRegExp(regexp)));
+ return this.filter(new RegExp(util.escapeRegExp(jsCode.slice(1))));
}
- this._insert({
+ this.insert({
type: 'input',
ignoreFilter: true,
isCode: true,
icon: 'chevron-right',
- src,
+ src: jsCode,
val: jsCode
});
@@ -69,121 +63,83 @@ export default class Log extends util.Emitter
}
output(val)
{
- var src = util.isObj(val) ? extractObj(val) : val;
-
- this._insert({
+ return this.insert({
type: 'output',
ignoreFilter: true,
icon: 'chevron-left',
- src,
+ src: util.isObj(val) ? extractObj(val) : val,
val: transMsg(val)
});
-
- return this;
}
dir(obj)
{
var src = util.isObj(obj) ? extractObj(obj) : obj,
msg = util.isObj(src) ? JSON.stringify(src, null, 4) : transMsg(src, true);
- this._insert({
+ return this.insert({
type: 'dir',
isCode: true,
src,
val: msg
});
-
- return this;
}
- log()
+ log(...args)
{
- var msg = transMultipleMsg(arguments),
- src = extractSrc(arguments);
-
- this._insert({
+ return this.insert({
type: 'log',
- src,
- val: msg
+ src: extractSrc(args),
+ val: transMultipleMsg(args)
});
-
- return this;
}
- html(msg)
+ html(val)
{
- this._insert({
+ return this.insert({
type: 'html',
ignoreFilter: true,
- val: msg
+ val
});
-
- return this;
}
error(msg)
{
if (util.isUndef(msg)) return;
- var ignoreFilter = false;
+ if (!util.isErr(msg)) msg = new Error(msg);
- if (util.isErr(msg))
- {
- ignoreFilter = msg.ignoreFilter;
- } else
- {
- msg = new Error(msg);
- }
-
- var src = {
- message: msg.message || '',
- stack: msg.stack
- };
- msg = errToStr(msg);
-
- this._insert({
+ return this.insert({
type: 'error',
- ignoreFilter: ignoreFilter,
- src,
+ ignoreFilter: msg.ignoreFilter,
+ src: {
+ message: msg.message || '',
+ stack: msg.stack
+ },
icon: 'times-circle',
- val: msg
+ val: errToStr(msg)
});
-
- return this;
}
- info()
+ info(...args)
{
- var msg = transMultipleMsg(arguments),
- src = arguments.length === 1 ? arguments[0] : arguments;
-
- this._insert({
+ return this.insert({
type: 'info',
- src,
+ src: extractSrc(args),
icon: 'info-circle',
- val: msg
+ val: transMultipleMsg(args)
});
-
- return this;
}
- warn()
+ warn(...args)
{
- var msg = transMultipleMsg(arguments),
- src = arguments.length === 1 ? arguments[0] : arguments;
-
- this._insert({
+ return this.insert({
type: 'warn',
- src,
+ src: extractSrc(args),
icon: 'exclamation-triangle',
- val: msg
+ val: transMultipleMsg(args)
});
-
- return this;
}
filter(type)
{
this._filter = type;
-
this.emit('filter', type);
-
this._isUpdated = true;
- this.render();
+ return this.render();
}
help()
{
@@ -200,14 +156,11 @@ export default class Log extends util.Emitter
var startTime = this._timer[name];
if (!startTime) return;
+ delete this._timer[name];
- var duration = util.now() - startTime;
- this.html(`
${name}: ${duration}ms
`);
- delete this._timer[name];
-
- return this;
+ return this.html(`${name}: ${util.now() - startTime}ms
`);
}
- _insert(log)
+ insert(log)
{
util.defaults(log, {
type: 'log',
@@ -239,12 +192,11 @@ export default class Log extends util.Emitter
} else
{
this._logs.push(log);
-
this._lastLog = log;
}
this._isUpdated = true;
- this.render();
+ return this.render();
}
_bindEvent()
{
@@ -252,9 +204,8 @@ export default class Log extends util.Emitter
this._$el.on('click', '.eruda-log-item', function ()
{
- var idx = util.$(this).data('idx');
-
- var src = self._renderLogs[idx].src;
+ var idx = util.$(this).data('idx'),
+ src = self._renderLogs[idx].src;
try {
if (!util.isObj(src)) src = JSON.parse(src);
@@ -264,9 +215,7 @@ export default class Log extends util.Emitter
}
_runCmd(cmd)
{
- cmd = util.trim(cmd);
-
- switch (cmd)
+ switch (cmd.trim())
{
case '$': return this._loadJs('jQuery');
case '_': return this._loadJs('underscore');
@@ -286,15 +235,11 @@ export default class Log extends util.Emitter
render()
{
if (!this._parent.active || !this._isUpdated) return;
-
this._isUpdated = false;
var logs = this._renderLogs = this._filterLogs(this._logs);
- this._$el.html(this._tpl({
- logs: logs
- }));
-
+ this._$el.html(this._tpl({logs: logs}));
this._scrollToBottom();
}
_filterLogs(logs)
@@ -305,7 +250,7 @@ export default class Log extends util.Emitter
var isRegexp = util.isRegExp(filter);
- return util.filter(logs, (val) =>
+ return logs.filter((val) =>
{
if (isRegexp) return filter.test(val.val);
@@ -321,33 +266,20 @@ export default class Log extends util.Emitter
}
var cmdList = require('./cmdList.json'),
- helpMsg = require('./help.hbs')({
- commands: cmdList
- });
-
-var libraries = require('./libraries.json');
+ helpMsg = require('./help.hbs')({commands: cmdList}),
+ libraries = require('./libraries.json');
var regJsUrl = /https?:\/\/([0-9.\-A-Za-z]+)(?::(\d+))?\/[A-Z.a-z0-9/]*\.js/g;
-function evalJs(jsInput)
-{
- return eval.call(window, jsInput);
-}
+var evalJs = jsInput => eval.call(window, jsInput);
function errToStr(err)
{
- var lines = err.stack.split('\n');
+ var lines = err.stack.split('\n'),
+ msg = `${lines[0]}
`,
+ stack = `${lines.slice(1).join('
')}
`;
- var msg = `${lines[0]}
`;
-
- var stack = `${lines.slice(1).join('
')}
`;
-
- stack = stack.replace(regJsUrl, function (match)
- {
- return `${match}`;
- });
-
- return msg + stack;
+ return msg + stack.replace(regJsUrl, match => `${match}`);
}
function transMsg(msg, noEscape)
@@ -377,17 +309,10 @@ function extractSrc(args)
{
if (args.length !== 1) return args;
- var ret = args[0];
-
- if (util.isObj(ret)) ret = extractObj(ret);
-
- return ret;
+ return util.isObj(args[0]) ? extractObj(args[0]) : args[0];
}
-function extractObj(obj)
-{
- return JSON.parse(stringify(obj));
-}
+var extractObj = (obj) => JSON.parse(stringify(obj));
// Modified from: https://jsconsole.com/
function stringify(obj, simple, visited)
@@ -396,8 +321,7 @@ function stringify(obj, simple, visited)
type = '',
parts = [],
names = [],
- circular = false,
- i, vi;
+ circular = false;
visited = visited || [];
@@ -408,9 +332,9 @@ function stringify(obj, simple, visited)
type = '[object Object]';
}
- for (vi = 0; vi < visited.length; vi++)
+ for (let i = 0, len = visited.length; i < len; i++)
{
- if (obj === visited[vi])
+ if (obj === visited[i])
{
circular = true;
break;
@@ -428,22 +352,19 @@ function stringify(obj, simple, visited)
visited.push(obj);
json = '[';
- for (i = 0; i < obj.length; i++)
- {
- parts.push(`${stringify(obj[i], simple, visited)}`);
- }
+ util.each(obj, val => parts.push(`${stringify(val, simple, visited)}`));
json += parts.join(', ') + ']';
} else if (type == '[object Object]')
{
visited.push(obj);
json = '{';
- for (i in obj) names.push(i);
+ for (let key in obj) names.push(key);
names.sort(sortName);
- for (i = 0; i < names.length; i++)
+ util.each(names, val =>
{
- parts.push(`${stringify(names[i], undefined, visited)}: ${stringify(obj[ names[i] ], simple, visited)}`);
- }
+ parts.push(`${stringify(val, undefined, visited)}: ${stringify(obj[val], simple, visited)}`);
+ });
json += parts.join(', ') + '}';
} else if (type == '[object Number]')
{
@@ -465,16 +386,15 @@ function stringify(obj, simple, visited)
visited.push(obj);
json = '{\n';
- for (i in obj) names.push(i);
+ for (let key in obj) names.push(key);
names.sort(sortName);
- for (i = 0; i < names.length; i++)
+ util.each(names, val =>
{
try
{
- parts.push(`"${names[i]}": ${stringify(obj[names[i]], true, visited)}`);
+ parts.push(`"${val}": ${stringify(obj[val], true, visited)}`);
} catch (e) {}
- }
-
+ });
json += parts.join(',\n') + '\n}';
} else
{
@@ -487,35 +407,16 @@ function stringify(obj, simple, visited)
return json;
}
-function escapeJsonStr(str)
-{
- return str.replace(/\\/g, '\\\\')
- .replace(/"/g, '\\"')
- .replace(/\f/g, '\\f')
- .replace(/\n/g, '\\n')
- .replace(/\r/g, '')
- .replace(/\t/g, '');
-}
+var escapeJsonStr = str => str.replace(/\\/g, '\\\\')
+ .replace(/"/g, '\\"')
+ .replace(/\f/g, '\\f')
+ .replace(/\n/g, '\\n')
+ .replace(/\r/g, '')
+ .replace(/\t/g, '');
-function sortName(a, b)
-{
- return a.toLowerCase() < b.toLowerCase() ? -1 : 1;
-}
+var sortName = (a, b) => a.toLowerCase() < b.toLowerCase() ? -1 : 1;
-function transMultipleMsg(args)
-{
- var ret = [];
+var transMultipleMsg = args => args.map(val => transMsg(val)).join(' ');
- util.each(args, function (val)
- {
- ret.push(transMsg(val));
- });
-
- return ret.join(' ');
-}
-
-function txtToHtml(str)
-{
- return str.replace(/\n/g, '
')
- .replace(/\t/g, ' ');
-}
+var txtToHtml = str => str.replace(/\n/g, '
')
+ .replace(/\t/g, ' ');
diff --git a/src/Network/Network.es6 b/src/Network/Network.es6
index e1a7a53..e2ca9f9 100644
--- a/src/Network/Network.es6
+++ b/src/Network/Network.es6
@@ -61,12 +61,12 @@ export default class Network extends Tool
origOpen.apply(this, arguments);
};
- winXhrProto.send = function ()
+ winXhrProto.send = function (...args)
{
var req = this.erudaRequest;
if (req) req.handleSend();
- origSend.apply(this, arguments);
+ origSend.apply(this, args);
};
}
restoreXhr()