mirror of https://github.com/lukechilds/docs.git
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
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;
|
|
};
|
|
|