MCPcopy
hub / github.com/tinyhttp/tinyhttp / setHeader

Function setHeader

packages/res/src/headers.ts:13–40  ·  view source on GitHub ↗
(res: Response)

Source from the content-addressed store, hash-verified

11type Req = Pick<I, 'headers'>
12
13export const setHeader = <Response extends Res = Res>(res: Response) => (
14 field: string | Record<string, string | number | string[]>,
15 val?: string | number | readonly string[]
16): Response => {
17 if (typeof field === 'string') {
18 let value = Array.isArray(val) ? val.map(String) : String(val)
19
20 // add charset to content-type
21 if (field.toLowerCase() === 'content-type') {
22 if (Array.isArray(value)) {
23 throw new TypeError('Content-Type cannot be set to an Array')
24 }
25
26 if (!charsetRegExp.test(value)) {
27 const charset = mime.charset(value.split(';')[0])
28
29 if (typeof charset === 'string') value += '; charset=' + charset.toLowerCase()
30 }
31 }
32
33 res.setHeader(field, value)
34 } else {
35 for (const key in field) {
36 setHeader(res)(key, field[key] as string)
37 }
38 }
39 return res
40}
41
42export const setLocationHeader = <Request extends Req = Req, Response extends Res = Res>(
43 req: Request,

Callers 5

extendMiddlewareFunction · 0.90
attachmentFunction · 0.90
appendFunction · 0.90
res.test.tsFile · 0.90
setContentTypeFunction · 0.85

Calls 1

charsetMethod · 0.80

Tested by

no test coverage detected