| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/readjs/node_modules/squeak/ |
Upload File : |
'use strict';
var EventEmitter = require('events').EventEmitter;
var fmt = require('util').format;
var inherits = require('util').inherits;
var chalk = require('chalk');
var consoleStream = require('console-stream');
var lpadAlign = require('lpad-align');
/**
* Initialize a new `Squeak`
*
* @param {Object} opts
* @api public
*/
function Squeak(opts) {
if (!(this instanceof Squeak)) {
return new Squeak(opts);
}
EventEmitter.call(this);
this.opts = opts || {};
this.align = this.opts.align !== false;
this.indent = this.opts.indent || 2;
this.separator = this.opts.separator || ' : ';
this.stream = this.opts.stream || process.stderr || consoleStream();
this.types = [];
}
inherits(Squeak, EventEmitter);
module.exports = Squeak;
/**
* Write args to stream
*
* @api public
*/
Squeak.prototype.write = function () {
this.log([].slice.call(arguments));
return this;
};
/**
* Write args and new line to stream
*
* @api public
*/
Squeak.prototype.writeln = function () {
this.log([].slice.call(arguments));
this.stream.write('\n');
return this;
};
/**
* Pad and write args to stream
*
* @api public
*/
Squeak.prototype.writelpad = function () {
var args = [].slice.call(arguments);
var pad = new Array(this.indent + 1).join(' ');
if (args.length) {
args[0] = pad + args[0];
}
this.log(args);
return this;
};
/**
* Add type
*
* @param {String} type
* @param {Object} opts
* @param {Function} cb
* @api public
*/
Squeak.prototype.type = function (type, opts, cb) {
if (!cb && typeof opts === 'function') {
cb = opts;
opts = {};
}
opts = opts || {};
opts.color = opts.color || 'reset';
opts.prefix = opts.prefix || type;
this.types.push(opts.prefix);
this[type] = function () {
this.log([].slice.call(arguments), opts);
if (cb) {
cb();
}
};
return this;
};
/**
* End
*
* @param {Function} cb
* @api public
*/
Squeak.prototype.end = function (cb) {
this.stream.write('\n');
if (cb) {
cb();
}
return this;
};
/**
* Log
*
* @param {Array} args
* @param {Object} opts
* @api private
*/
Squeak.prototype.log = function (args, opts) {
opts = opts || {};
var msg = [fmt.apply(null, args)];
var color = opts.color;
var prefix = opts.prefix;
if (prefix) {
var arr = this.align ? this.types : [prefix];
msg.unshift(chalk[color](lpadAlign(prefix, arr, this.indent)));
}
this.stream.write(msg.join(this.separator));
this.stream.write('\n');
return this;
};