findstate-cli
Version:
A CLI for querying data optimized for Real Estate
37 lines (31 loc) • 1.06 kB
text/typescript
import fs from "fs";
import { queryData } from "../../core/query-engine.js";
import { loadData } from "../../core/data-loader.js";
import { validateFileName } from "../../utils/validation-helpers.js";
export function exportCommand(
queries: string[],
source: string = "mock",
fileName: string = "results.json"
): void {
try {
validateFileName(fileName);
} catch (error) {
console.error((error as Error).message);
process.exit(1);
}
const data = loadData(source);
const parsedQueries = queries.map((query) => {
const [field, operation, value] = query.split(":");
const parsedValue = isNaN(Number(value)) ? value : Number(value);
return { field, operation, value: parsedValue };
});
const results = queryData(data, parsedQueries);
try {
fs.writeFileSync(fileName, JSON.stringify(results, null, 2));
console.info(`Results exported to ${fileName}`);
} catch (error) {
console.error("Error: Unable to write to the specified file.");
console.error((error as Error).message);
process.exit(1);
}
}