Compare commits

...

1 Commits

Author SHA1 Message Date
octoturge 70f299295d Replace em dashes with hyphens across docs and comments 2026-08-29 08:13:54 +00:00
3 changed files with 7 additions and 7 deletions
+4 -4
View File
@@ -14,16 +14,16 @@ bun run dev
## Layout ## Layout
- `src/db/` Drizzle schema (`printers`, `farms`, `print_jobs`, `frame_embeddings`) - `src/db/` - Drizzle schema (`printers`, `farms`, `print_jobs`, `frame_embeddings`)
and client, pointed at pgCat. `src/db/validators.ts` derives Elysia/TypeBox and client, pointed at pgCat. `src/db/validators.ts` derives Elysia/TypeBox
request validators straight from the Drizzle tables via `drizzle-typebox`, request validators straight from the Drizzle tables via `drizzle-typebox`,
so the Postgres schema and the API validators come from one definition so the Postgres schema and the API validators come from one definition
instead of two hand-synced ones. instead of two hand-synced ones.
- `src/s3/` R2 presigned URL helpers (`PUT` for client uploads, `GET` for the - `src/s3/` - R2 presigned URL helpers (`PUT` for client uploads, `GET` for the
edge proxy). edge proxy).
- `src/queue/` Redis client + `XADD` helper pushing onto `stream:camera_frames` - `src/queue/` - Redis client + `XADD` helper pushing onto `stream:camera_frames`
for `continuum-ai-worker`. for `continuum-ai-worker`.
- `src/routes/` `/auth`, `/farms`, `/printers`, `/jobs`, and the edge-gateway - `src/routes/` - `/auth`, `/farms`, `/printers`, `/jobs`, and the edge-gateway
WebSocket at `/ws/edge/v1`. WebSocket at `/ws/edge/v1`.
`frame_embeddings.embedding` requires the `vector` extension: `frame_embeddings.embedding` requires the `vector` extension:
+2 -2
View File
@@ -2,14 +2,14 @@ import { createInsertSchema, createSelectSchema } from "drizzle-typebox";
import { t } from "elysia"; import { t } from "elysia";
import { printers, printJobs } from "./schema"; import { printers, printJobs } from "./schema";
// Generated straight from the Drizzle table definitions in `./schema` this // Generated straight from the Drizzle table definitions in `./schema` - this
// is the *only* place these shapes are defined. The Postgres column and the // is the *only* place these shapes are defined. The Postgres column and the
// Elysia request/response validator can no longer drift apart: change a // Elysia request/response validator can no longer drift apart: change a
// column in `./schema/printers.ts` and both the DB migration and the API // column in `./schema/printers.ts` and both the DB migration and the API
// validator below pick it up automatically. // validator below pick it up automatically.
// //
// The second argument overrides fields Drizzle can't infer correctly for an // The second argument overrides fields Drizzle can't infer correctly for an
// insert `id` is DB-generated (defaultRandom()) so it must be optional on // insert - `id` is DB-generated (defaultRandom()) so it must be optional on
// the way in, even though it's required on the way out. // the way in, even though it's required on the way out.
export const PrinterInsertSchema = createInsertSchema(printers, { export const PrinterInsertSchema = createInsertSchema(printers, {
id: t.Optional(t.String({ format: "uuid" })), id: t.Optional(t.String({ format: "uuid" })),
+1 -1
View File
@@ -29,7 +29,7 @@ export const printerRoutes = new Elysia({ prefix: "/printers" })
set.status = 201; set.status = 201;
return printer; return printer;
}, },
// Derived from `printers` via drizzle-typebox see src/db/validators.ts. // Derived from `printers` via drizzle-typebox - see src/db/validators.ts.
// Add or rename a column in the schema and this validator updates itself. // Add or rename a column in the schema and this validator updates itself.
{ body: PrinterInsertSchema }, { body: PrinterInsertSchema },
); );