From f4baefad74f2470a737c5f98ae2c988f3b2aadd5 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Thu, 2 Jun 2022 02:36:55 +0800 Subject: [PATCH] feat: proxy all ts program apis on vue-tsc close #1375 --- packages/vue-tsc/src/proxy.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/vue-tsc/src/proxy.ts b/packages/vue-tsc/src/proxy.ts index 658161c64..118e5b182 100644 --- a/packages/vue-tsc/src/proxy.ts +++ b/packages/vue-tsc/src/proxy.ts @@ -60,15 +60,14 @@ export function createProgramProxy( }); tsRuntime.update(); // must update before getProgram() to update virtual scripts - const tsProgram = tsRuntime.getTsLs().getProgram(); - if (!tsProgram) - throw '!tsProgram'; - const proxyApis = apis.register(ts, tsRuntime); - const program = new Proxy(tsProgram, { - get: (target: any, property: keyof typeof proxyApis) => { + const program = new Proxy({} as ts.Program, { + get: (_, property: keyof ts.Program) => { tsRuntime.update(); - return proxyApis[property] || target[property]; + if (property in proxyApis) { + return proxyApis[property as keyof typeof proxyApis]; + } + return tsRuntime.getTsLs().getProgram()![property]; }, });