You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

30 lines
745 B

'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;
};