pdm-ai
Version:
PDM-AI - Transform customer feedback into structured product insights using the Jobs-to-be-Done (JTBD) methodology
38 lines (33 loc) • 1.31 kB
JavaScript
/**
* Main visualization module
* Handles the generation of different visualization formats for JTBDs and scenarios
*/
import mermaidGenerator from './mermaid.js';
import * as csvGenerator from './csv.js';
import path from 'path';
import fs from 'fs-extra';
/**
* Generate visualization based on input data and options
* @param {Object} data - Input data with JTBDs and scenarios
* @param {Object} options - Visualization options
* @returns {Object} Result object with content and stats
*/
export async function generateVisualization(data, options) {
// Generate Mermaid diagrams
if (options.format === 'mermaid' || !options.format) {
return mermaidGenerator.generateMermaidDiagram(data, options);
}
// Generate CSV files for Figma/Miro
else if (options.format === 'csv') {
// For CSV we need an output path to create multiple files
if (!options.outputPath) {
throw new Error('Output path is required for CSV format');
}
// Ensure the output directory exists
await fs.ensureDir(path.dirname(options.outputPath));
// Generate CSV files and return the result
return await csvGenerator.generateCSVFiles(data, options, options.outputPath);
}
// Unsupported format
throw new Error(`Format '${options.format}' is not yet implemented.`);
}