setup prisma<>sqlite

This commit is contained in:
2025-08-05 19:31:41 -04:00
parent 5fd0df8135
commit 0263ee9a4f
15 changed files with 266 additions and 95 deletions

View File

@@ -1,17 +0,0 @@
"use server";
import { Database } from "arangojs";
import { GameState, newGame } from "./types/cards";
import { AqlQuery } from "arangojs/aql";
const db = new Database({
url: "http://localhost:8529",
auth: {
username: "root",
password: "pass",
},
databaseName: "prod",
});
export const query = async <T>(q: AqlQuery<T>) =>
await db.query(q).then((c) => c.all());

4
src/db/Games.ts Normal file
View File

@@ -0,0 +1,4 @@
"use server";
import { prisma } from "./db";
export const queryAll = async () => await prisma.game.findMany();

6
src/db/Instances.ts Normal file
View File

@@ -0,0 +1,6 @@
"use server";
import { prisma } from "./db";
export const queryInstances = async (gameName: string) =>
await prisma.instance.findMany({ where: { game: { name: gameName } } });

5
src/db/db.ts Normal file
View File

@@ -0,0 +1,5 @@
"use server";
import { PrismaClient } from "@prisma/client";
export const prisma = new PrismaClient();

View File

@@ -1,24 +1,16 @@
import { A, useParams } from "@solidjs/router";
import { createEffect, createResource, For, Suspense } from "solid-js";
import { query } from "../../db";
import { aql } from "arangojs";
import * as Instance from "../../db/Instances";
export default () => {
const params = useParams();
const params = useParams<{ game: string }>();
createEffect(() => {
console.log(">>", params.game);
});
const [instances] = createResource(
() => params.game,
() =>
query<{ _id: string }>(
aql`
FOR i IN instances
FILTER i.name == ${params.game}
RETURN i
`
)
() => Instance.queryInstances(params.game)
);
createEffect(() => console.log(instances()));

View File

@@ -1,15 +1,12 @@
import { A } from "@solidjs/router";
import { For } from "solid-js";
import { createResource, For } from "solid-js";
import * as Games from "../db/games";
export default () => {
const games = [
{
name: "renaissance",
},
];
const [games] = createResource(() => Games.queryAll());
return (
<div style={{ padding: "20px" }}>
<For each={games}>
<For each={games()}>
{(game) => <A href={`/${game.name}`}>{game.name}</A>}
</For>
</div>