auron
Version:
Interact with your ATProto labeler from your terminal
30 lines (29 loc) • 942 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.withLoader = exports.getGlobalSpinner = void 0;
const ora_1 = __importDefault(require("ora"));
let globalSpinner = null;
const getGlobalSpinner = () => globalSpinner;
exports.getGlobalSpinner = getGlobalSpinner;
const withLoader = async (message, fn) => {
const spinner = (0, ora_1.default)(message).start();
globalSpinner = spinner;
const updateMessage = (newMessage) => {
spinner.text = newMessage;
};
try {
const result = await fn(updateMessage, spinner);
spinner.succeed();
globalSpinner = null;
return result;
}
catch (error) {
spinner.fail();
globalSpinner = null;
throw error;
}
};
exports.withLoader = withLoader;