refactor: share openclaw root package parsing

This commit is contained in:
Peter Steinberger 2026-03-13 21:08:45 +00:00
parent 95f8b91c8a
commit 25eb3d5209
1 changed files with 7 additions and 6 deletions

View File

@ -5,11 +5,14 @@ import { fileURLToPath } from "node:url";
const CORE_PACKAGE_NAMES = new Set(["openclaw"]);
async function readPackageName(dir: string): Promise<string | null> {
try {
const raw = await fs.readFile(path.join(dir, "package.json"), "utf-8");
function parsePackageName(raw: string): string | null {
const parsed = JSON.parse(raw) as { name?: unknown };
return typeof parsed.name === "string" ? parsed.name : null;
}
async function readPackageName(dir: string): Promise<string | null> {
try {
return parsePackageName(await fs.readFile(path.join(dir, "package.json"), "utf-8"));
} catch {
return null;
}
@ -17,9 +20,7 @@ async function readPackageName(dir: string): Promise<string | null> {
function readPackageNameSync(dir: string): string | null {
try {
const raw = fsSync.readFileSync(path.join(dir, "package.json"), "utf-8");
const parsed = JSON.parse(raw) as { name?: unknown };
return typeof parsed.name === "string" ? parsed.name : null;
return parsePackageName(fsSync.readFileSync(path.join(dir, "package.json"), "utf-8"));
} catch {
return null;
}