openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines (44 loc) • 1.43 kB
JavaScript
import { u as toStringifiedError } from "../error-coercion-D_-xJ90S.js";
import { m as setSqliteBusyTimeout, t as openNodeSqliteDatabase } from "../node-sqlite-BpQX3W0e.js";
import { t as assertSqliteIntegrity } from "../sqlite-integrity-NpEtFIdK.js";
import { n as readSqliteIntegrityFileIdentity } from "../sqlite-integrity-worker-CWVt3BRk.js";
import { parentPort, workerData } from "node:worker_threads";
//#region src/infra/sqlite-integrity.worker.ts
function nativeErrorDetails(error) {
const nativeError = error;
return {
message: error.message,
code: nativeError.code,
errcode: nativeError.errcode
};
}
const input = workerData;
let database;
let failure;
try {
readSqliteIntegrityFileIdentity(input.pathname, input.identity);
database = openNodeSqliteDatabase(input.pathname, { readOnly: true });
setSqliteBusyTimeout(database, input.busyTimeoutMs);
readSqliteIntegrityFileIdentity(input.pathname, input.identity);
assertSqliteIntegrity(database, input.pathname);
} catch (error) {
failure = toStringifiedError(error);
} finally {
try {
database?.close();
} catch (error) {
failure = toStringifiedError(error);
}
}
let result = { ok: true };
if (failure) result = {
ok: false,
error: {
name: failure.name,
...nativeErrorDetails(failure),
...failure.cause instanceof Error ? { cause: nativeErrorDetails(failure.cause) } : {}
}
};
parentPort?.postMessage(result, []);
//#endregion
export {};