javascript - Cannot code prepend logger correctly -


i have simple function prepend desired string beginning of each line. have working streams, in cases it's convenient using console.log() type of construct.

here function:

// takes string prepend, , stream prepend to:

exports.lp = function (str, strm) {     return function prependlog() {         var args = array.from(arguments);         var hasnonwhitespace = args.some(function (a) {             var str = string(a);             return str.length > 0 && /\s/g.test(str);         });         if (hasnonwhitespace) {             strm.write(str);         }         args.foreach(function (s, i) {             string(s).split('\n').foreach(function (s, i) {                 if (i < 1) {                     strm.write(s + ' ');                 }                 else {                     strm.write('\n' + str + s);                 }             });         });         strm.write('\n');     }; }; 

here use:

const {lp} = require('log-prepend'); const fn = lp(' [foobar] ', process.stdout);   fn('\n'); fn(); fn(); fn('','',''); fn('log1', 'log2\n3',4,5 + '\n55'); fn('a','b','c'); 

and here output above:

 [foobar]      [foobar] log1 log2   [foobar] 34 5   [foobar] 55  [foobar] b c  

the problem empty lines no non-whitespace character, works, when include newline character, outputs [foobar] though there nothing on line.

i can't figure out why function doesn't omit [foobar] lines no non-whitespace. exact, first instance of [foobar] above mystifying me.

having little trouble following logic here because expecting use index variable first foreach function, when it's using second? renaming initial variables might help.


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -