'use strict';
|
const renderers = {
|
silent: require('listr-silent-renderer'),
|
verbose: require('listr-verbose-renderer'),
|
default: require('listr-update-renderer')
|
};
|
|
const isRendererSupported = renderer => process.stdout.isTTY === true || renderer.nonTTY === true;
|
|
const getRendererClass = renderer => {
|
if (typeof renderer === 'string') {
|
return renderers[renderer] || renderers.default;
|
}
|
|
return typeof renderer === 'function' ? renderer : renderers.default;
|
};
|
|
exports.getRenderer = (renderer, fallbackRenderer) => {
|
let ret = getRendererClass(renderer);
|
|
if (!isRendererSupported(ret)) {
|
ret = getRendererClass(fallbackRenderer);
|
|
if (!ret || !isRendererSupported(ret)) {
|
ret = renderers.verbose;
|
}
|
}
|
|
return ret;
|
};
|