markdown-code-example-inserter
Version:
Syncs code examples with markdown documentation.
27 lines (26 loc) • 934 B
JavaScript
import { existsSync } from 'node:fs';
import { readFile } from 'node:fs/promises';
import { join, resolve } from 'node:path';
export async function readPackageDetails(packageDir, overridePackageJson) {
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) {
const packageJsonPath = join(packageDir, 'package.json');
if (!existsSync(packageJsonPath)) {
return undefined;
}
const rawPackageJsonContents = await readFile(packageJsonPath);
return JSON.parse(rawPackageJsonContents.toString());
}