UNPKG

markdown-code-example-inserter

Version:
41 lines (35 loc) 1.19 kB
import {existsSync} from 'node:fs'; import {readFile} from 'node:fs/promises'; import {join, resolve} from 'node:path'; export type PackageDetails = { packageName: string | undefined; mainPath: string | undefined; }; export async function readPackageDetails( packageDir: string, overridePackageJson?: Record<string, string | undefined>, ): Promise<Readonly<PackageDetails>> { const packageJson = overridePackageJson || (await findAndReadPackageJson(packageDir)); if (!packageJson) { return { mainPath: undefined, packageName: undefined, }; } const packageName = packageJson.name; const mainPath = packageJson.main ? resolve(join(packageDir, packageJson.main)) : undefined; return { packageName, mainPath, }; } async function findAndReadPackageJson( packageDir: string, ): Promise<Record<string, string> | undefined> { const packageJsonPath = join(packageDir, 'package.json'); if (!existsSync(packageJsonPath)) { return undefined; } const rawPackageJsonContents = await readFile(packageJsonPath); return JSON.parse(rawPackageJsonContents.toString()); }