@chakra-ui/cli
Version:
Generate theme typings for autocomplete
39 lines (36 loc) • 1.21 kB
JavaScript
;
import createDebug from 'debug';
import { resolve } from 'node:path';
import { parse } from 'tsconfck';
const debug = createDebug("chakra:tsconfig");
async function resolveTsconfig(sourceFile, tsconfigPath) {
if (tsconfigPath) {
const resolved = resolve(tsconfigPath);
debug("using explicit tsconfig:", resolved);
return resolved;
}
try {
const result = await parse(sourceFile);
if (!result.tsconfigFile) {
debug("no tsconfig found for", sourceFile);
return void 0;
}
debug("found tsconfig:", result.tsconfigFile);
if (result.referenced && result.referenced.length > 0) {
debug("solution-style tsconfig detected, checking references...");
for (const ref of result.referenced) {
if (ref.tsconfig?.compilerOptions?.paths) {
debug("found paths in referenced tsconfig:", ref.tsconfigFile);
return ref.tsconfigFile;
}
}
debug("no paths found in references, using first reference");
return result.referenced[0].tsconfigFile;
}
return result.tsconfigFile;
} catch (error) {
debug("tsconfig resolution failed:", error);
return void 0;
}
}
export { resolveTsconfig };