setup prisma<>sqlite
This commit is contained in:
17
src/db.ts
17
src/db.ts
@@ -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
4
src/db/Games.ts
Normal 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
6
src/db/Instances.ts
Normal 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
5
src/db/db.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
"use server";
|
||||
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
|
||||
export const prisma = new PrismaClient();
|
||||
@@ -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()));
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user