From fcc1bce4b14c94b97f96065c960dfb5cc13516a9 Mon Sep 17 00:00:00 2001 From: cte Date: Wed, 19 Mar 2025 23:20:07 -0700 Subject: [PATCH] More progress --- benchmark/packages/cli/src/index.ts | 1 - benchmark/packages/db/src/db.ts | 2 +- benchmark/packages/db/src/index.ts | 16 +++++++++------- benchmark/packages/db/src/queries/errors.ts | 2 ++ benchmark/packages/db/src/queries/runs.ts | 14 ++++++++++---- benchmark/packages/db/src/queries/tasks.ts | 16 +++++++++++----- benchmark/packages/db/src/schema.ts | 2 +- benchmark/packages/ipc/src/ipcClient.ts | 10 +++++----- benchmark/packages/ipc/src/ipcServer.ts | 2 +- .../packages/ipc/src/{schemas.ts => types.ts} | 0 10 files changed, 40 insertions(+), 25 deletions(-) rename benchmark/packages/ipc/src/{schemas.ts => types.ts} (100%) diff --git a/benchmark/packages/cli/src/index.ts b/benchmark/packages/cli/src/index.ts index f5e09d1f80..c97fbb2c34 100644 --- a/benchmark/packages/cli/src/index.ts +++ b/benchmark/packages/cli/src/index.ts @@ -81,7 +81,6 @@ const runExercise = async ({ run, language, exercise }: { run: Run; language: La } console.log(`Running ${language} / ${exercise}`) - return true await runTests({ extensionDevelopmentPath, diff --git a/benchmark/packages/db/src/db.ts b/benchmark/packages/db/src/db.ts index 357af93987..8a0ed1e2e4 100644 --- a/benchmark/packages/db/src/db.ts +++ b/benchmark/packages/db/src/db.ts @@ -1,6 +1,6 @@ import { drizzle } from "drizzle-orm/libsql" -import { schema } from "./schema" +import { schema } from "./schema.js" export const db = drizzle({ schema, diff --git a/benchmark/packages/db/src/index.ts b/benchmark/packages/db/src/index.ts index 1ad559e594..980e881b6a 100644 --- a/benchmark/packages/db/src/index.ts +++ b/benchmark/packages/db/src/index.ts @@ -1,15 +1,17 @@ -export { db } from "./db" -export { type Language, languages } from "./enums" -export { schema } from "./schema" +export { db } from "./db.js" +export { type Language, languages } from "./enums.js" +export { schema } from "./schema.js" /** * runs */ -export { type Run, insertRunSchema } from "./schema" -export { findRun, createRun, getRuns } from "./queries/runs" + +export { type Run, insertRunSchema } from "./schema.js" +export { findRun, createRun, getRuns } from "./queries/runs.js" /** * tasks */ -export { type Task, insertTaskSchema } from "./schema" -export { findTask, createTask, getTask } from "./queries/tasks" + +export { type Task, insertTaskSchema } from "./schema.js" +export { findTask, createTask, getTask } from "./queries/tasks.js" diff --git a/benchmark/packages/db/src/queries/errors.ts b/benchmark/packages/db/src/queries/errors.ts index e1c9cb13d5..38ff8e2790 100644 --- a/benchmark/packages/db/src/queries/errors.ts +++ b/benchmark/packages/db/src/queries/errors.ts @@ -1 +1,3 @@ export class RecordNotFoundError extends Error {} + +export class RecordNotCreatedError extends Error {} diff --git a/benchmark/packages/db/src/queries/runs.ts b/benchmark/packages/db/src/queries/runs.ts index c303c76de0..8f4dd17ff5 100644 --- a/benchmark/packages/db/src/queries/runs.ts +++ b/benchmark/packages/db/src/queries/runs.ts @@ -1,9 +1,9 @@ import { desc, eq, sql } from "drizzle-orm" -import { db } from "../db" -import { InsertRun, insertRunSchema, runs, tasks } from "../schema" +import { db } from "../db.js" +import { type InsertRun, insertRunSchema, runs, tasks } from "../schema.js" -import { RecordNotFoundError } from "./errors" +import { RecordNotFoundError, RecordNotCreatedError } from "./errors.js" export const findRun = async (id: number) => { const run = await db.query.runs.findFirst({ where: eq(runs.id, id) }) @@ -24,7 +24,13 @@ export const createRun = async (args: InsertRun) => { }) .returning() - return result[0] + const run = result[0] + + if (!run) { + throw new RecordNotCreatedError() + } + + return run } export const getRuns = () => diff --git a/benchmark/packages/db/src/queries/tasks.ts b/benchmark/packages/db/src/queries/tasks.ts index 44655e5968..76e03c00dc 100644 --- a/benchmark/packages/db/src/queries/tasks.ts +++ b/benchmark/packages/db/src/queries/tasks.ts @@ -1,10 +1,10 @@ import { and, eq } from "drizzle-orm" -import { db } from "../db" -import { InsertTask, insertTaskSchema, tasks } from "../schema" +import { db } from "../db.js" +import { type InsertTask, insertTaskSchema, tasks } from "../schema.js" -import { RecordNotFoundError } from "./errors" -import { Language } from "../enums" +import { type Language } from "../enums.js" +import { RecordNotFoundError, RecordNotCreatedError } from "./errors.js" export const findTask = async (id: number) => { const run = await db.query.tasks.findFirst({ where: eq(tasks.id, id) }) @@ -25,7 +25,13 @@ export const createTask = async (args: InsertTask) => { }) .returning() - return result[0] + const task = result[0] + + if (!task) { + throw new RecordNotCreatedError() + } + + return task } export const getTask = async ({ runId, language, exercise }: { runId: number; language: Language; exercise: string }) => diff --git a/benchmark/packages/db/src/schema.ts b/benchmark/packages/db/src/schema.ts index b02aa94c15..d93d95ada1 100644 --- a/benchmark/packages/db/src/schema.ts +++ b/benchmark/packages/db/src/schema.ts @@ -3,7 +3,7 @@ import * as t from "drizzle-orm/sqlite-core" import { createInsertSchema } from "drizzle-zod" import { z } from "zod" -import { languages } from "./enums" +import { languages } from "./enums.js" /** * runs diff --git a/benchmark/packages/ipc/src/ipcClient.ts b/benchmark/packages/ipc/src/ipcClient.ts index c30fa3d775..04c9b76a63 100644 --- a/benchmark/packages/ipc/src/ipcClient.ts +++ b/benchmark/packages/ipc/src/ipcClient.ts @@ -1,6 +1,6 @@ import ipc from "node-ipc" -import { ClientMessage, ClientMessageType, ServerMessageType, serverMessageSchema } from "./schemas" +import { ClientMessage, ClientMessageType, ServerMessageType, serverMessageSchema } from "./types.js" export class IpcClient { private readonly _socketPath: string @@ -15,9 +15,9 @@ export class IpcClient { ipc.config.silent = true ipc.connectTo("benchmarkServer", this.socketPath, () => { - ipc.of.benchmarkServer.on("connect", (args) => this.onConnect(args)) - ipc.of.benchmarkServer.on("message", (data) => this.onMessage(data)) - ipc.of.benchmarkServer.on("disconnect", (args) => this.onDisconnect(args)) + ipc.of.benchmarkServer?.on("connect", (args) => this.onConnect(args)) + ipc.of.benchmarkServer?.on("message", (data) => this.onMessage(data)) + ipc.of.benchmarkServer?.on("disconnect", (args) => this.onDisconnect(args)) }) } @@ -58,7 +58,7 @@ export class IpcClient { } public sendMessage(message: ClientMessage) { - ipc.of.benchmarkServer.emit("message", message) + ipc.of.benchmarkServer?.emit("message", message) } public ping() { diff --git a/benchmark/packages/ipc/src/ipcServer.ts b/benchmark/packages/ipc/src/ipcServer.ts index ee3555b5ef..0defba5676 100644 --- a/benchmark/packages/ipc/src/ipcServer.ts +++ b/benchmark/packages/ipc/src/ipcServer.ts @@ -4,7 +4,7 @@ import * as os from "node:os" import * as path from "node:path" import * as crypto from "node:crypto" -import { ClientMessageType, ServerMessage, ServerMessageType, clientMessageSchema } from "./schemas" +import { ClientMessageType, ServerMessage, ServerMessageType, clientMessageSchema } from "./types.js" export class IpcServer { private _isListening = false diff --git a/benchmark/packages/ipc/src/schemas.ts b/benchmark/packages/ipc/src/types.ts similarity index 100% rename from benchmark/packages/ipc/src/schemas.ts rename to benchmark/packages/ipc/src/types.ts