mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-06 15:18:58 +00:00
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import path from "node:path";
|
|
import { tryReadJson } from "./json-files.js";
|
|
|
|
type PackageJson = {
|
|
name?: unknown;
|
|
packageManager?: unknown;
|
|
version?: unknown;
|
|
};
|
|
|
|
function normalizeString(value: unknown): string | null {
|
|
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
}
|
|
|
|
export async function readPackageJson(root: string): Promise<PackageJson | null> {
|
|
const parsed = await tryReadJson<unknown>(path.join(root, "package.json"));
|
|
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
? (parsed as PackageJson)
|
|
: null;
|
|
}
|
|
|
|
export async function readPackageVersion(root: string): Promise<string | null> {
|
|
return normalizeString((await readPackageJson(root))?.version);
|
|
}
|
|
|
|
export async function readPackageName(root: string): Promise<string | null> {
|
|
return normalizeString((await readPackageJson(root))?.name);
|
|
}
|
|
|
|
export async function readPackageManagerSpec(root: string): Promise<string | null> {
|
|
return normalizeString((await readPackageJson(root))?.packageManager);
|
|
}
|