UNPKG

@visionfi/server-cli

Version:

Command-line interface for VisionFI Server SDK

125 lines (124 loc) 4.58 kB
/** * Processing commands for VisionFI CLI * Copyright (c) 2024-2025 VisionFI. All Rights Reserved. */ import { createClient } from '../utils/config.js'; import { Display } from '../utils/display.js'; /** * Execute processing on a package */ export async function executeProcessing(packageId, options) { const spinner = Display.spinner('Executing processing...'); try { const client = createClient(); const response = await client.packages.processing.execute(packageId, options.workflow ? { workflowId: options.workflow } : {}); spinner.succeed('Processing started successfully'); Display.keyValue('Processing ID', response.processingId); Display.keyValue('Status', response.status); if (response.workflow) { Display.keyValue('Workflow', response.workflow); } } catch (error) { spinner.fail('Failed to execute processing'); Display.error(error.message); process.exit(1); } } /** * Get processing history for a package */ export async function getProcessingHistory(packageId, options) { const spinner = Display.spinner('Fetching processing history...'); try { const client = createClient(); const response = options.withResults ? await client.packages.processing.getWithResults(packageId) : await client.packages.processing.getHistory(packageId, options.limit ? { maxResults: parseInt(options.limit) } : undefined); spinner.succeed('Processing history retrieved'); if (response.processings && response.processings.length > 0) { Display.table(response.processings.map((proc) => ({ 'Processing ID': proc.processingId, 'Status': proc.status, 'Workflow': proc.workflow || 'N/A', 'Started': proc.startTime ? new Date(proc.startTime).toLocaleString() : 'N/A', 'Completed': proc.endTime ? new Date(proc.endTime).toLocaleString() : 'N/A' }))); } else { Display.info('No processing history found'); } } catch (error) { spinner.fail('Failed to get processing history'); Display.error(error.message); process.exit(1); } } /** * Get a specific processing result */ export async function getProcessingResult(packageId, processingId) { const spinner = Display.spinner('Fetching processing result...'); try { const client = createClient(); const result = await client.packages.processing.getResult(packageId, processingId); spinner.succeed('Processing result retrieved'); Display.json(result); } catch (error) { spinner.fail('Failed to get processing result'); Display.error(error.message); process.exit(1); } } /** * Get processing view */ export async function getProcessingView(packageId, processingId, options) { const spinner = Display.spinner('Fetching processing view...'); try { const client = createClient(); const response = await client.packages.processing.getView(packageId, processingId, options.format ? { viewFormat: options.format } : undefined); spinner.succeed('Processing view retrieved'); if (response.view) { Display.json(response.view); } else { Display.info('No view data available'); } } catch (error) { spinner.fail('Failed to get processing view'); Display.error(error.message); process.exit(1); } } /** * Poll for processing completion */ export async function pollProcessing(packageId, processingId, options) { const spinner = Display.spinner('Polling for processing completion...'); try { const client = createClient(); const result = await client.packages.processing.pollForCompletion(packageId, processingId, options.interval ? parseInt(options.interval) : 3000, options.timeout ? parseInt(options.timeout) / 1000 : 60); spinner.succeed('Processing completed'); Display.keyValue('Status', result.status); Display.keyValue('Completion Time', result.endTime ? new Date(result.endTime).toLocaleString() : 'N/A'); if (result.result) { Display.header('Results'); Display.json(result.result); } } catch (error) { spinner.fail('Processing did not complete'); Display.error(error.message); process.exit(1); } }