rollup-plugin-typescript2/src/parse-ts-config.ts

25 lines
1.0 KiB
TypeScript

import {findConfigFile, parseConfigFileTextToJson, ParsedCommandLine, parseJsonConfigFileContent, sys} from "typescript";
import {IContext} from "./context";
import {dirname} from "path";
import {printDiagnostics} from "./print-diagnostics";
import {convertDiagnostic} from "./tscache";
import {getOptionsOverrides} from "./get-options-overrides";
import {IOptions} from "./ioptions";
export function parseTsConfig(tsconfig: string, context: IContext, pluginOptions: IOptions): ParsedCommandLine {
const fileName = findConfigFile(process.cwd(), sys.fileExists, tsconfig);
if (!fileName)
throw new Error(`couldn't find '${tsconfig}' in ${process.cwd()}`);
const text = sys.readFile(fileName);
const result = parseConfigFileTextToJson(fileName, text);
if (result.error) {
printDiagnostics(context, convertDiagnostic("config", [result.error]));
throw new Error(`failed to parse ${fileName}`);
}
return parseJsonConfigFileContent(result.config, sys, dirname(fileName), getOptionsOverrides(pluginOptions), fileName);
}