From 342d294dbc1e67b2496fc254c3c6258d7b05b7dc Mon Sep 17 00:00:00 2001 From: Ethan Niser Date: Tue, 19 Sep 2023 23:34:03 -0500 Subject: [PATCH] idek just sync it --- bun.lockb | Bin 138501 -> 140777 bytes package.json | 9 +-- src/auth/index.ts | 2 +- src/config/index.ts | 3 +- src/context/index.ts | 7 ++- src/controllers/*.ts | 1 + src/controllers/todos.tsx | 1 + src/db/index.ts | 15 +++-- src/main.ts | 7 ++- src/pages/(auth)/*.ts | 4 +- src/pages/(auth)/profile.tsx | 4 +- src/pages/*.ts | 6 +- src/pages/index.tsx | 106 ++++++----------------------------- 13 files changed, 59 insertions(+), 106 deletions(-) diff --git a/bun.lockb b/bun.lockb index 078b581cf8c5ab26a490b02269236d67506e8264..c9fb5709c24f4cd6bca1a21c15607cab7e5b43d7 100755 GIT binary patch delta 26883 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 cvaeG5e%5xY{Qp#T5? delta 26100 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 db) .decorate("config", config) .decorate("auth", auth); -// .onStart(({ log }) => log.info("Server starting")) +// .onStart(({ log }) => log.info("Server starting")); // .onStop(({ log }) => log.info("Server stopping")) // .onRequest(({ log, request }) => { // log.debug(`Request received: ${request.method}: ${request.url}`); diff --git a/src/controllers/*.ts b/src/controllers/*.ts index 5244082..e4959bc 100644 --- a/src/controllers/*.ts +++ b/src/controllers/*.ts @@ -5,5 +5,6 @@ import { todosController } from "./todos"; export const api = new Elysia({ prefix: "/api", + name: "@controllers", }).use(todosController); // .use(authController); diff --git a/src/controllers/todos.tsx b/src/controllers/todos.tsx index be5abe3..70a1128 100644 --- a/src/controllers/todos.tsx +++ b/src/controllers/todos.tsx @@ -7,6 +7,7 @@ import { insertTodoSchema, todos } from "../db/schema/todos"; export const todosController = new Elysia({ prefix: "/todos", + name: "@controllers/todos", }) .use(ctx) .get("/", async () => { diff --git a/src/db/index.ts b/src/db/index.ts index 2670fee..a02e4e2 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -3,12 +3,19 @@ import { drizzle } from "drizzle-orm/libsql"; import { config } from "../config"; import * as schema from "./schema"; -export const client = createClient({ +const remoteOptions = { url: config.env.DATABASE_URL, authToken: config.env.DATABASE_AUTH_TOKEN, - // syncUrl: config.env.SYNC_URL, -}); +}; -// if (config.env.SYNC_URL) await client.sync(); +// const localOptions = { +// url: "file:local.sqlite", +// authToken: config.env.DATABASE_AUTH_TOKEN, +// syncUrl: config.env.DATABASE_URL, +// }; + +export const client = createClient(remoteOptions); + +// await client.sync(); export const db = drizzle(client, { schema, logger: true }); diff --git a/src/main.ts b/src/main.ts index 010f4f8..6df42fd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,12 +1,15 @@ -// import { swagger } from "@elysiajs/swagger"; import { staticPlugin } from "@elysiajs/static"; +// import { swagger } from "@elysiajs/swagger"; import { Elysia } from "elysia"; import { config } from "./config"; import { api } from "./controllers/*"; import { pages } from "./pages/*"; -const app = new Elysia() +const app = new Elysia({ + name: "@app/app", +}) // .use(swagger()) + //@ts-expect-error .use(staticPlugin()) .use(api) .use(pages) diff --git a/src/pages/(auth)/*.ts b/src/pages/(auth)/*.ts index e8e688a..6fb43f0 100644 --- a/src/pages/(auth)/*.ts +++ b/src/pages/(auth)/*.ts @@ -4,6 +4,8 @@ import { profile } from "./profile"; // import { signin } from "./signin"; -export const authGroup = new Elysia() +export const authGroup = new Elysia({ + name: "@pages/auth/root", +}) // .use(signup).use(signin) .use(profile); diff --git a/src/pages/(auth)/profile.tsx b/src/pages/(auth)/profile.tsx index 39f9198..053c035 100644 --- a/src/pages/(auth)/profile.tsx +++ b/src/pages/(auth)/profile.tsx @@ -2,7 +2,9 @@ import Elysia from "elysia"; import { BaseHtml } from "../../components/base"; import { ctx } from "../../context"; -export const profile = new Elysia() +export const profile = new Elysia({ + name: "@pages/auth/profile", +}) .use(ctx) .get("/profile", async ({ auth, html, request }) => { const authRequest = auth.handleRequest(request); diff --git a/src/pages/*.ts b/src/pages/*.ts index 78fcf4b..e55ee39 100644 --- a/src/pages/*.ts +++ b/src/pages/*.ts @@ -2,4 +2,8 @@ import Elysia from "elysia"; import { authGroup } from "./(auth)/*"; import { index } from "./index"; -export const pages = new Elysia().use(index).use(authGroup); +export const pages = new Elysia({ + name: "@pages/root", +}) + .use(index) + .use(authGroup); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b6df504..4cb089a 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,98 +1,28 @@ -import { persistedCache, revalidateTag } from "beth-stack/cache"; -import { renderToStream, renderToString, Suspense } from "beth-stack/jsx"; import { Elysia } from "elysia"; import { BaseHtml } from "../components/base"; import { ctx } from "../context"; -const start = Date.now(); - -const getTime = async () => (Date.now() - start) / 1000; - -const cachedGetTime = persistedCache(getTime, "getTime", { - tags: ["time"], - revalidate: 2, -}); - -export const index = new Elysia() +export const index = new Elysia({ + name: "@pages/index", +}) .use(ctx) - .onRequest(({ request }) => { - const revalidate = request.headers.get("HX-Revalidate"); - if (revalidate) { - const tags = JSON.parse(revalidate); - if (!Array.isArray(tags)) { - return; - } - tags.forEach((tag) => { - if (typeof tag !== "string") { - return; - } - revalidateTag(tag); - }); - } - }) - .get("/test", async ({ html, log }) => { - log.info("test"); - const time = await cachedGetTime(); - return html(() =>

{time}

); - }) - .get("/", async ({ html }) => { + .get("/", async ({ html, db, log, config }) => { + const start = performance.now(); + // const todos = await db().query.todos.findMany(); + log.info(`query took ${performance.now() - start}ms`); + + const res = await fetch("https://api.turso.tech/v1/groups", { + headers: { + Authorization: `Bearer ${config.env.TURSO_API_TOKEN}`, + }, + }); + const json = await res.text(); + return html(() => ( -

cache revalidates every two seconds

- -
-
hot reload
-
-
- -
+

hi!

+ {/*

{JSON.stringify(todos)}

*/} +

{JSON.stringify(json)}

)); - }) - .get("/test2", async ({ htmlStream }) => { - return htmlStream(() => ); }); - -function wait(ms: number): Promise { - return new Promise((resolve) => - setTimeout(() => { - resolve(ms); - }, ms), - ); -} - -export async function Wait({ ms }: { ms: number }) { - const data = await wait(ms); - - return
loaded in: {data}ms
; -} - -const App2 = () => ( - -
-

I am sent immediately

- Loading...
}> - -
hello
- -

hey me too!

- loading 2...}> - -
hello two!
- loading 3...}> - -
hello three!
-
-
- -
-);