mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
|
function csvAttachment(res, body, filename) {
|
||
|
if (!filename || !filename.endsWith('.csv')) {
|
||
|
throw new Error('filename must end with .csv')
|
||
|
}
|
||
|
// res.attachment sets both content-type and content-disposition headers.
|
||
|
res.attachment(filename)
|
||
|
res.setHeader('X-Content-Type-Options', 'nosniff')
|
||
|
res.send(body)
|
||
|
}
|
||
|
|
||
|
function preparePlainTextResponse(res) {
|
||
|
res.setHeader('X-Content-Type-Options', 'nosniff')
|
||
|
res.contentType('text/plain; charset=utf-8')
|
||
|
}
|
||
|
|
||
|
function plainTextResponse(res, body) {
|
||
|
preparePlainTextResponse(res)
|
||
|
res.send(body)
|
||
|
}
|
||
|
|
||
|
function xmlResponse(res, body) {
|
||
|
res.setHeader('X-Content-Type-Options', 'nosniff')
|
||
|
res.contentType('application/xml; charset=utf-8')
|
||
|
res.send(body)
|
||
|
}
|
||
|
|
||
|
function prepareZipAttachment(res, filename) {
|
||
|
if (!filename || !filename.endsWith('.zip')) {
|
||
|
throw new Error('filename must end with .zip')
|
||
|
}
|
||
|
// res.attachment sets both content-type and content-disposition headers.
|
||
|
res.attachment(filename)
|
||
|
res.setHeader('X-Content-Type-Options', 'nosniff')
|
||
|
}
|
||
|
|
||
|
function zipAttachment(res, body, filename) {
|
||
|
prepareZipAttachment(res, filename)
|
||
|
res.send(body)
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
csvAttachment,
|
||
|
plainTextResponse,
|
||
|
preparePlainTextResponse,
|
||
|
prepareZipAttachment,
|
||
|
xmlResponse,
|
||
|
zipAttachment,
|
||
|
}
|