MCPcopy Create free account
hub / github.com/avoidwork/tenso / serialize

Function serialize

src/utils/serialize.js:15–42  ·  view source on GitHub ↗
(req, res, arg)

Source from the content-addressed store, hash-verified

13 * @returns {*} The serialized data
14 */
15export function serialize (req, res, arg) {
16 const status = res.statusCode;
17 let format = req.server.mimeType,
18 accepts = explode(req.parsed.searchParams.get(FORMAT) || req.headers.accept || res.getHeader(HEADER_CONTENT_TYPE) || format, COMMA),
19 errz = arg instanceof Error || status >= INT_400,
20 result, serializer;
21
22 for (const i of accepts) {
23 let mimetype = i.replace(regex, EMPTY);
24
25 if (serializers.has(mimetype)) {
26 format = mimetype;
27 break;
28 }
29 }
30
31 serializer = serializers.get(format);
32 res.removeHeader(HEADER_CONTENT_TYPE);
33 res.header(HEADER_CONTENT_TYPE, `${format}${CHARSET_UTF8}`);
34
35 if (errz) {
36 result = serializer(null, arg, status < INT_400 ? INT_500 : status, req.server.logging.stackWire);
37 } else {
38 result = serializer(sort(arg, req), null, status);
39 }
40
41 return result;
42}

Callers 1

Calls 4

explodeFunction · 0.90
sortFunction · 0.90
removeHeaderMethod · 0.80
headerMethod · 0.80

Tested by

no test coverage detected