19 lines
569 B
JavaScript
19 lines
569 B
JavaScript
const { parentPort, workerData } = require('worker_threads');
|
|
const Database = require('better-sqlite3');
|
|
|
|
if (!parentPort) throw new Error("Must be run in a worker thread");
|
|
|
|
try {
|
|
const { filePath } = workerData;
|
|
const db = new Database(filePath, { readonly: true, fileMustExist: true });
|
|
|
|
// This is the CPU-heavy operation
|
|
const result = db.prepare("PRAGMA integrity_check;").get();
|
|
|
|
db.close();
|
|
parentPort.postMessage(result.integrity_check === "ok");
|
|
} catch (error) {
|
|
// Any error means invalid or corrupt DB
|
|
parentPort.postMessage(false);
|
|
}
|