UNPKG

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
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; }