diff --git a/api/src/docker/aws-emulator.js b/api/src/docker/aws-emulator.js index de0fec3..4c722e2 100644 --- a/api/src/docker/aws-emulator.js +++ b/api/src/docker/aws-emulator.js @@ -14,19 +14,8 @@ app.post('/render', async (req, res) => { const { data } = await axios.post(invocationURL(5052), { body: Buffer.from(JSON.stringify(req.body)).toString('base64'), }) - if (data.statusCode !== 200) { - res.status(data.statusCode) - res.send(res.body) - } else { - const fileContents = Buffer.from(data.body, 'base64') - - const readStream = new stream.PassThrough() - readStream.end(fileContents) - - res.set('Content-disposition', 'attachment; filename=' + 'output') - res.set('Content-Type', 'image/png') - readStream.pipe(res) - } + res.status(data.statusCode) + res.send(data.body) }) app.listen(port, () => { diff --git a/api/src/docker/openscad/openscad.js b/api/src/docker/openscad/openscad.js index bde2d5d..1edb2ef 100644 --- a/api/src/docker/openscad/openscad.js +++ b/api/src/docker/openscad/openscad.js @@ -45,11 +45,11 @@ const render = async (req, _context, callback) => { console.log(image, 'encoded image') const response = { statusCode: 200, - headers: { - 'content-type': 'image/png', - }, - body: image, - isBase64Encoded: true, + body: JSON.stringify({ + imageBase64: image, + result, + tempFile, + }), } callback(null, response) } diff --git a/api/src/docker/openscad/runScad.js b/api/src/docker/openscad/runScad.js index a7e8929..c23e0b6 100644 --- a/api/src/docker/openscad/runScad.js +++ b/api/src/docker/openscad/runScad.js @@ -64,11 +64,11 @@ async function runCommand(command, timeout = 5000) { } if (stderr) { console.log(`stderr: ${stderr}`) - resolve(`stderr: ${stderr}`) + resolve(stderr) return } console.log(`stdout: ${stdout}`) - resolve(`stdout: ${stdout}`) + resolve(stdout) }) setTimeout(() => { reject('timeout') diff --git a/web/src/components/IdeConsole/IdeConsole.js b/web/src/components/IdeConsole/IdeConsole.js index 6483e23..0b62f9c 100644 --- a/web/src/components/IdeConsole/IdeConsole.js +++ b/web/src/components/IdeConsole/IdeConsole.js @@ -7,12 +7,12 @@ const IdeConsole = () => {
{state.consoleMessages?.map(({ type, message }, index) => ( -
- -> {message} -
+ {message} + ))}
diff --git a/web/src/components/IdeViewer/IdeViewer.js b/web/src/components/IdeViewer/IdeViewer.js index c2248ee..2790d4d 100644 --- a/web/src/components/IdeViewer/IdeViewer.js +++ b/web/src/components/IdeViewer/IdeViewer.js @@ -124,8 +124,7 @@ const IdeViewer = () => { useEffect(() => { setImage( state.objectData?.type === 'png' && - state.objectData?.data && - window.URL.createObjectURL(state.objectData?.data) + 'data:image/png;base64,' + state.objectData?.data ) setIsDragging(false) }, [state.objectData]) diff --git a/web/src/helpers/cadPackages/openScadController.js b/web/src/helpers/cadPackages/openScadController.js index bbab21f..167174b 100644 --- a/web/src/helpers/cadPackages/openScadController.js +++ b/web/src/helpers/cadPackages/openScadController.js @@ -50,20 +50,20 @@ export const render = async ({ code, settings }) => { status: 'error', message: { type: 'error', - message: cleanedErrorMessage, + message: addDateToLog(cleanedErrorMessage), }, } } - const data = await response.blob() + const data = await response.json() return { status: 'healthy', objectData: { type: 'png', - data, + data: data.imageBase64, }, message: { type: 'message', - message: 'successful render', + message: addDateToLog(data.result), }, } } catch (e) { @@ -75,7 +75,7 @@ export const render = async ({ code, settings }) => { status: 'error', message: { type: 'error', - message: 'network issue', + message: addDateToLog('network issue'), }, } } @@ -87,3 +87,8 @@ const openScad = { } export default openScad + +function addDateToLog(message) { + return `-> ${new Date().toLocaleString()} +${message}` +}