refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2020-04-11 01:43:34 +03:00
parent fed5f32723
commit 241da95cc1

View File

@ -217,7 +217,6 @@ if(typeof(window) != 'undefined'){
/*********************************************************************/ /*********************************************************************/
// Logger... // Logger...
// XXX add log filtering...
var LoggerActions = actions.Actions({ var LoggerActions = actions.Actions({
config: { config: {
// NOTE: if set to 0 no log limit is applied... // NOTE: if set to 0 no log limit is applied...
@ -274,12 +273,40 @@ var LoggerActions = actions.Actions({
this.log this.log
&& this.log.splice(0, this.log.length) && this.log.splice(0, this.log.length)
return this }, return this },
print: function(to_console){ // Format log to string...
to_console = to_console === undefined ? //
true // Full log...
: to_console // .log2str()
var str = this.log ? // -> str
this.log //
// Slice log...
// .log2str(from)
// .log2str(from, to)
// -> str
//
// Specific item...
// .log2str(date, path, status, rest)
// .log2str([date, path, status, rest])
// -> str
// NOTE: this form does not depend on context...
//
//
// NOTE: the later form is useful for filtering:
// logger.log
// .filter(..)
// .map(logger.log2str)
// .join('\n')
//
log2str: function(){
return (arguments.length == 0 ?
(this.log || [])
: arguments[0] instanceof Array ?
[arguments[0]]
: arguments.length < 2 ?
(this.log ?
this.log.slice(arguments[0], arguments[1])
: [])
: [arguments])
.map(function([date, path, status, rest]){ .map(function([date, path, status, rest]){
return `[${ new Date(date).getTimeStamp(true) }] ` return `[${ new Date(date).getTimeStamp(true) }] `
+ path.join(': ') + (path.length > 0 ? ': ' : '') + path.join(': ') + (path.length > 0 ? ': ' : '')
@ -290,11 +317,10 @@ var LoggerActions = actions.Actions({
': ' ': '
: '') : '')
+ rest.join(': ') }) + rest.join(': ') })
.join('\n') .join('\n') },
: '' print: function(...args){
return to_console ? console.log(this.log2str(...args))
(console.log(str), this) return this },
: str },
// main API... // main API...