@fabriktor/fx 0.0.52 → 0.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/chat/chat.d.ts +0 -1
- package/dist/src/chat/chat.js +27 -27
- package/package.json +2 -2
package/dist/src/chat/chat.d.ts
CHANGED
|
@@ -136,7 +136,6 @@ export declare class ChatFX implements ChatFXOperator {
|
|
|
136
136
|
reactUploadedChat(opts: ReactUploadedChatOptions): Promise<void>;
|
|
137
137
|
private openChatRoomConnections;
|
|
138
138
|
private openGlobalChatRoomsConnection;
|
|
139
|
-
private allChatRoomMembers;
|
|
140
139
|
private findUser;
|
|
141
140
|
private findChat;
|
|
142
141
|
}
|
package/dist/src/chat/chat.js
CHANGED
|
@@ -119,22 +119,37 @@ export class ChatFX {
|
|
|
119
119
|
const roomIDs = [
|
|
120
120
|
...new Set(opts.chat_room_ids.map((id) => id.trim())),
|
|
121
121
|
].filter((id) => id !== "");
|
|
122
|
-
|
|
122
|
+
if (roomIDs.length === 0) {
|
|
123
|
+
return {};
|
|
124
|
+
}
|
|
125
|
+
const result = await this.chat.queryChatRoomMembers({
|
|
126
|
+
query: {
|
|
127
|
+
chat_room_id: roomIDs,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const members = result.value ?? [];
|
|
131
|
+
const membersByRoom = new Map(roomIDs.map((id) => [id, []]));
|
|
132
|
+
for (const member of members) {
|
|
133
|
+
membersByRoom.get(member.chat_room_id)?.push(member);
|
|
134
|
+
}
|
|
123
135
|
const ownerIDs = [
|
|
124
|
-
...new Set(
|
|
136
|
+
...new Set(members.map((member) => member.owner_id)),
|
|
125
137
|
];
|
|
126
138
|
const userResults = await Promise.allSettled(ownerIDs.map(async (id) => [id, await this.findUser(id)]));
|
|
127
139
|
const usersByID = new Map(userResults.flatMap((result) => result.status === "fulfilled" ? [result.value] : []));
|
|
128
|
-
return Object.fromEntries(
|
|
129
|
-
chatRoomID
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
return Object.fromEntries(roomIDs.map((chatRoomID) => {
|
|
141
|
+
const roomMembers = membersByRoom.get(chatRoomID) ?? [];
|
|
142
|
+
return [
|
|
143
|
+
chatRoomID,
|
|
144
|
+
{
|
|
145
|
+
members: roomMembers,
|
|
146
|
+
users: roomMembers.flatMap((member) => {
|
|
147
|
+
const user = usersByID.get(member.owner_id);
|
|
148
|
+
return user ? [user] : [];
|
|
149
|
+
}),
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
}));
|
|
138
153
|
}
|
|
139
154
|
async openChatRoom(opts) {
|
|
140
155
|
const latest = await this.latestChats({
|
|
@@ -397,21 +412,6 @@ export class ChatFX {
|
|
|
397
412
|
},
|
|
398
413
|
};
|
|
399
414
|
}
|
|
400
|
-
async allChatRoomMembers(chatRoomID) {
|
|
401
|
-
const out = [];
|
|
402
|
-
let page = 1;
|
|
403
|
-
for (;;) {
|
|
404
|
-
const next = await this.searchChatRoomMembers({
|
|
405
|
-
chat_room_id: chatRoomID,
|
|
406
|
-
page,
|
|
407
|
-
});
|
|
408
|
-
out.push(...next.results);
|
|
409
|
-
if (next.done) {
|
|
410
|
-
return out;
|
|
411
|
-
}
|
|
412
|
-
page = next.next_page;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
415
|
async findUser(id) {
|
|
416
416
|
const out = await this.users.findOneUser({ id });
|
|
417
417
|
const user = out.value;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fabriktor/fx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"typescript": "^6.0.3"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@fabriktor/client": "0.0.
|
|
20
|
+
"@fabriktor/client": "0.0.52",
|
|
21
21
|
"@fabriktor/schema": "0.0.34"
|
|
22
22
|
}
|
|
23
23
|
}
|