const pptxgen = require('pptxgenjs'); const fs = require('fs'); const { renderSlide } = require('./slide-renderer'); function render(pptxJson) { const pptx = new pptxgen(); const data = typeof pptxJson === 'string' ? JSON.parse(pptxJson) : pptxJson; const pres = data.presentation || {}; const slides = data.slides || []; if (pres.layout) pptx.layout = pres.layout; if (pres.author) pptx.author = pres.author; if (pres.title) pptx.title = pres.title; if (pres.subject) pptx.subject = pres.subject; if (pres.company) pptx.company = pres.company; if (pres.revision) pptx.revision = pres.revision; if (pres.rtlMode !== undefined) pptx.rtlMode = pres.rtlMode; if (pres.theme) pptx.theme = pres.theme; slides.forEach(slideData => renderSlide(pptx, slideData)); return pptx; } async function renderFile(inputPath, outputPath) { const json = fs.readFileSync(inputPath, 'utf8'); const pptx = render(json); return pptx.writeFile({ fileName: outputPath }); } module.exports = { render, renderFile };