File size: 1,111 Bytes
5da61b4
 
 
831f161
7764421
cad3e14
831f161
cad3e14
 
831f161
82fcab7
 
 
831f161
cad3e14
 
067b52a
831f161
067b52a
cad3e14
5da61b4
cad3e14
 
 
5da61b4
cad3e14
 
5da61b4
82fcab7
 
 
 
7764421
cad3e14
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import type { LayoutServerLoad } from "./$types";
import { collections } from "$lib/server/database";
import type { Conversation } from "$lib/types/Conversation";
import { UrlDependency } from "$lib/types/UrlDependency";
import { modelNames } from "$lib/server/models";

export const load: LayoutServerLoad = async ({ locals, depends }) => {
	const { conversations } = collections;

	depends(UrlDependency.ConversationList);
	depends(UrlDependency.Settings);

	const settings = await collections.settings.findOne({ sessionId: locals.sessionId });

	return {
		conversations: await conversations
			.find({
				sessionId: locals.sessionId,
			})
			.sort({ updatedAt: -1 })
			.project<Pick<Conversation, "title" | "_id" | "updatedAt" | "createdAt">>({
				title: 1,
				_id: 1,
				updatedAt: 1,
				createdAt: 1,
			})
			.map((conv) => ({ id: conv._id.toString(), title: conv.title }))
			.toArray(),
		settings: {
			shareConversationsWithModelAuthors: settings?.shareConversationsWithModelAuthors ?? true,
			ethicsModalAcceptedAt: settings?.ethicsModalAcceptedAt ?? null,
		},
		models: modelNames,
	};
};