Skip to content

Commit 63de6a4

Browse files
committed
fix: ensuring indexeddb is passed only raw objects
1 parent c953f67 commit 63de6a4

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

app/utils/db/local.ts

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,26 +100,15 @@ export const localDb = new ChatDatabase();
100100
export async function dbCreateMessage(message: LocalMessage | LocalMessage[]) {
101101
try {
102102
// Create a serializable version of the message by creating a fresh object
103-
const prepareMessageForStorage = (msg: LocalMessage): LocalMessage => {
104-
const preparedMessage = { ...msg };
105-
106-
if (preparedMessage.files && preparedMessage.files.length > 0) {
107-
preparedMessage.files = preparedMessage.files.map((file) => ({
108-
name: file.name,
109-
type: file.type,
110-
size: file.size,
111-
text: file.text,
112-
}));
113-
}
114-
115-
return preparedMessage;
103+
const prepare = (msg: LocalMessage): LocalMessage => {
104+
return JSON.parse(JSON.stringify(msg)) as LocalMessage;
116105
};
117106

118107
if (Array.isArray(message)) {
119-
const preparedMessages = message.map(prepareMessageForStorage);
108+
const preparedMessages = message.map(prepare);
120109
await localDb.messagesTable.bulkPut(preparedMessages);
121110
} else {
122-
const preparedMessage = prepareMessageForStorage(message);
111+
const preparedMessage = prepare(message);
123112
await localDb.messagesTable.put(preparedMessage);
124113
}
125114
} catch (error) {

0 commit comments

Comments
 (0)