From 11b21fbba6aa383c04917c0379b0f7c04756a899 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 18 Apr 2019 17:56:50 -0700 Subject: [PATCH] builderPrograms as ConfigFileMap --- src/compiler/tsbuild.ts | 67 +++++------------------------------------ 1 file changed, 8 insertions(+), 59 deletions(-) diff --git a/src/compiler/tsbuild.ts b/src/compiler/tsbuild.ts index d8d55c346f9..54094fb62de 100644 --- a/src/compiler/tsbuild.ts +++ b/src/compiler/tsbuild.ts @@ -356,7 +356,7 @@ namespace ts { const buildInfoChecked = createMap() as ConfigFileMap; // Watch state - const builderPrograms = createFileMap(); + const builderPrograms = createMap() as ConfigFileMap; const diagnostics = createMap() as ConfigFileMap>; const projectPendingBuild = createMap() as ConfigFileMap; const projectErrorsReported = createMap() as ConfigFileMap; @@ -396,57 +396,6 @@ namespace ts { return resolvedPath; } - - // TODO remove this and use normal map so we arent transforming paths constantly - function createFileMap(): { - setValue(fileName: ResolvedConfigFileName, value: T): void; - getValue(fileName: ResolvedConfigFileName): T | undefined; - hasKey(fileName: ResolvedConfigFileName): boolean; - removeKey(fileName: ResolvedConfigFileName): void; - forEach(action: (value: T, key: ResolvedConfigFilePath) => void): void; - getSize(): number; - clear(): void; - } { - const lookup = createMap(); - return { - setValue, - getValue, - removeKey, - forEach, - hasKey, - getSize, - clear - }; - - function forEach(action: (value: T, key: ResolvedConfigFilePath) => void) { - lookup.forEach(action); - } - - function hasKey(fileName: ResolvedConfigFileName) { - return lookup.has(toResolvedConfigFilePath(fileName)); - } - - function removeKey(fileName: ResolvedConfigFileName) { - lookup.delete(toResolvedConfigFilePath(fileName)); - } - - function setValue(fileName: ResolvedConfigFileName, value: T) { - lookup.set(toResolvedConfigFilePath(fileName), value); - } - - function getValue(fileName: ResolvedConfigFileName): T | undefined { - return lookup.get(toResolvedConfigFilePath(fileName)); - } - - function getSize() { - return lookup.size; - } - - function clear() { - lookup.clear(); - } - } - function resetBuildContext(opts = defaultOptions) { options = opts; baseCompilerOptions = getCompilerOptionsOfBuildOptions(options); @@ -1116,7 +1065,7 @@ namespace ts { configFile.fileNames, configFile.options, compilerHost, - getOldProgram(proj, configFile), + getOldProgram(resolvedPath, configFile), configFile.errors, configFile.projectReferences ); @@ -1194,7 +1143,7 @@ namespace ts { }; diagnostics.delete(resolvedPath); projectStatus.set(resolvedPath, status); - afterProgramCreate(proj, program); + afterProgramCreate(resolvedPath, program); projectCompilerOptions = baseCompilerOptions; return resultFlags; @@ -1204,7 +1153,7 @@ namespace ts { // List files if any other build error using program (emit errors already report files) if (writeFileName) listFiles(program, writeFileName); projectStatus.set(resolvedPath, { type: UpToDateStatusType.Unbuildable, reason: `${errorType} errors` }); - afterProgramCreate(proj, program); + afterProgramCreate(resolvedPath, program); projectCompilerOptions = baseCompilerOptions; return resultFlags; } @@ -1216,19 +1165,19 @@ namespace ts { } } - function afterProgramCreate(proj: ResolvedConfigFileName, program: T) { + function afterProgramCreate(proj: ResolvedConfigFilePath, program: T) { if (host.afterProgramEmitAndDiagnostics) { host.afterProgramEmitAndDiagnostics(program); } if (options.watch) { program.releaseProgram(); - builderPrograms.setValue(proj, program); + builderPrograms.set(proj, program); } } - function getOldProgram(proj: ResolvedConfigFileName, parsed: ParsedCommandLine) { + function getOldProgram(proj: ResolvedConfigFilePath, parsed: ParsedCommandLine) { if (options.force) return undefined; - const value = builderPrograms.getValue(proj); + const value = builderPrograms.get(proj); if (value) return value; return readBuilderProgram(parsed.options, readFileWithCache) as any as T; }