let { Buffer } = require("buffer"); const {ChartJSNodeCanvas} = require("chartjs-node-canvas"); const dependencies = { chartJS: require("chartjs-node-canvas") }; const constants = { TYPES: ['PNG', 'SVG'], smalll: { height: 400, width: 400 }, medium: { height: 500, width: 500 } }; (async () => { console.log("Creating Chart Object"); const { CanvasRenderService } = dependencies.chartJS; const { height, width } = constants.medium; const renderService = new ChartJSNodeCanvas({ type: 'svg', width: 800, height: 600 }); /*let renderService = new CanvasRenderService(width, height, (ChartJS) => { ChartJS.defaults.global.animation = false; ChartJS.defaults.global.responsive = false; }, 'SVG'); //Tried SVG and svg*/ try { let buffer = await renderService.renderToBufferSync({ type: 'bar', data: { labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)' ], borderColor: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)' ], borderWidth: 1 }] }, options: { /*scales: { yAxes: [{ ticks: { beginAtZero: true } }] }*/ } }, 'image/svg+xml'); //When I run this I dont get anthing below this to print out console.log("Finished"); console.log(); const fs = require('node:fs'); fs.writeFileSync('image.svg', buffer, 'utf8'); //let base64Str = Buffer.from(buffer).toString("base64"); //console.log(base64Str); } catch (e) { console.log(e); } })();