From 90913df7fee5ccf1b17cbebda2c5e9edaaaa5648 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Mon, 6 Jul 2020 18:31:39 -0500 Subject: [PATCH] fix(sys): ensure typescript sys patched for initial load --- src/compiler/sys/typescript/typescript-load.ts | 12 ++++++------ src/compiler/sys/typescript/typescript-patch.ts | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/compiler/sys/typescript/typescript-load.ts b/src/compiler/sys/typescript/typescript-load.ts index e77fece8408..38e1d02217f 100644 --- a/src/compiler/sys/typescript/typescript-load.ts +++ b/src/compiler/sys/typescript/typescript-load.ts @@ -3,7 +3,7 @@ import { denoLoadTypeScript } from '../../../sys/deno/deno-load-typescript'; import { dependencies } from '../dependencies.json'; import { isFunction, IS_NODE_ENV, IS_BROWSER_ENV, IS_WEB_WORKER_ENV, IS_DENO_ENV } from '@utils'; import { nodeLoadTypeScript } from '../../../sys/node/node-load-typescript'; -import { patchImportedTsSys as patchRemoteTsSys } from './typescript-patch'; +import { patchRemoteTsSys } from './typescript-patch'; import ts from 'typescript'; export const loadTypescript = (sys: d.CompilerSystem, typescriptPath: string, sync: boolean): TypeScriptModule | Promise => { @@ -33,7 +33,7 @@ export const loadTypescript = (sys: d.CompilerSystem, typescriptPath: string, sy if (IS_WEB_WORKER_ENV) { const webWorkerTs = getLoadedTs(webWorkerLoadTypeScript(tsUrl)); if (webWorkerTs) { - patchRemoteTsSys(webWorkerTs, tsUrl); + patchRemoteTsSys(tsUrl); return webWorkerTs; } } @@ -72,7 +72,8 @@ const browserMainLoadTypeScript = (tsUrl: string): any => scriptElm.onload = () => { const browserTs = getLoadedTs((globalThis as any).ts); if (browserTs) { - resolve(patchRemoteTsSys(browserTs, tsUrl)); + patchRemoteTsSys(tsUrl); + resolve(browserTs); } else { reject(`Unable to load TypeScript via browser script`); } @@ -90,11 +91,10 @@ const getTsUrl = (sys: d.CompilerSystem, typeScriptPath: string) => { return sys.getRemoteModuleUrl({ moduleId: typecriptDep.name, version: typecriptDep.version, path: typecriptDep.main }); }; -const getLoadedTs = (loadedTs: TypeScriptModule) => { +const getLoadedTs = (loadedTs: TypeScriptModule): TypeScriptModule => { if (loadedTs != null && isFunction(loadedTs.transpileModule)) { loadedTs.__loaded = true; - Object.assign(ts, loadedTs); - return loadedTs; + return Object.assign(ts, loadedTs); } return null; }; diff --git a/src/compiler/sys/typescript/typescript-patch.ts b/src/compiler/sys/typescript/typescript-patch.ts index a25b2af8f83..815ccee05a7 100644 --- a/src/compiler/sys/typescript/typescript-patch.ts +++ b/src/compiler/sys/typescript/typescript-patch.ts @@ -31,9 +31,9 @@ const patchTypescriptModule = async (config: d.Config, diagnostics: d.Diagnostic } }; -export const patchImportedTsSys = (importedTs: any, tsUrl: string) => { +export const patchRemoteTsSys = (tsUrl: string) => { // patches just the bare minimum - const tsSys: ts.System = (importedTs.sys = importedTs.sys || ({} as any)); + const tsSys: ts.System = (ts.sys = ts.sys || ({} as any)); tsSys.getExecutingFilePath = () => tsUrl; if (!tsSys.getCurrentDirectory) { @@ -57,5 +57,4 @@ export const patchImportedTsSys = (importedTs: any, tsUrl: string) => { if (!tsSys.write) { tsSys.write = noop; } - return importedTs; };