markdown-code-example-inserter
Version:
Syncs code examples with markdown documentation.
16 lines (15 loc) • 772 B
JavaScript
import { existsSync } from 'node:fs';
import { readFile } from 'node:fs/promises';
import { dirname, resolve } from 'node:path';
import { CodeExampleFileMissingError } from '../errors/code-example-file-missing.error.js';
export function extractExamplePath(originalMarkdownFilePath, linkComment) {
const codeExamplePath = resolve(dirname(originalMarkdownFilePath), linkComment.linkPath);
if (!existsSync(codeExamplePath)) {
throw new CodeExampleFileMissingError(codeExamplePath, originalMarkdownFilePath);
}
return codeExamplePath;
}
export async function extractExampleCode(originalMarkdownFilePath, linkComment) {
const exampleCodePath = extractExamplePath(originalMarkdownFilePath, linkComment);
return await readFile(exampleCodePath);
}