UNPKG

navy

Version:

Quick and powerful development environments using Docker and Docker Compose

85 lines (65 loc) 2.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.isDriverLogging = isDriverLogging; exports.log = log; exports.startDriverLogging = startDriverLogging; exports.stopDriverLogging = stopDriverLogging; var _cliSpinners = require("cli-spinners"); var _chalk = _interopRequireDefault(require("chalk")); let _isDriverLogging = false; let _spinnerInterval = null; let _spinnerIndex = 0; let _message = null; function _redraw(opts = {}) { let symbol = _chalk.default.cyan(_cliSpinners.dots.frames[_spinnerIndex]); if (opts.success === true) { symbol = _chalk.default.green('✔'); } else if (opts.success === false) { symbol = _chalk.default.red('•'); } if (!process.stdout.isTTY) { if (opts.success) { console.log(); console.log(symbol, 'SUCCESS'); } else if (opts.success === false) { console.log(); console.log(symbol, 'FAILURE'); } return; } process.stdout.write(' \n'); process.stdout.write(` ${symbol} ${opts.success === false ? _chalk.default.red(_message, 'FAILED') : _message}\n`); process.stdout.cursorTo(0); process.stdout.moveCursor(0, -2); } function startDriverLogging(message) { _isDriverLogging = true; _message = message; _redraw(); _spinnerInterval = setInterval(() => { _spinnerIndex++; if (_spinnerIndex >= _cliSpinners.dots.frames.length) { _spinnerIndex = 0; } _redraw(); }, _cliSpinners.dots.interval); } function stopDriverLogging(opts = {}) { if (!isDriverLogging()) return; _isDriverLogging = false; clearInterval(_spinnerInterval); _redraw({ success: opts.success != null ? opts.success : true }); if (process.stdout.isTTY) console.log('\n\n'); } function isDriverLogging() { return _isDriverLogging; } function log(message) { if (!isDriverLogging()) return; process.stdout.write(_chalk.default.dim(message)); }