From f0e8003b463a3a2d8bf2bd3aad86dac62090e65c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Val=C3=A9rian=20Galliat?= Date: Wed, 25 Feb 2015 12:15:43 +0100 Subject: [PATCH] Remove chalk hack (fixes #374) --- package.json | 2 +- src/logger.js | 48 +++++++++++++++--------------------------------- 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 8ff181c0..52ca78db 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ ], "dependencies": { "babel-runtime": "^4.4.0", - "chalk": "^0.5.0", + "chalk": "^1.0.0", "concat-stream": "^1.4.7", "docopt": "^0.4.1", "glob": "^4.3.1", diff --git a/src/logger.js b/src/logger.js index bd280f54..868fa29b 100644 --- a/src/logger.js +++ b/src/logger.js @@ -1,7 +1,11 @@ import { is } from './utils'; import * as errors from './errors'; import { format as fmt } from 'util'; -import chalk from 'chalk'; +import chalkModule from 'chalk'; + +const chalk = new chalkModule.constructor({ + enabled: process.stderr.isTTY, +}); // Special chars. const chevron = '\xBB'; @@ -32,20 +36,16 @@ export default class Logger { * Always log arguments as warning into stderr. */ warn(...args) { - chalkHack(() => { - let str = fmt(`${yellow} [WARNING] ${args.shift()}`, ...args); - this._stderr.write(`${str}\n`); - }); + let str = fmt(`${yellow} [WARNING] ${args.shift()}`, ...args); + this._stderr.write(`${str}\n`); } /** * Always log arguments as error into stderr. */ error(...args) { - chalkHack(() => { - let str = fmt(`${red} [ERROR] ${args.shift()}`, ...args); - this._stderr.write(`${str}\n`); - }); + let str = fmt(`${red} [ERROR] ${args.shift()}`, ...args); + this._stderr.write(`${str}\n`); } /** @@ -94,15 +94,13 @@ export default class Logger { return f; }); - chalkHack(() => { - let str = fmt( - `${chalk.styles.grey.open}${chevron} [DEBUG] ${args.shift()}`, - ...args, - chalk.styles.grey.close - ); + let str = fmt( + `${chalkModule.styles.grey.open}${chevron} [DEBUG] ${args.shift()}`, + ...args, + chalkModule.styles.grey.close + ); - this._stderr.write(`${str}\n`); - }); + this._stderr.write(`${str}\n`); } } @@ -147,19 +145,3 @@ export function checkLogger(logger) { debug: empty.debug, }; } - -/** - * Chalk don't allow us to create a new instance with our own `enabled` - * value (internal functions always reference the global export). Here - * we want to enable it if stderr is a TTY, but it's not acceptable to - * modify the global context for this purpose. - * - * So this hack will set `chalk.enabled` for the time of the synchronous - * callback execution, then reset it to whatever was its default value. - */ -function chalkHack(cb) { - let enabled = chalk.enabled; - chalk.enabled = process.stderr.isTTY; - cb(); - chalk.enabled = enabled; -}