From 31f96ff846b951fd074217f1e59da17eeb23836d Mon Sep 17 00:00:00 2001 From: Oliver Bryan <04oliverbryan@gmail.com> Date: Mon, 8 Dec 2025 00:08:19 +0000 Subject: [PATCH] demo data --- src/index.ts | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index 21e173e..8f444c8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,29 @@ import { db, testDB } from "./db/client"; import { User } from "./db/schema"; +import { createUser, createIssue, createProject } from "./db/queries"; const DEV = process.argv.find((arg) => ["--dev", "--developer", "-d"].includes(arg.toLowerCase())) != null; -const PORT = process.argv.find((arg) => arg.toLowerCase().startsWith("--port="))?.split("=")[1] || "3500"; +const PORT = process.argv.find((arg) => arg.toLowerCase().startsWith("--port="))?.split("=")[1] || 0; + +const createDemoData = async () => { + const user = await createUser("Demo User", "demo_user"); + if (!user) { + throw new Error("failed to create demo user"); + } + + const projectNames = ["PROJ", "TEST", "SAMPLE"]; + for (const name of projectNames) { + const project = await createProject(name.slice(0, 4), name, user); + + for (let i = 1; i <= 5; i++) { + await createIssue( + project.id, + `Issue ${i} in ${name}`, + `This is a description for issue ${i} in ${name}.`, + ); + } + } +}; const main = async () => { const server = Bun.serve({ @@ -15,7 +36,15 @@ const main = async () => { console.log(`eussi (issue server) listening on ${server.url}`); await testDB(); - const users = await db.select().from(User); + let users = await db.select().from(User); + + if (DEV && users.length === 0) { + console.log("creating demo data..."); + await createDemoData(); + console.log("demo data created"); + users = await db.select().from(User); + } + console.log(`serving ${users.length} user${users.length === 1 ? "" : "s"}`); };