58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var _consoleReporter;
|
|
|
|
function _load_consoleReporter() {
|
|
return _consoleReporter = _interopRequireDefault(require('./reporters/console/console-reporter'));
|
|
}
|
|
|
|
var _conversion;
|
|
|
|
function _load_conversion() {
|
|
return _conversion = require('./util/conversion.js');
|
|
}
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
const defaultOptions = {
|
|
emoji: true,
|
|
peekMemoryCounter: false
|
|
};
|
|
|
|
/**
|
|
* This code is based on yarn src/cli/index.js
|
|
*/
|
|
function createReporter(options = {}) {
|
|
const reporter = new (_consoleReporter || _load_consoleReporter()).default({
|
|
// $FlowFixMe
|
|
emoji: options.emoji && process.stdout.isTTY,
|
|
verbose: options.verbose,
|
|
noProgress: options.noProgress,
|
|
isSilent: (0, (_conversion || _load_conversion()).boolifyWithDefault)(process.env.YURNALIST_SILENT, false) || options.silent,
|
|
nonInteractive: options.nonInteractive
|
|
});
|
|
|
|
if (options.peekMemoryCounter) {
|
|
reporter.initPeakMemoryCounter();
|
|
}
|
|
|
|
return reporter;
|
|
}
|
|
|
|
const reporter = createReporter(defaultOptions);
|
|
|
|
function bindMethods(methods, instance) {
|
|
return methods.reduce((result, name) => {
|
|
try {
|
|
/* $FlowFixMe: Indexible signature not found */
|
|
result[name] = instance[name].bind(instance);
|
|
return result;
|
|
} catch (e) {
|
|
throw new ReferenceError(`Unable to bind method: ${name}`);
|
|
}
|
|
}, {});
|
|
}
|
|
|
|
const boundMethods = bindMethods(['table', 'step', 'inspect', 'list', 'header', 'footer', 'log', 'success', 'error', 'info', 'command', 'warn', 'question', 'tree', 'activitySet', 'activity', 'select', 'progress', 'close', 'lang'], reporter);
|
|
|
|
module.exports = Object.assign({}, boundMethods, { createReporter }); |