MCPcopy Create free account
hub / github.com/denoland/std / stringify

Function stringify

http/server_sent_event_stream.ts:38–68  ·  view source on GitHub ↗

* Converts a server-sent message object into a string for the client. * * @see https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format

(message: ServerSentEventMessage)

Source from the content-addressed store, hash-verified

36 * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format}
37 */
38function stringify(message: ServerSentEventMessage): Uint8Array {
39 const lines = [];
40 if (message.comment !== undefined) {
41 message.comment.split(NEWLINE_REGEXP).forEach((line) =>
42 lines.push(`:${line}`)
43 );
44 }
45 if (message.event !== undefined) {
46 assertHasNoNewline(
47 message.event,
48 "`message.event`",
49 "Cannot serialize message",
50 );
51 lines.push(`event:${message.event}`);
52 }
53 if (message.data !== undefined) {
54 message.data.split(NEWLINE_REGEXP).forEach((line) =>
55 lines.push(`data:${line}`)
56 );
57 }
58 if (message.id !== undefined) {
59 assertHasNoNewline(
60 message.id.toString(),
61 "`message.id`",
62 "Cannot serialize message",
63 );
64 lines.push(`id:${message.id}`);
65 }
66 if (message.retry !== undefined) lines.push(`retry:${message.retry}`);
67 return encoder.encode(lines.join("\n") + "\n\n");
68}
69
70/**
71 * Transforms server-sent message objects into strings for the client.

Callers 1

constructorMethod · 0.70

Calls 4

assertHasNoNewlineFunction · 0.85
forEachMethod · 0.80
pushMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected