Skip to content

Commit

Permalink
wip typing overhaul
Browse files Browse the repository at this point in the history
  • Loading branch information
eksno committed Feb 29, 2024
1 parent 4a6543a commit f45d7dd
Show file tree
Hide file tree
Showing 12 changed files with 95 additions and 217 deletions.
9 changes: 0 additions & 9 deletions apps/aitino/src/lib/models.ts

This file was deleted.

34 changes: 29 additions & 5 deletions apps/aitino/src/lib/server/db.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { supabase } from "$lib/supabase";
import type { TablesInsert } from "$lib/supabase.types";
import type { TablesInsert } from "$lib/types/supabase";
import { error } from "@sveltejs/kit";
import type { Maeve } from "$lib/types/models";
import { getNodesCount } from "$lib/utils.js";

export async function getMessages(session_id: string | null) {
if (!session_id) {
Expand All @@ -21,11 +23,33 @@ export async function getMessages(session_id: string | null) {
return data;
}

export async function postMaeve(data: TablesInsert<"maeve_nodes">) {
export async function postMaeve(data: TablesInsert<"maeves">) {
localStorage.setItem("currentMeaveId", data.id);
return supabase.from("maeve_nodes").upsert(data);
return supabase.from("maeves").upsert(data);
}

export async function getMaeve(userId: string) {
return await supabase.from("maeve_nodes").select("*").eq("user_id", userId);
export async function getMaeves(userId: string) {
const { data: data, error: err } = await supabase
.from("maeves")
.select("*")
.eq("user_id", userId);

let maeves: Maeve[] = [];

if (err) {
return maeves;
}

if (data.length === 0) {
return maeves;
}

for (let i = 0; i < data.length; i++) {
const maeve = data[i] as Maeve;
maeve.count = getNodesCount(maeve.nodes);

maeves = [...maeves, maeve];
}

return maeves;
}
2 changes: 1 addition & 1 deletion apps/aitino/src/lib/supabase.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createClient } from "@supabase/supabase-js";
import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from "$env/static/public";

import type { Database } from "$lib/supabase.types";
import type { Database } from "$lib/types/supabase";

export const supabase = createClient<Database>(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY);
169 changes: 0 additions & 169 deletions apps/aitino/src/lib/supabase.types.ts

This file was deleted.

4 changes: 2 additions & 2 deletions apps/aitino/src/lib/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import type { Node } from "@xyflow/svelte";
import type { Writable } from "svelte/store";

import type { Variant } from "$lib/components/ui/button";
import type { Tables } from "$lib/supabase.types";
import type { Tables } from "$lib/types/supabase";

export type Maeve = Tables<"maeve_nodes">;
export type Maeve = Tables<"maeves">;

export type SvelteEvent<E extends Event = Event, T extends EventTarget = Element> = E & {
currentTarget: EventTarget & T;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
// Contains types for +page.server.ts files data properties

import * as models from "./models";
import * as models from "$lib/types/models";

export type SessionLoad = {
maeveId: string | null;
sessionId: string | null;
messages: models.Message[];
reply: string;
};

export type MaeveLoad = {
maeve: models.Maeve;
};
29 changes: 29 additions & 0 deletions apps/aitino/src/lib/types/models.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import type { Edge, Node } from "@xyflow/svelte";

export type Message = {
id: string;
session_id: string;
recipient: string;
content: string;
role: string;
name: string;
created_at: string;
};

export type Maeve = {
id: string;
profile_id: string;
reciever_id: string;
title: string;
description: string;
nodes: Node[];
edges: Edge[];
created_at: string;
};

export type Session = {
id: string;
maeve_id: string;
user_id: string;
created_at: string;
};
Empty file.
41 changes: 17 additions & 24 deletions apps/aitino/src/routes/app/editors/maeve/+page.server.ts
Original file line number Diff line number Diff line change
@@ -1,35 +1,28 @@
import type { Edge, Node } from "@xyflow/svelte";

import * as db from "$lib/server/db";
import { getNodesCount } from "$lib/utils.js";
import type { MaeveLoad } from "$lib/types/loads";
import { error } from "@sveltejs/kit";

export const load = async ({ locals: { userId } }) => {
const { data, error: err } = await db.getMaeve(userId);
if (err) {
throw error(500, "Failed attempt at retrieving maeve. Please reload the page.");
}

if (data.length === 0) {
return {
user_id: userId,
title: "Untitled maeve",
description: "No description",
const data: MaeveLoad = {
maeve: {
id: "",
profile_id: userId,
reciever_id: "",
title: "",
description: "",
nodes: [],
edges: [],
count: {
agents: 0,
prompts: 0
}
};
}
created_at: ""
}
};

const nodes = data[0].nodes as Node[];
const maeves = await db.getMaeves(userId);

return {
...data[0],
nodes,
edges: data[0].edges as Edge[],
count: getNodesCount(nodes)
};
if (maeves.length !== 0) {
data.maeve = maeves[0];
}

return data;
};
15 changes: 10 additions & 5 deletions apps/aitino/src/routes/app/sessions/+page.server.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
import * as db from "$lib/server/db";
import type { SessionLoad } from "$lib/loads";
import type { SessionLoad } from "$lib/types/loads";

export const load = async () => {
export const load = async ({ locals: { userId } }) => {
const data: SessionLoad = {
maeveId: localStorage.getItem("maeveId"),
sessionId: localStorage.getItem("sessionId"),
maeveId: null,
sessionId: null,
messages: [],
reply: localStorage.getItem("currentReply") || ""
reply: ""
};

const maeves = await db.getMaeves(userId);
if (maeves.length === 0) {
return data;
}
data.maeveId = maeves[0].id;
data.messages = await db.getMessages(data.sessionId);
};
2 changes: 1 addition & 1 deletion apps/aitino/src/routes/app/sessions/Message.svelte
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script lang="ts">
import { User } from "lucide-svelte";
import SvelteMarkdown from "svelte-markdown";
import * as models from "$lib/models";
import * as models from "$lib/types/models";
export let message: models.Message;
function formatName(inputString: string): string {
return inputString
Expand Down
1 change: 1 addition & 0 deletions apps/aitino/update-supabase-types.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pnpm dlx supabase gen types typescript --project-id "$PROJECT_REF" --schema public >src/lib/types/supabase.ts

0 comments on commit f45d7dd

Please sign in to comment.