小橘 252162ea8e refactor: pure sense compute — return data instead of db.insert
All 5 senses updated to new API:
- compute(signal: AbortSignal) => Promise<T | null>
- Export table for runtime-side insert
- Remove drizzle-orm/libsql imports

Refs uncaged/nerve#264

— 小橘 🍊(NEKO Team)
2026-04-30 00:15:03 +00:00

38 lines
949 B
JavaScript

// src/schema.ts
import { integer, real, sqliteTable } from "drizzle-orm/sqlite-core";
var workerProcessMetrics = sqliteTable("worker_process_metrics", {
ts: integer("ts").primaryKey(),
pid: integer("pid").notNull(),
uptimeSec: real("uptime_sec").notNull(),
heapUsedMB: real("heap_used_mb").notNull(),
rssMB: real("rss_mb").notNull(),
externalMB: real("external_mb").notNull()
});
// src/index.ts
function round2(n) {
return Math.round(n * 100) / 100;
}
async function compute(_signal) {
const ts = Date.now();
const pid = process.pid;
const uptimeSec = process.uptime();
const m = process.memoryUsage();
const heapUsedMB = round2(m.heapUsed / 1024 / 1024);
const rssMB = round2(m.rss / 1024 / 1024);
const externalMB = round2(m.external / 1024 / 1024);
const row = {
ts,
pid,
uptimeSec,
heapUsedMB,
rssMB,
externalMB
};
return row;
}
export {
compute,
workerProcessMetrics as table
};