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.
124 lines
3.4 KiB
124 lines
3.4 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.logNewSection = logNewSection;
|
|
exports.ora = ora;
|
|
function _chalk() {
|
|
const data = _interopRequireDefault(require("chalk"));
|
|
_chalk = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _commander() {
|
|
const data = _interopRequireDefault(require("commander"));
|
|
_commander = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _ora() {
|
|
const data = _interopRequireDefault(require("ora"));
|
|
_ora = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _log() {
|
|
const data = _interopRequireDefault(require("../log"));
|
|
_log = function () {
|
|
return data;
|
|
};
|
|
return data;
|
|
}
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
// eslint-disable-next-line no-console
|
|
const logReal = console.log;
|
|
// eslint-disable-next-line no-console
|
|
const infoReal = console.info;
|
|
// eslint-disable-next-line no-console
|
|
const warnReal = console.warn;
|
|
// eslint-disable-next-line no-console
|
|
const errorReal = console.error;
|
|
|
|
/**
|
|
* A custom ora spinner that sends the stream to stdout in CI, non-TTY, or expo's non-interactive flag instead of stderr (the default).
|
|
*
|
|
* @param options
|
|
* @returns
|
|
*/
|
|
function ora(options) {
|
|
const inputOptions = typeof options === 'string' ? {
|
|
text: options
|
|
} : options || {};
|
|
const disabled = _commander().default.nonInteractive || _log().default.isDebug;
|
|
const spinner = (0, _ora().default)({
|
|
// Ensure our non-interactive mode emulates CI mode.
|
|
isEnabled: !disabled,
|
|
// In non-interactive mode, send the stream to stdout so it prevents looking like an error.
|
|
stream: disabled ? process.stdout : process.stderr,
|
|
...inputOptions
|
|
});
|
|
const oraStart = spinner.start.bind(spinner);
|
|
const oraStop = spinner.stop.bind(spinner);
|
|
const oraStopAndPersist = spinner.stopAndPersist.bind(spinner);
|
|
const logWrap = (method, args) => {
|
|
oraStop();
|
|
method(...args);
|
|
spinner.start();
|
|
};
|
|
const wrapNativeLogs = () => {
|
|
// eslint-disable-next-line no-console
|
|
console.log = (...args) => logWrap(logReal, args);
|
|
// eslint-disable-next-line no-console
|
|
console.info = (...args) => logWrap(infoReal, args);
|
|
// eslint-disable-next-line no-console
|
|
console.warn = (...args) => logWrap(warnReal, args);
|
|
// eslint-disable-next-line no-console
|
|
console.error = (...args) => logWrap(errorReal, args);
|
|
};
|
|
const resetNativeLogs = () => {
|
|
// eslint-disable-next-line no-console
|
|
console.log = logReal;
|
|
// eslint-disable-next-line no-console
|
|
console.info = logReal;
|
|
// eslint-disable-next-line no-console
|
|
console.warn = warnReal;
|
|
// eslint-disable-next-line no-console
|
|
console.error = errorReal;
|
|
};
|
|
spinner.start = text => {
|
|
wrapNativeLogs();
|
|
return oraStart(text);
|
|
};
|
|
spinner.stopAndPersist = options => {
|
|
const result = oraStopAndPersist(options);
|
|
resetNativeLogs();
|
|
return result;
|
|
};
|
|
spinner.stop = () => {
|
|
const result = oraStop();
|
|
resetNativeLogs();
|
|
return result;
|
|
};
|
|
|
|
// Always make the central logging module aware of the current spinner
|
|
_log().default.setSpinner(spinner);
|
|
return spinner;
|
|
}
|
|
|
|
/**
|
|
* Create a unified section spinner.
|
|
*
|
|
* @param title
|
|
* @returns
|
|
*/
|
|
function logNewSection(title) {
|
|
const spinner = ora(_chalk().default.bold(title));
|
|
// Prevent the spinner from clashing with debug logs
|
|
spinner.start();
|
|
return spinner;
|
|
}
|
|
//# sourceMappingURL=ora.js.map
|