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 randomly
- var 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;
|