Send console message with healthy render

This commit is contained in:
Kurt Hutten
2021-03-21 14:48:54 +11:00
parent cc1c0e7278
commit f9f35183af
6 changed files with 23 additions and 30 deletions

View File

@@ -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, () => {

View File

@@ -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)
}

View File

@@ -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')

View File

@@ -7,12 +7,12 @@ const IdeConsole = () => {
<div className="p-8 border-2 m-2 overflow-y-auto">
<div>
{state.consoleMessages?.map(({ type, message }, index) => (
<div
<pre
className={'font-mono ' + (type === 'error' ? 'text-red-500' : '')}
key={message + index}
>
-> {message}
</div>
{message}
</pre>
))}
</div>
</div>

View File

@@ -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])

View File

@@ -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}`
}