72 lines
2.2 KiB
JavaScript
72 lines
2.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createSpinner;
|
|
}
|
|
});
|
|
const _ora = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/ora"));
|
|
function _interop_require_default(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
const dotsSpinner = {
|
|
frames: [
|
|
".",
|
|
"..",
|
|
"..."
|
|
],
|
|
interval: 200
|
|
};
|
|
function createSpinner(text, options = {}, logFn = console.log) {
|
|
let spinner;
|
|
let prefixText = text && typeof text === "object" && text.prefixText;
|
|
if (process.stdout.isTTY) {
|
|
spinner = (0, _ora.default)({
|
|
text: typeof text === "string" ? text : undefined,
|
|
prefixText: typeof prefixText === "string" ? prefixText : undefined,
|
|
spinner: dotsSpinner,
|
|
stream: process.stdout,
|
|
...options
|
|
}).start();
|
|
// Add capturing of console.log/warn/error to allow pausing
|
|
// the spinner before logging and then restarting spinner after
|
|
const origLog = console.log;
|
|
const origWarn = console.warn;
|
|
const origError = console.error;
|
|
const origStop = spinner.stop.bind(spinner);
|
|
const origStopAndPersist = spinner.stopAndPersist.bind(spinner);
|
|
const logHandle = (method, args)=>{
|
|
origStop();
|
|
method(...args);
|
|
spinner.start();
|
|
};
|
|
console.log = (...args)=>logHandle(origLog, args);
|
|
console.warn = (...args)=>logHandle(origWarn, args);
|
|
console.error = (...args)=>logHandle(origError, args);
|
|
const resetLog = ()=>{
|
|
console.log = origLog;
|
|
console.warn = origWarn;
|
|
console.error = origError;
|
|
};
|
|
spinner.stop = ()=>{
|
|
origStop();
|
|
resetLog();
|
|
return spinner;
|
|
};
|
|
spinner.stopAndPersist = ()=>{
|
|
origStopAndPersist();
|
|
resetLog();
|
|
return spinner;
|
|
};
|
|
} else if (prefixText || text) {
|
|
logFn(prefixText ? prefixText + "..." : text);
|
|
}
|
|
return spinner;
|
|
}
|
|
|
|
//# sourceMappingURL=spinner.js.map
|