writeServerRecord

tcmts.cli.mcp.writeServerRecord · #4y5au7nl · term · runs on the server

uses node:fs

Write a server's record whole (to a file beside it, then renamed over it): a server reading the records as it's written never sees half of one.

import { serverRecord } from "#codebase/tcmts/cli/mcp";
import type { McpServer } from "#codebase/tcmts/cli/mcp";
import { randomBytes } from "node:crypto";
import fs from "node:fs";
import path from "node:path";

export function writeServerRecord(root: string, server: McpServer) {
  const file = serverRecord(root, server.pid);
  fs.mkdirSync(path.dirname(file), { recursive: true });
  const part = `${file}.${randomBytes(4).toString("hex")}.part`;
  fs.writeFileSync(part, JSON.stringify(server));
  fs.renameSync(part, file);
}

uses

used by