31 lines
914 B
TypeScript
31 lines
914 B
TypeScript
import type { CliDeps, RuntimeEnv } from "../index.js";
|
|
import { formatMessageLine } from "../index.js";
|
|
|
|
export async function statusCommand(
|
|
opts: { limit: string; lookback: string; json?: boolean },
|
|
deps: CliDeps,
|
|
runtime: RuntimeEnv,
|
|
) {
|
|
const limit = Number.parseInt(opts.limit, 10);
|
|
const lookbackMinutes = Number.parseInt(opts.lookback, 10);
|
|
if (Number.isNaN(limit) || limit <= 0 || limit > 200) {
|
|
throw new Error("limit must be between 1 and 200");
|
|
}
|
|
if (Number.isNaN(lookbackMinutes) || lookbackMinutes <= 0) {
|
|
throw new Error("lookback must be > 0 minutes");
|
|
}
|
|
|
|
const messages = await deps.listRecentMessages(lookbackMinutes, limit);
|
|
if (opts.json) {
|
|
runtime.log(JSON.stringify(messages, null, 2));
|
|
return;
|
|
}
|
|
if (messages.length === 0) {
|
|
runtime.log("No messages found in the requested window.");
|
|
return;
|
|
}
|
|
for (const m of messages) {
|
|
runtime.log(formatMessageLine(m));
|
|
}
|
|
}
|