release: WRNexusJS 0.8.0
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import console from "node:console";
|
||||
import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join, relative, resolve } from "node:path";
|
||||
import { spawnSync } from "node:child_process";
|
||||
import process from "node:process";
|
||||
|
||||
const root = resolve(import.meta.dirname, "..");
|
||||
const source = join(root, "packages", "language-server", "src", "server.ts");
|
||||
const destination = join(root, "editors", "vscode", "src", "language-server.cjs");
|
||||
const check = process.argv.includes("--check");
|
||||
const temporary = check ? mkdtempSync(join(tmpdir(), "wrnexus-editor-lsp-")) : null;
|
||||
const output = temporary ? join(temporary, "language-server.cjs") : destination;
|
||||
try {
|
||||
const built = spawnSync(
|
||||
process.env.WRNEXUS_BUN_BINARY || "bun",
|
||||
["build", source, "--target=node", "--format=cjs", `--outfile=${output}`],
|
||||
{ cwd: root, encoding: "utf8" },
|
||||
);
|
||||
if (built.status !== 0) throw new Error(built.stderr || built.stdout || "LSP bundle failed");
|
||||
if (check) {
|
||||
if (!existsSync(destination) || readFileSync(destination).compare(readFileSync(output)) !== 0)
|
||||
throw new Error(
|
||||
`${relative(root, destination)} is stale. Run bun run --cwd editors/vscode build.`,
|
||||
);
|
||||
console.log(`Verified ${relative(root, destination)} matches the language server sources.`);
|
||||
} else console.log(`Built ${relative(root, destination)}.`);
|
||||
} finally {
|
||||
if (temporary) rmSync(temporary, { recursive: true, force: true });
|
||||
}
|
||||
Reference in New Issue
Block a user