MCPcopy Create free account
hub / github.com/CommE2E/comm / parseMessageSQLResult

Function parseMessageSQLResult

keyserver/src/fetchers/message-fetchers.js:160–195  ·  view source on GitHub ↗
(
  rows: $ReadOnlyArray<MessageSQLResultRow>,
  derivedMessages: $ReadOnlyMap<
    string,
    RawComposableMessageInfo | RawRobotextMessageInfo,
  >,
  viewer?: Viewer,
)

Source from the content-addressed store, hash-verified

158 +rows: $ReadOnlyArray<MessageSQLResultRow>,
159}>;
160function parseMessageSQLResult(
161 rows: $ReadOnlyArray<MessageSQLResultRow>,
162 derivedMessages: $ReadOnlyMap<
163 string,
164 RawComposableMessageInfo | RawRobotextMessageInfo,
165 >,
166 viewer?: Viewer,
167): MessageSQLResult {
168 const rowsByID = new Map<string, Array<MessageSQLResultRow>>();
169 for (const row of rows) {
170 if (!row.id) {
171 continue;
172 }
173 const id = row.id.toString();
174 const currentRowsForID = rowsByID.get(id);
175 if (currentRowsForID) {
176 currentRowsForID.push(row);
177 } else {
178 rowsByID.set(id, [row]);
179 }
180 }
181
182 const messages = [];
183 for (const messageRows of rowsByID.values()) {
184 const rawMessageInfo = rawMessageInfoFromRows(
185 messageRows,
186 viewer,
187 derivedMessages,
188 );
189 if (rawMessageInfo) {
190 messages.push({ rawMessageInfo, rows: messageRows });
191 }
192 }
193
194 return messages;
195}
196
197function assertSingleRow(rows: $ReadOnlyArray<Object>): Object {
198 if (rows.length === 0) {

Callers 6

fetchCollapsableNotifsFunction · 0.85
fetchMessageInfosFunction · 0.85
fetchMessageInfosSinceFunction · 0.85
fetchDerivedMessagesFunction · 0.85
fetchRelatedMessagesFunction · 0.85

Calls 6

rawMessageInfoFromRowsFunction · 0.85
pushMethod · 0.80
toStringMethod · 0.65
getMethod · 0.65
valuesMethod · 0.65
setMethod · 0.45

Tested by

no test coverage detected