From 6d34e7d7691f2aadb8f496e84ecff7df5a648c26 Mon Sep 17 00:00:00 2001 From: Chris Pymm Date: Mon, 9 Jun 2025 21:21:24 +0100 Subject: [PATCH] docs(contribution): save code examples as individual files with correct extension --- middleware/process-subission-data.js | 37 +++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/middleware/process-subission-data.js b/middleware/process-subission-data.js index 205e10794..534177e4b 100644 --- a/middleware/process-subission-data.js +++ b/middleware/process-subission-data.js @@ -97,19 +97,50 @@ const processSubmissionData = (sessionData, submissionFiles, submissionRef) => { submissionData[filename] = sessionData[key] } else { const data = Object.assign({}, sessionData[key]) - if(key === '/your-details') { + if (key === '/your-details') { // Remove personal data data.fullName = 'Not shared' data.teamName = 'Not shared' // Add back in personal details if permission is given - if(sessionData[key]?.shareYourDetails?.includes('addNameToComponentPage')) { + if ( + sessionData[key]?.shareYourDetails?.includes( + 'addNameToComponentPage' + ) + ) { data.fullName = sessionData[key].fullName } - if(sessionData[key]?.shareYourDetails?.includes('addTeamNameToComponentPage')) { + if ( + sessionData[key]?.shareYourDetails?.includes( + 'addTeamNameToComponentPage' + ) + ) { data.teamName = sessionData[key].teamName } } + if (key.startsWith('/component-code-details')) { + const exampleNum = key.split('/').at(2) + ? `-${key.split('/').at(2)}` + : '' + const language = data.componentCodeLanguage + let extension = `.${language}` + switch (language) { + case 'nunjucks': + extension = '.njk' + break + case 'javascript': { + extension = '.js' + break + } + } + const code = data.componentCode + if (language.toLowerCase() !== 'other') { + const filePath = `submissions/${submissionRef}/code/example${exampleNum}${extension}` + submissionData[filePath] = { + buffer: Buffer.from(code).toString('base64') + } + } + } submissionData[`submissions/${submissionRef}/${filename}`] = data } }