Files
m4 fe982f7f95
CI / macos-latest / Node 20 (push) Has been cancelled
CI / ubuntu-latest / Node 20 (push) Has been cancelled
CI / windows-latest / Node 20 (push) Has been cancelled
feat: add workspace isolation and administration UI
2026-07-19 12:17:18 +08:00

33 lines
1.1 KiB
JavaScript

import { createRequire } from "node:module";
import { existsSync } from "node:fs";
import { lstat, readdir } from "node:fs/promises";
import path from "node:path";
const aliasesRoot = path.resolve("dist/.next/node_modules");
const aliases = (await readdir(aliasesRoot)).filter((entry) =>
entry.startsWith("better-sqlite3-")
);
if (aliases.length === 0) {
throw new Error("standalone build contains no better-sqlite3 external alias");
}
if (existsSync(path.resolve("dist/node_modules/better-sqlite3"))) {
throw new Error("standalone build contains a build-platform SQLite binary");
}
const require = createRequire(import.meta.url);
for (const alias of aliases) {
const aliasPath = path.join(aliasesRoot, alias);
if ((await lstat(aliasPath)).isSymbolicLink()) {
throw new Error(`${alias} is an npm-incompatible symbolic link`);
}
const Database = require(aliasPath);
const database = new Database(":memory:");
try {
database.prepare("SELECT 1 value").get();
} finally {
database.close();
}
}
console.log(`Verified ${aliases.length} portable better-sqlite3 alias(es).`);