Skip to content

Commit fc5dee2

Browse files
committed
add support typescript path
1 parent ed9c093 commit fc5dee2

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

packages/vite-plugin-checker/src/checkers/typescript/main.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os from 'os'
22
import path from 'path'
33
import invariant from 'tiny-invariant'
4-
import ts from 'typescript'
4+
import type * as typescript from 'typescript'
55
import { fileURLToPath } from 'url'
66
import { parentPort } from 'worker_threads'
77

@@ -30,18 +30,19 @@ const createDiagnostic: CreateDiagnostic<'typescript'> = (pluginConfig) => {
3030
overlay = enableOverlay
3131
terminal = enableTerminal
3232
},
33-
configureServer({ root }) {
33+
async configureServer({ root }) {
3434
invariant(pluginConfig.typescript, 'config.typescript should be `false`')
3535
const finalConfig =
3636
pluginConfig.typescript === true
37-
? { root, tsconfigPath: 'tsconfig.json' }
37+
? { root, tsconfigPath: 'tsconfig.json', typescriptPath: 'typescript' }
3838
: {
3939
root: pluginConfig.typescript.root ?? root,
4040
tsconfigPath: pluginConfig.typescript.tsconfigPath ?? 'tsconfig.json',
41+
typescriptPath: pluginConfig.typescript.typescriptPath ?? 'typescript',
4142
}
4243

4344
let configFile: string | undefined
44-
45+
const ts: typeof typescript = await import(finalConfig.typescriptPath)
4546
configFile = ts.findConfigFile(finalConfig.root, ts.sys.fileExists, finalConfig.tsconfigPath)
4647

4748
if (configFile === undefined) {
@@ -53,7 +54,7 @@ const createDiagnostic: CreateDiagnostic<'typescript'> = (pluginConfig) => {
5354
let logChunk = ''
5455

5556
// https://github.com/microsoft/TypeScript/blob/a545ab1ac2cb24ff3b1aaf0bfbfb62c499742ac2/src/compiler/watch.ts#L12-L28
56-
const reportDiagnostic = (diagnostic: ts.Diagnostic) => {
57+
const reportDiagnostic = (diagnostic: typescript.Diagnostic) => {
5758
const normalizedDiagnostic = normalizeTsDiagnostic(diagnostic)
5859
if (normalizedDiagnostic === null) {
5960
return
@@ -63,7 +64,7 @@ const createDiagnostic: CreateDiagnostic<'typescript'> = (pluginConfig) => {
6364
logChunk += os.EOL + diagnosticToTerminalLog(normalizedDiagnostic, 'TypeScript')
6465
}
6566

66-
const reportWatchStatusChanged: ts.WatchStatusReporter = (
67+
const reportWatchStatusChanged: typescript.WatchStatusReporter = (
6768
diagnostic,
6869
newLine,
6970
options,

packages/vite-plugin-checker/src/types.ts

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ interface TsConfigOptions {
1111
* path to tsconfig.json file
1212
*/
1313
tsconfigPath: string
14+
/**
15+
* path to typescript package
16+
*/
17+
typescriptPath: string
1418
/**
1519
* root path of cwd
1620
*/

0 commit comments

Comments
 (0)