@kareemaly/researcher
Version:
CLI tool for web research
49 lines (48 loc) • 2.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.listCommand = listCommand;
const fileSystemStorage_1 = require("../services/fileSystemStorage");
const logger_1 = require("../utils/logger");
const path_1 = __importDefault(require("path"));
const log = (0, logger_1.createLogger)("cli:list");
function listCommand(program) {
program
.command("list")
.description("List saved searches")
.action(async (options, command) => {
try {
const globalOpts = command.parent?.opts();
const outputDir = path_1.default.resolve(globalOpts?.output || "research");
log("Listing searches from: %s", outputDir);
const storage = new fileSystemStorage_1.FileSystemStorage({ basePath: outputDir });
await storage.initialize();
const searches = await storage.listSearches();
const stats = await storage.getStats();
if (searches.length === 0) {
console.log("\nNo saved searches found.");
return;
}
console.log("\nSaved searches:");
for (const search of searches) {
const date = new Date(search.timestamp).toLocaleString();
console.log(`\n${search.id} (${date})`);
console.log(`- Query: "${search.query}"`);
console.log(`- Type: ${search.type}`);
console.log(`- Results: ${search.results.length}`);
if (search.location) {
console.log(`- Location: ${search.location}`);
}
}
console.log(`\nTotal storage size: ${(stats.totalSizeBytes / 1024 / 1024).toFixed(2)} MB`);
console.log("\nView details with: researcher show <id>");
}
catch (error) {
log.error("Failed to list searches: %O", error);
console.error("Failed to list searches:", error instanceof Error ? error.message : error);
process.exit(1);
}
});
}