markdown-code-example-inserter
Version:
Syncs code examples with markdown documentation.
23 lines (22 loc) • 1 kB
JavaScript
import { replaceWithWindowsPathIfNeeded } from '@augment-vir/node';
import { existsSync } from 'node:fs';
import { join } from 'node:path';
import { parseJsonConfigFileContent, readConfigFile, sys } from 'typescript';
export function getTsDirs(packageDir, overrideTsConfig) {
const configContent = overrideTsConfig || findAndReadTSConfig(packageDir);
if (!configContent) {
return undefined;
}
const source = replaceWithWindowsPathIfNeeded(configContent.options?.rootDir ?? '');
const output = replaceWithWindowsPathIfNeeded(configContent.options?.outDir ?? '');
return { source, output };
}
function findAndReadTSConfig(packageDir) {
const tsConfigPath = join(packageDir, 'tsconfig.json');
if (!existsSync(tsConfigPath)) {
return undefined;
}
// eslint-disable-next-line @typescript-eslint/unbound-method
const configFile = readConfigFile(tsConfigPath, sys.readFile);
return parseJsonConfigFileContent(configFile.config, sys, packageDir);
}