vite-esbuild-typescript-checker
Version:
* Speeds up [TypeScript](https://github.com/Microsoft/TypeScript) type checking * Supports [Vue Single File Component](https://vuejs.org/v2/guide/single-file-components.html) * Displays nice error messages with the [code frame](https://babeljs.io/docs/en/
32 lines (31 loc) • 1.06 kB
JavaScript
import ts from 'typescript';
import { createCompilerHost } from '../host/compiler-host';
import { getParsedConfig } from '../config';
import { afterProgramEmitAndDiagnostics } from '../functions';
let compilerHost;
let program;
export function useProgram(port) {
const parsedConfig = getParsedConfig();
if (!compilerHost) {
compilerHost = createCompilerHost(parsedConfig);
}
if (!program) {
// startTracingIfNeeded(parsedConfig.options);
program = ts.createProgram({
rootNames: parsedConfig.fileNames,
options: parsedConfig.options,
projectReferences: parsedConfig.projectReferences,
host: compilerHost
});
}
afterProgramEmitAndDiagnostics(program, port);
// updateDiagnostics(getConfigFilePathFromProgram(program), getDiagnosticsOfProgram(program));
// emitDtsIfNeeded(program);
// stopTracingIfNeeded(program);
}
export function invalidateProgram(withHost = false) {
if (withHost) {
compilerHost = undefined;
}
program = undefined;
}