ios-dev/comments/Home/node_modules/@tinyhttp/res/dist/index.js.map

1 line
14 KiB
Plaintext
Raw Normal View History

2024-03-11 14:47:28 +03:00
{"version":3,"file":"index.js","sources":["../src/headers.ts","../src/append.ts","../src/cookie.ts","../src/util.ts","../src/format.ts","../src/redirect.ts","../src/download.ts"],"sourcesContent":["import { IncomingMessage as Req, ServerResponse as Res } from 'node:http'\nimport mime from 'mime'\nimport { getRequestHeader } from '@tinyhttp/req'\nimport { vary } from '@tinyhttp/vary'\nimport { encodeUrl } from '@tinyhttp/encode-url'\n\nconst charsetRegExp = /;\\s*charset\\s*=/\n\nexport const setHeader =\n <Response extends Res = Res>(res: Response) =>\n (field: string | Record<string, string | number | string[]>, val?: string | number | readonly string[]): Response => {\n if (typeof field === 'string') {\n let value = Array.isArray(val) ? val.map(String) : String(val)\n\n // add charset to content-type\n if (field.toLowerCase() === 'content-type') {\n if (Array.isArray(value)) {\n throw new TypeError('Content-Type cannot be set to an Array')\n }\n\n if (!charsetRegExp.test(value)) {\n const charset = 'UTF-8' // UTF-8 is the default charset for all types\n\n if (typeof charset === 'string') value += '; charset=' + charset.toLowerCase()\n }\n }\n\n res.setHeader(field, value)\n } else {\n for (const key in field) {\n setHeader(res)(key, field[key] as string)\n }\n }\n return res\n }\n\nexport const setLocationHeader =\n <Request extends Req = Req, Response extends Res = Res>(req: Request, res: Response) =>\n (url: string): Response => {\n let loc = url\n\n // \"back\" is an alias for the referrer\n if (url === 'back') loc = (getRequestHeader(req)('Referrer') as string) || '/'\n\n // set location\n res.setHeader('Location', encodeUrl(loc))\n return res\n }\n\nexport const getResponseHeader =\n <Response extends Res = Res>(res: Response) =>\n (field: string): string | number | string[] => {\n return res.getHeader(field)\n }\n\nexport const setLinksHeader =\n <Response extends Res = Res>(res: Response) =>\n (links: { [key: string]: string }): Response => {\n let link = res.getHeader('Link') || ''\n if (link) link += ', '\n res.setHeader(\n 'Link',\n link +\n Object.keys(links)\n .map((rel) => '<' + links[rel] + '>; rel=\"' + rel + '\"')\n .join(', ')\n )\n\n return res\n }\n\nexport const setVaryHeader =\n <Response extends Res = Res>(res: Response) =>\n (field: string): Response => {\n vary(res, field)\n\n return res\n }\n\nexport const setContentType =\n <Response extends Res = Res>(res: Response) =>\n (type: string): Response => {\n const ct = type.indexOf('/') === -1 ? mime.getType(type) : type\n\n setHeader(res)('Content-Type', ct)\n\n return res\n }\n","import { ServerResponse as Res } from 'node:http'\nimport { getResponseHeader, setHeader } from './headers.js'\n\nexport const append =\n <Response extends Res = Res>(res: Response) =>\n (field: string, value: string | number | string[]): Response => {\n const prevVal = getResponseHeader(res)(field)\n let newVal = value\n\n if (prevVal && typeof newVal !== 'number' && typeof prevVal !== 'number') {\n newVal = Array.isArray(prevVal)\n ? prevVal.concat(newVal)\n : Array.isArray(newVal)\n ? [prevVal].concat(newVal)\n : [prevVal, newVal]\n }\n setHeader(res)(field, newVal)\n return res\n }\n","import { IncomingMessage as Req, ServerResponse as Res } from 'node:http'\nimport * as cookie from '@tinyhttp/cookie'\nimport { sign } from '@tinyhttp/cookie-signature'\nimport { append } from './append.js'\n\nexport const setCookie =\n <Request extends Req = Req, Response extends Res = Res>(\n req: Request & {\n secret?: string | string[]\n },\n res: Response\n ) =>\n (\n name: string,\n value: string | Record<string, unknown>,\n options: cookie.SerializeOptions &\n Partial<{\n signed: boolean\n }> = {}\n ): Response => {\n const secret = req.secret as string\n\n const