📄 getParsedConfigFile.ts¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 15 |
| 📦 Imports | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/tsconfig-utils/src/getParsedConfigFile.ts
📦 Imports¶
| Name | Source |
|---|---|
CORE_COMPILER_OPTIONS |
./compilerOptions |
Functions¶
getParsedConfigFile(tsserver: typeof ts, configFile: string, projectDirectory: string): ts.ParsedCommandLine¶
Code
export function getParsedConfigFile(
tsserver: typeof ts,
configFile: string,
projectDirectory?: string,
): ts.ParsedCommandLine {
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/internal/eqeq-nullish
if (tsserver.sys === undefined) {
throw new Error(
'`getParsedConfigFile` is only supported in a Node-like environment.',
);
}
const parsed = tsserver.getParsedCommandLineOfConfigFile(
configFile,
CORE_COMPILER_OPTIONS,
{
fileExists: fs.existsSync,
getCurrentDirectory,
onUnRecoverableConfigFileDiagnostic: diag => {
throw new Error(formatDiagnostics([diag])); // ensures that `parsed` is defined.
},
readDirectory: tsserver.sys.readDirectory,
readFile: file =>
fs.readFileSync(
path.isAbsolute(file) ? file : path.join(getCurrentDirectory(), file),
'utf-8',
),
useCaseSensitiveFileNames: tsserver.sys.useCaseSensitiveFileNames,
},
);
if (parsed?.errors.length) {
throw new Error(formatDiagnostics(parsed.errors));
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return parsed!;
function getCurrentDirectory(): string {
return projectDirectory ? path.resolve(projectDirectory) : process.cwd();
}
function formatDiagnostics(diagnostics: ts.Diagnostic[]): string | undefined {
return tsserver.formatDiagnostics(diagnostics, {
getCanonicalFileName: f => f,
getCurrentDirectory,
getNewLine: () => '\n',
});
}
}
-
JSDoc:
-
Parameters:
tsserver: typeof tsconfigFile: stringprojectDirectory: string- Return Type:
ts.ParsedCommandLine - Calls:
tsserver.getParsedCommandLineOfConfigFileformatDiagnosticsfs.readFileSyncpath.isAbsolutepath.joingetCurrentDirectorypath.resolveprocess.cwdtsserver.formatDiagnostics- Internal Comments:
onUnRecoverableConfigFileDiagnostic(diag: any): never¶
- Parameters:
diag: any- Return Type:
never - Calls:
formatDiagnostics
readFile(file: any): string¶
Code
- Parameters:
file: any- Return Type:
string - Calls:
fs.readFileSync
onUnRecoverableConfigFileDiagnostic(diag: any): never¶
- Parameters:
diag: any- Return Type:
never - Calls:
formatDiagnostics
readFile(file: any): string¶
Code
- Parameters:
file: any- Return Type:
string - Calls:
fs.readFileSync
onUnRecoverableConfigFileDiagnostic(diag: any): never¶
- Parameters:
diag: any- Return Type:
never - Calls:
formatDiagnostics
readFile(file: any): string¶
Code
- Parameters:
file: any- Return Type:
string - Calls:
fs.readFileSync
onUnRecoverableConfigFileDiagnostic(diag: any): never¶
- Parameters:
diag: any- Return Type:
never - Calls:
formatDiagnostics
readFile(file: any): string¶
Code
- Parameters:
file: any- Return Type:
string - Calls:
fs.readFileSync
getCurrentDirectory(): string¶
Code
- Return Type:
string - Calls:
path.resolveprocess.cwd
formatDiagnostics(diagnostics: ts.Diagnostic[]): string | undefined¶
Code
- Parameters:
diagnostics: ts.Diagnostic[]- Return Type:
string | undefined - Calls:
tsserver.formatDiagnostics
getCanonicalFileName(f: any): any¶
- Parameters:
f: any- Return Type:
any
getNewLine(): string¶
- Return Type:
string
getCanonicalFileName(f: any): any¶
- Parameters:
f: any- Return Type:
any
getNewLine(): string¶
- Return Type:
string