1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-10 19:34:34 +00:00

fix(file): fixes response headers

This commit is contained in:
Saad Jutt
2022-02-20 06:18:44 +05:00
parent 3e6234e601
commit ef41691e40
7 changed files with 35 additions and 10 deletions

View File

@@ -41,7 +41,10 @@ const executeSASCode = async (req: any, { code }: ExecuteSASCodePayload) => {
true
)) as ExecuteReturnJson
if (webout instanceof Buffer) return webout
if (webout instanceof Buffer) {
;(req as any).sasHeaders = httpHeaders
return webout
}
return {
status: 'success',

View File

@@ -148,7 +148,7 @@ ${program}`
? await readFile(headersPath)
: ''
const httpHeaders: HTTPHeaders = extractHeaders(headersContent)
const fileResponse: boolean = httpHeaders.hasOwnProperty('Content-Type')
const fileResponse: boolean = httpHeaders.hasOwnProperty('content-type')
const webout = (await fileExists(weboutPath))
? fileResponse

View File

@@ -113,8 +113,9 @@ const executeReturnRaw = async (
req.res?.set(httpHeaders)
// if (result instanceof Buffer)
// req.res?.writeHead(200, httpHeaders)
if (result instanceof Buffer) {
;(req as any).sasHeaders = httpHeaders
}
return result
} catch (err: any) {
@@ -148,7 +149,10 @@ const executeReturnJson = async (
true
)) as ExecuteReturnJson
if (webout instanceof Buffer) return webout
if (webout instanceof Buffer) {
;(req as any).sasHeaders = httpHeaders
return webout
}
return {
status: 'success',

View File

@@ -12,6 +12,12 @@ runRouter.post('/execute', async (req, res) => {
try {
const response = await controller.executeSASCode(req, body)
if (response instanceof Buffer) {
res.writeHead(200, (req as any).sasHeaders)
return res.end(response)
}
res.send(response)
} catch (err: any) {
const statusCode = err.code

View File

@@ -14,6 +14,12 @@ stpRouter.get('/execute', async (req, res) => {
try {
const response = await controller.executeReturnRaw(req, query._program)
if (response instanceof Buffer) {
res.writeHead(200, (req as any).sasHeaders)
return res.end(response)
}
res.send(response)
} catch (err: any) {
const statusCode = err.code
@@ -40,6 +46,12 @@ stpRouter.post(
body,
query?._program
)
if (response instanceof Buffer) {
res.writeHead(200, (req as any).sasHeaders)
return res.end(response)
}
res.send(response)
} catch (err: any) {
const statusCode = err.code

View File

@@ -15,9 +15,9 @@ export const extractHeaders = (content?: string): HTTPHeaders => {
const [key, value] = headerStr.split(':').map((data) => data.trim())
if (value && headerUtils.validateHeader(key, value)) {
headersObj[key] = value
headersObj[key.toLowerCase()] = value
} else {
delete headersObj[key]
delete headersObj[key.toLowerCase()]
}
})

View File

@@ -12,8 +12,8 @@ describe('extractHeaders', () => {
`)
expect(headers).toEqual({
'Content-type': 'application/zip',
'Cache-Control': 'public, max-age=1000'
'content-type': 'application/zip',
'cache-control': 'public, max-age=1000'
})
})
@@ -25,7 +25,7 @@ describe('extractHeaders', () => {
Content-type:
`)
expect(headers).toEqual({ 'Cache-Control': 'public, max-age=1000' })
expect(headers).toEqual({ 'cache-control': 'public, max-age=1000' })
})
it('should return only valid http headers', () => {