@letanure/resend-cli
Version:
A command-line interface for Resend email API
48 lines • 1.96 kB
JavaScript
import { displayCLIError, displayCLIResults } from './cli.js';
/**
* Generic function to display CLI operation results
* Handles success, error, and dry-run scenarios consistently
*/
export function displayResults(options) {
const { data, result, fields, outputFormat, apiKey, operation, isDryRun = false } = options;
// Handle dry-run mode
if (isDryRun) {
const metadata = {};
if (apiKey) {
metadata['API Key'] = `${apiKey.substring(0, 10)}...`;
}
metadata['Dry Run'] = 'true';
// Use unified displayCLIResults for both JSON and text output
displayCLIResults(data, fields, outputFormat, operation.dryRun.title, metadata, operation.dryRun.message);
return;
}
if (!result) {
throw new Error('Result is required when not in dry-run mode');
}
if (result.success && result.data) {
// Success case - only show the API response data, not input data
const responseData = result.data;
// Handle list operations - check if the response has a 'data' property with an array
let displayData;
if (responseData.data && Array.isArray(responseData.data)) {
// For list operations, use the array directly for table display
displayData = responseData.data;
}
else {
// For single object operations, use the response as-is
displayData = responseData;
}
displayCLIResults(displayData, fields, outputFormat, operation.success.title, undefined, // No additional metadata
operation.success.message(result.data));
}
else {
// Error case
const metadata = {};
if (result.error) {
metadata.Error = result.error;
}
displayCLIError(data, fields, outputFormat, operation.error.title, metadata, operation.error.message);
process.exit(1);
}
}
//# sourceMappingURL=display-results.js.map