| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 'use strict';var Console = require('console').Console;var gray = require('ansi-gray');var timestamp = require('time-stamp');var supportsColor = require('color-support');var nodeVersion = require('parse-node-version')(process.version);var colorDetectionOptions = {  // If on Windows, ignore the isTTY check  // This is due to AppVeyor (and thus probably common Windows platforms?) failing the check  // TODO: If this is too broad, we can reduce it to an APPVEYOR env check  ignoreTTY: (process.platform === 'win32'),};// Needed to add this because node 10 decided to start coloring log output randomlyvar console;if (nodeVersion.major >= 10) {  // Node 10 also changed the way this is constructed  console = new Console({    stdout: process.stdout,    stderr: process.stderr,    colorMode: false,  });} else {  console = new Console(process.stdout, process.stderr);}function hasFlag(flag) {  return (process.argv.indexOf('--' + flag) !== -1);}function addColor(str) {  if (hasFlag('no-color')) {    return str;  }  if (hasFlag('color')) {    return gray(str);  }  if (supportsColor(colorDetectionOptions)) {    return gray(str);  }  return str;}function getTimestamp() {  return '[' + addColor(timestamp('HH:mm:ss')) + ']';}function log() {  var time = getTimestamp();  process.stdout.write(time + ' ');  console.log.apply(console, arguments);  return this;}function info() {  var time = getTimestamp();  process.stdout.write(time + ' ');  console.info.apply(console, arguments);  return this;}function dir() {  var time = getTimestamp();  process.stdout.write(time + ' ');  console.dir.apply(console, arguments);  return this;}function warn() {  var time = getTimestamp();  process.stderr.write(time + ' ');  console.warn.apply(console, arguments);  return this;}function error() {  var time = getTimestamp();  process.stderr.write(time + ' ');  console.error.apply(console, arguments);  return this;}module.exports = log;module.exports.info = info;module.exports.dir = dir;module.exports.warn = warn;module.exports.error = error;
 |