convex
Version:
Client for the Convex Cloud
83 lines (82 loc) • 2.04 kB
JavaScript
;
import * as Sentry from "@sentry/node";
import chalk from "chalk";
import ora from "ora";
import { nodeFs } from "./fs.js";
export const oneoffContext = {
fs: nodeFs,
deprecationMessagePrinted: false,
spinner: void 0,
async crash(exitCode, _errorType, err) {
return await flushAndExit(exitCode, err);
}
};
async function flushAndExit(exitCode, err) {
if (err) {
Sentry.captureException(err);
}
await Sentry.close();
return process.exit(exitCode);
}
export function logError(ctx, message) {
ctx.spinner?.clear();
console.error(message);
}
export function logWarning(ctx, message) {
ctx.spinner?.clear();
console.error(message);
}
export function logMessage(ctx, ...logged) {
ctx.spinner?.clear();
console.error(...logged);
}
export function logOutput(ctx, ...logged) {
ctx.spinner?.clear();
console.log(...logged);
}
export function showSpinner(ctx, message) {
ctx.spinner?.stop();
ctx.spinner = ora({
// Add newline to prevent clobbering when a message
// we can't pipe through `logMessage` et al gets printed
text: message + "\n",
stream: process.stderr
}).start();
}
export function changeSpinner(ctx, message) {
if (ctx.spinner) {
ctx.spinner.text = message + "\n";
} else {
console.error(message);
}
}
export function logFailure(ctx, message) {
if (ctx.spinner) {
ctx.spinner.fail(message);
ctx.spinner = void 0;
} else {
console.error(`${chalk.red(`\u2716`)} ${message}`);
}
}
export function logFinishedStep(ctx, message) {
if (ctx.spinner) {
ctx.spinner.succeed(message);
ctx.spinner = void 0;
} else {
console.error(`${chalk.green(`\u2714`)} ${message}`);
}
}
export function stopSpinner(ctx) {
if (ctx.spinner) {
ctx.spinner.stop();
ctx.spinner = void 0;
}
}
export async function showSpinnerIfSlow(ctx, message, delayMs, fn) {
const timeout = setTimeout(() => {
showSpinner(ctx, message);
}, delayMs);
await fn();
clearTimeout(timeout);
}
//# sourceMappingURL=context.js.map