typescript 4.7.0-dev.20220421 → 4.7.0-dev.20220422

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -294,7 +294,7 @@ var ts;
294
294
  // The following is baselined as a literal template type without intervention
295
295
  /** The version of the TypeScript compiler release */
296
296
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
297
- ts.version = ts.versionMajorMinor + ".0-dev.20220421";
297
+ ts.version = ts.versionMajorMinor + ".0-dev.20220422";
298
298
  /* @internal */
299
299
  var Comparison;
300
300
  (function (Comparison) {
@@ -18487,10 +18487,10 @@ var ts;
18487
18487
  return ts.combinePaths(newDirPath, sourceFilePath);
18488
18488
  }
18489
18489
  ts.getSourceFilePathInNewDirWorker = getSourceFilePathInNewDirWorker;
18490
- function writeFile(host, diagnostics, fileName, data, writeByteOrderMark, sourceFiles) {
18491
- host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) {
18490
+ function writeFile(host, diagnostics, fileName, text, writeByteOrderMark, sourceFiles, data) {
18491
+ host.writeFile(fileName, text, writeByteOrderMark, function (hostErrorMessage) {
18492
18492
  diagnostics.add(createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage));
18493
- }, sourceFiles);
18493
+ }, sourceFiles, data);
18494
18494
  }
18495
18495
  ts.writeFile = writeFile;
18496
18496
  function ensureDirectoriesExist(directoryPath, createDirectory, directoryExists) {
@@ -73626,6 +73626,7 @@ var ts;
73626
73626
  }
73627
73627
  }
73628
73628
  else {
73629
+ error(attributeDecl.expression, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
73629
73630
  typeToIntersect = typeToIntersect ? getIntersectionType([typeToIntersect, exprType]) : exprType;
73630
73631
  }
73631
73632
  }
@@ -110160,6 +110161,7 @@ var ts;
110160
110161
  else {
110161
110162
  printer.writeFile(sourceFile, writer, sourceMapGenerator);
110162
110163
  }
110164
+ var sourceMapUrlPos;
110163
110165
  if (sourceMapGenerator) {
110164
110166
  if (sourceMapDataList) {
110165
110167
  sourceMapDataList.push({
@@ -110171,6 +110173,7 @@ var ts;
110171
110173
  if (sourceMappingURL) {
110172
110174
  if (!writer.isAtStartOfLine())
110173
110175
  writer.rawWrite(newLine);
110176
+ sourceMapUrlPos = writer.getTextPos();
110174
110177
  writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL); // Tools can sometimes see this line as a source mapping url comment
110175
110178
  }
110176
110179
  // Write the source map
@@ -110183,7 +110186,7 @@ var ts;
110183
110186
  writer.writeLine();
110184
110187
  }
110185
110188
  // Write the output file
110186
- ts.writeFile(host, emitterDiagnostics, jsFilePath, writer.getText(), !!compilerOptions.emitBOM, sourceFiles);
110189
+ ts.writeFile(host, emitterDiagnostics, jsFilePath, writer.getText(), !!compilerOptions.emitBOM, sourceFiles, { sourceMapUrlPos: sourceMapUrlPos });
110187
110190
  // Reset state
110188
110191
  writer.clear();
110189
110192
  }
@@ -115650,7 +115653,11 @@ var ts;
115650
115653
  return newValue;
115651
115654
  };
115652
115655
  if (originalWriteFile) {
115653
- host.writeFile = function (fileName, data, writeByteOrderMark, onError, sourceFiles) {
115656
+ host.writeFile = function (fileName, data) {
115657
+ var rest = [];
115658
+ for (var _i = 2; _i < arguments.length; _i++) {
115659
+ rest[_i - 2] = arguments[_i];
115660
+ }
115654
115661
  var key = toPath(fileName);
115655
115662
  fileExistsCache.delete(key);
115656
115663
  var value = readFileCache.get(key);
@@ -115664,7 +115671,7 @@ var ts;
115664
115671
  sourceFileCache.delete(key);
115665
115672
  }
115666
115673
  }
115667
- originalWriteFile.call(host, fileName, data, writeByteOrderMark, onError, sourceFiles);
115674
+ originalWriteFile.call.apply(originalWriteFile, __spreadArray([host, fileName, data], rest, false));
115668
115675
  };
115669
115676
  }
115670
115677
  // directoryExists
@@ -116597,6 +116604,7 @@ var ts;
116597
116604
  useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); },
116598
116605
  getFileIncludeReasons: function () { return fileReasons; },
116599
116606
  structureIsReused: structureIsReused,
116607
+ writeFile: writeFile,
116600
116608
  };
116601
116609
  onProgramCreateComplete();
116602
116610
  // Add file processingDiagnostics
@@ -117094,7 +117102,7 @@ var ts;
117094
117102
  getProjectReferenceRedirect: getProjectReferenceRedirect,
117095
117103
  isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect,
117096
117104
  getSymlinkCache: getSymlinkCache,
117097
- writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }),
117105
+ writeFile: writeFileCallback || writeFile,
117098
117106
  isEmitBlocked: isEmitBlocked,
117099
117107
  readFile: function (f) { return host.readFile(f); },
117100
117108
  fileExists: function (f) {
@@ -117114,6 +117122,9 @@ var ts;
117114
117122
  getFileIncludeReasons: program.getFileIncludeReasons,
117115
117123
  };
117116
117124
  }
117125
+ function writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
117126
+ host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
117127
+ }
117117
117128
  function emitBuildInfo(writeFileCallback) {
117118
117129
  ts.Debug.assert(!ts.outFile(options));
117119
117130
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("emit" /* Emit */, "emitBuildInfo", {}, /*separateBeginAndEnd*/ true);
@@ -119556,6 +119567,7 @@ var ts;
119556
119567
  }
119557
119568
  }
119558
119569
  }
119570
+ BuilderState.updateExportedModules = updateExportedModules;
119559
119571
  /**
119560
119572
  * Updates the exported modules from cache into state's exported modules map
119561
119573
  * This should be called whenever it is safe to commit the state of the builder
@@ -120520,7 +120532,43 @@ var ts;
120520
120532
  return toAffectedFileEmitResult(state,
120521
120533
  // When whole program is affected, do emit only once (eg when --out or --outFile is specified)
120522
120534
  // Otherwise just affected file
120523
- ts.Debug.checkDefined(state.program).emit(affected === state.program ? undefined : affected, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles || emitKind === 0 /* DtsOnly */, customTransformers), affected, emitKind, isPendingEmitFile);
120535
+ ts.Debug.checkDefined(state.program).emit(affected === state.program ? undefined : affected, affected !== state.program && ts.getEmitDeclarations(state.compilerOptions) && !customTransformers ?
120536
+ getWriteFileUpdatingSignatureCallback(writeFile) :
120537
+ writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles || emitKind === 0 /* DtsOnly */, customTransformers), affected, emitKind, isPendingEmitFile);
120538
+ }
120539
+ function getWriteFileUpdatingSignatureCallback(writeFile) {
120540
+ return function (fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
120541
+ var _a;
120542
+ if (ts.isDeclarationFileName(fileName)) {
120543
+ ts.Debug.assert((sourceFiles === null || sourceFiles === void 0 ? void 0 : sourceFiles.length) === 1);
120544
+ var file = sourceFiles[0];
120545
+ var info = state.fileInfos.get(file.resolvedPath);
120546
+ var signature = ((_a = state.currentAffectedFilesSignatures) === null || _a === void 0 ? void 0 : _a.get(file.resolvedPath)) || info.signature;
120547
+ if (signature === file.version) {
120548
+ var newSignature = (computeHash || ts.generateDjb2Hash)((data === null || data === void 0 ? void 0 : data.sourceMapUrlPos) !== undefined ? text.substring(0, data.sourceMapUrlPos) : text);
120549
+ if (newSignature !== file.version) { // Update it
120550
+ if (host.storeFilesChangingSignatureDuringEmit)
120551
+ (state.filesChangingSignature || (state.filesChangingSignature = new ts.Set())).add(file.resolvedPath);
120552
+ if (state.exportedModulesMap)
120553
+ ts.BuilderState.updateExportedModules(file, file.exportedModulesFromDeclarationEmit, state.currentAffectedFilesExportedModulesMap || (state.currentAffectedFilesExportedModulesMap = ts.BuilderState.createManyToManyPathMap()));
120554
+ if (state.affectedFiles && state.affectedFilesIndex < state.affectedFiles.length) {
120555
+ state.currentAffectedFilesSignatures.set(file.resolvedPath, newSignature);
120556
+ }
120557
+ else {
120558
+ info.signature = newSignature;
120559
+ if (state.exportedModulesMap)
120560
+ ts.BuilderState.updateExportedFilesMapFromCache(state, state.currentAffectedFilesExportedModulesMap);
120561
+ }
120562
+ }
120563
+ }
120564
+ }
120565
+ if (writeFile)
120566
+ writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120567
+ else if (host.writeFile)
120568
+ host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120569
+ else
120570
+ state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120571
+ };
120524
120572
  }
120525
120573
  /**
120526
120574
  * Emits the JavaScript and declaration files.
@@ -120577,7 +120625,9 @@ var ts;
120577
120625
  }
120578
120626
  }
120579
120627
  }
120580
- return ts.Debug.checkDefined(state.program).emit(targetSourceFile, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
120628
+ return ts.Debug.checkDefined(state.program).emit(targetSourceFile, !ts.outFile(state.compilerOptions) && ts.getEmitDeclarations(state.compilerOptions) && !customTransformers ?
120629
+ getWriteFileUpdatingSignatureCallback(writeFile) :
120630
+ writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
120581
120631
  }
120582
120632
  /**
120583
120633
  * Return the semantic diagnostics for the next affected file or undefined if iteration is complete
@@ -122769,6 +122819,7 @@ var ts;
122769
122819
  createHash: ts.maybeBind(host, host.createHash),
122770
122820
  readDirectory: ts.maybeBind(host, host.readDirectory),
122771
122821
  disableUseFileVersionAsSignature: host.disableUseFileVersionAsSignature,
122822
+ storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit,
122772
122823
  };
122773
122824
  function writeFile(fileName, text, writeByteOrderMark, onError) {
122774
122825
  try {
@@ -122828,6 +122879,7 @@ var ts;
122828
122879
  createHash: ts.maybeBind(system, system.createHash),
122829
122880
  createProgram: createProgram || ts.createEmitAndSemanticDiagnosticsBuilderProgram,
122830
122881
  disableUseFileVersionAsSignature: system.disableUseFileVersionAsSignature,
122882
+ storeFilesChangingSignatureDuringEmit: system.storeFilesChangingSignatureDuringEmit,
122831
122883
  };
122832
122884
  }
122833
122885
  ts.createProgramHost = createProgramHost;
@@ -122916,6 +122968,7 @@ var ts;
122916
122968
  var host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, system);
122917
122969
  host.createHash = ts.maybeBind(system, system.createHash);
122918
122970
  host.disableUseFileVersionAsSignature = system.disableUseFileVersionAsSignature;
122971
+ host.storeFilesChangingSignatureDuringEmit = system.storeFilesChangingSignatureDuringEmit;
122919
122972
  ts.setGetSourceFileAsHashVersioned(host, system);
122920
122973
  ts.changeCompilerHostLikeToUseCache(host, function (fileName) { return ts.toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName); });
122921
122974
  return host;
@@ -132401,22 +132454,44 @@ var ts;
132401
132454
  }
132402
132455
  }
132403
132456
  function createSnippetPrinter(printerOptions) {
132457
+ var escapes;
132404
132458
  var baseWriter = ts.textChanges.createWriter(ts.getNewLineCharacter(printerOptions));
132405
132459
  var printer = ts.createPrinter(printerOptions, baseWriter);
132406
- var writer = __assign(__assign({}, baseWriter), { write: function (s) { return baseWriter.write(ts.escapeSnippetText(s)); }, nonEscapingWrite: baseWriter.write, writeLiteral: function (s) { return baseWriter.writeLiteral(ts.escapeSnippetText(s)); }, writeStringLiteral: function (s) { return baseWriter.writeStringLiteral(ts.escapeSnippetText(s)); }, writeSymbol: function (s, symbol) { return baseWriter.writeSymbol(ts.escapeSnippetText(s), symbol); }, writeParameter: function (s) { return baseWriter.writeParameter(ts.escapeSnippetText(s)); }, writeComment: function (s) { return baseWriter.writeComment(ts.escapeSnippetText(s)); }, writeProperty: function (s) { return baseWriter.writeProperty(ts.escapeSnippetText(s)); } });
132460
+ var writer = __assign(__assign({}, baseWriter), { write: function (s) { return escapingWrite(s, function () { return baseWriter.write(s); }); }, nonEscapingWrite: baseWriter.write, writeLiteral: function (s) { return escapingWrite(s, function () { return baseWriter.writeLiteral(s); }); }, writeStringLiteral: function (s) { return escapingWrite(s, function () { return baseWriter.writeStringLiteral(s); }); }, writeSymbol: function (s, symbol) { return escapingWrite(s, function () { return baseWriter.writeSymbol(s, symbol); }); }, writeParameter: function (s) { return escapingWrite(s, function () { return baseWriter.writeParameter(s); }); }, writeComment: function (s) { return escapingWrite(s, function () { return baseWriter.writeComment(s); }); }, writeProperty: function (s) { return escapingWrite(s, function () { return baseWriter.writeProperty(s); }); } });
132407
132461
  return {
132408
132462
  printSnippetList: printSnippetList,
132409
132463
  printAndFormatSnippetList: printAndFormatSnippetList,
132410
132464
  };
132465
+ // The formatter/scanner will have issues with snippet-escaped text,
132466
+ // so instead of writing the escaped text directly to the writer,
132467
+ // generate a set of changes that can be applied to the unescaped text
132468
+ // to escape it post-formatting.
132469
+ function escapingWrite(s, write) {
132470
+ var escaped = ts.escapeSnippetText(s);
132471
+ if (escaped !== s) {
132472
+ var start = baseWriter.getTextPos();
132473
+ write();
132474
+ var end = baseWriter.getTextPos();
132475
+ escapes = ts.append(escapes || (escapes = []), { newText: escaped, span: { start: start, length: end - start } });
132476
+ }
132477
+ else {
132478
+ write();
132479
+ }
132480
+ }
132411
132481
  /* Snippet-escaping version of `printer.printList`. */
132412
132482
  function printSnippetList(format, list, sourceFile) {
132483
+ var unescaped = printUnescapedSnippetList(format, list, sourceFile);
132484
+ return escapes ? ts.textChanges.applyChanges(unescaped, escapes) : unescaped;
132485
+ }
132486
+ function printUnescapedSnippetList(format, list, sourceFile) {
132487
+ escapes = undefined;
132413
132488
  writer.clear();
132414
132489
  printer.writeList(format, list, sourceFile, writer);
132415
132490
  return writer.getText();
132416
132491
  }
132417
132492
  function printAndFormatSnippetList(format, list, sourceFile, formatContext) {
132418
132493
  var syntheticFile = {
132419
- text: printSnippetList(format, list, sourceFile),
132494
+ text: printUnescapedSnippetList(format, list, sourceFile),
132420
132495
  getLineAndCharacterOfPosition: function (pos) {
132421
132496
  return ts.getLineAndCharacterOfPosition(this, pos);
132422
132497
  },
@@ -132428,7 +132503,10 @@ var ts;
132428
132503
  /* indentation */ 0,
132429
132504
  /* delta */ 0, __assign(__assign({}, formatContext), { options: formatOptions }));
132430
132505
  });
132431
- return ts.textChanges.applyChanges(syntheticFile.text, changes);
132506
+ var allChanges = escapes
132507
+ ? ts.stableSort(ts.concatenate(changes, escapes), function (a, b) { return ts.compareTextSpans(a.span, b.span); })
132508
+ : changes;
132509
+ return ts.textChanges.applyChanges(syntheticFile.text, allChanges);
132432
132510
  }
132433
132511
  }
132434
132512
  function originToCompletionEntryData(origin) {
@@ -89,7 +89,7 @@ var ts;
89
89
  // The following is baselined as a literal template type without intervention
90
90
  /** The version of the TypeScript compiler release */
91
91
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
92
- ts.version = ts.versionMajorMinor + ".0-dev.20220421";
92
+ ts.version = ts.versionMajorMinor + ".0-dev.20220422";
93
93
  /* @internal */
94
94
  var Comparison;
95
95
  (function (Comparison) {
@@ -18282,10 +18282,10 @@ var ts;
18282
18282
  return ts.combinePaths(newDirPath, sourceFilePath);
18283
18283
  }
18284
18284
  ts.getSourceFilePathInNewDirWorker = getSourceFilePathInNewDirWorker;
18285
- function writeFile(host, diagnostics, fileName, data, writeByteOrderMark, sourceFiles) {
18286
- host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) {
18285
+ function writeFile(host, diagnostics, fileName, text, writeByteOrderMark, sourceFiles, data) {
18286
+ host.writeFile(fileName, text, writeByteOrderMark, function (hostErrorMessage) {
18287
18287
  diagnostics.add(createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage));
18288
- }, sourceFiles);
18288
+ }, sourceFiles, data);
18289
18289
  }
18290
18290
  ts.writeFile = writeFile;
18291
18291
  function ensureDirectoriesExist(directoryPath, createDirectory, directoryExists) {
@@ -73421,6 +73421,7 @@ var ts;
73421
73421
  }
73422
73422
  }
73423
73423
  else {
73424
+ error(attributeDecl.expression, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
73424
73425
  typeToIntersect = typeToIntersect ? getIntersectionType([typeToIntersect, exprType]) : exprType;
73425
73426
  }
73426
73427
  }
@@ -109955,6 +109956,7 @@ var ts;
109955
109956
  else {
109956
109957
  printer.writeFile(sourceFile, writer, sourceMapGenerator);
109957
109958
  }
109959
+ var sourceMapUrlPos;
109958
109960
  if (sourceMapGenerator) {
109959
109961
  if (sourceMapDataList) {
109960
109962
  sourceMapDataList.push({
@@ -109966,6 +109968,7 @@ var ts;
109966
109968
  if (sourceMappingURL) {
109967
109969
  if (!writer.isAtStartOfLine())
109968
109970
  writer.rawWrite(newLine);
109971
+ sourceMapUrlPos = writer.getTextPos();
109969
109972
  writer.writeComment("//# " + "sourceMappingURL" + "=" + sourceMappingURL); // Tools can sometimes see this line as a source mapping url comment
109970
109973
  }
109971
109974
  // Write the source map
@@ -109978,7 +109981,7 @@ var ts;
109978
109981
  writer.writeLine();
109979
109982
  }
109980
109983
  // Write the output file
109981
- ts.writeFile(host, emitterDiagnostics, jsFilePath, writer.getText(), !!compilerOptions.emitBOM, sourceFiles);
109984
+ ts.writeFile(host, emitterDiagnostics, jsFilePath, writer.getText(), !!compilerOptions.emitBOM, sourceFiles, { sourceMapUrlPos: sourceMapUrlPos });
109982
109985
  // Reset state
109983
109986
  writer.clear();
109984
109987
  }
@@ -115445,7 +115448,11 @@ var ts;
115445
115448
  return newValue;
115446
115449
  };
115447
115450
  if (originalWriteFile) {
115448
- host.writeFile = function (fileName, data, writeByteOrderMark, onError, sourceFiles) {
115451
+ host.writeFile = function (fileName, data) {
115452
+ var rest = [];
115453
+ for (var _i = 2; _i < arguments.length; _i++) {
115454
+ rest[_i - 2] = arguments[_i];
115455
+ }
115449
115456
  var key = toPath(fileName);
115450
115457
  fileExistsCache.delete(key);
115451
115458
  var value = readFileCache.get(key);
@@ -115459,7 +115466,7 @@ var ts;
115459
115466
  sourceFileCache.delete(key);
115460
115467
  }
115461
115468
  }
115462
- originalWriteFile.call(host, fileName, data, writeByteOrderMark, onError, sourceFiles);
115469
+ originalWriteFile.call.apply(originalWriteFile, __spreadArray([host, fileName, data], rest, false));
115463
115470
  };
115464
115471
  }
115465
115472
  // directoryExists
@@ -116392,6 +116399,7 @@ var ts;
116392
116399
  useCaseSensitiveFileNames: function () { return host.useCaseSensitiveFileNames(); },
116393
116400
  getFileIncludeReasons: function () { return fileReasons; },
116394
116401
  structureIsReused: structureIsReused,
116402
+ writeFile: writeFile,
116395
116403
  };
116396
116404
  onProgramCreateComplete();
116397
116405
  // Add file processingDiagnostics
@@ -116889,7 +116897,7 @@ var ts;
116889
116897
  getProjectReferenceRedirect: getProjectReferenceRedirect,
116890
116898
  isSourceOfProjectReferenceRedirect: isSourceOfProjectReferenceRedirect,
116891
116899
  getSymlinkCache: getSymlinkCache,
116892
- writeFile: writeFileCallback || (function (fileName, data, writeByteOrderMark, onError, sourceFiles) { return host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles); }),
116900
+ writeFile: writeFileCallback || writeFile,
116893
116901
  isEmitBlocked: isEmitBlocked,
116894
116902
  readFile: function (f) { return host.readFile(f); },
116895
116903
  fileExists: function (f) {
@@ -116909,6 +116917,9 @@ var ts;
116909
116917
  getFileIncludeReasons: program.getFileIncludeReasons,
116910
116918
  };
116911
116919
  }
116920
+ function writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
116921
+ host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
116922
+ }
116912
116923
  function emitBuildInfo(writeFileCallback) {
116913
116924
  ts.Debug.assert(!ts.outFile(options));
116914
116925
  ts.tracing === null || ts.tracing === void 0 ? void 0 : ts.tracing.push("emit" /* Emit */, "emitBuildInfo", {}, /*separateBeginAndEnd*/ true);
@@ -119351,6 +119362,7 @@ var ts;
119351
119362
  }
119352
119363
  }
119353
119364
  }
119365
+ BuilderState.updateExportedModules = updateExportedModules;
119354
119366
  /**
119355
119367
  * Updates the exported modules from cache into state's exported modules map
119356
119368
  * This should be called whenever it is safe to commit the state of the builder
@@ -120315,7 +120327,43 @@ var ts;
120315
120327
  return toAffectedFileEmitResult(state,
120316
120328
  // When whole program is affected, do emit only once (eg when --out or --outFile is specified)
120317
120329
  // Otherwise just affected file
120318
- ts.Debug.checkDefined(state.program).emit(affected === state.program ? undefined : affected, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles || emitKind === 0 /* DtsOnly */, customTransformers), affected, emitKind, isPendingEmitFile);
120330
+ ts.Debug.checkDefined(state.program).emit(affected === state.program ? undefined : affected, affected !== state.program && ts.getEmitDeclarations(state.compilerOptions) && !customTransformers ?
120331
+ getWriteFileUpdatingSignatureCallback(writeFile) :
120332
+ writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles || emitKind === 0 /* DtsOnly */, customTransformers), affected, emitKind, isPendingEmitFile);
120333
+ }
120334
+ function getWriteFileUpdatingSignatureCallback(writeFile) {
120335
+ return function (fileName, text, writeByteOrderMark, onError, sourceFiles, data) {
120336
+ var _a;
120337
+ if (ts.isDeclarationFileName(fileName)) {
120338
+ ts.Debug.assert((sourceFiles === null || sourceFiles === void 0 ? void 0 : sourceFiles.length) === 1);
120339
+ var file = sourceFiles[0];
120340
+ var info = state.fileInfos.get(file.resolvedPath);
120341
+ var signature = ((_a = state.currentAffectedFilesSignatures) === null || _a === void 0 ? void 0 : _a.get(file.resolvedPath)) || info.signature;
120342
+ if (signature === file.version) {
120343
+ var newSignature = (computeHash || ts.generateDjb2Hash)((data === null || data === void 0 ? void 0 : data.sourceMapUrlPos) !== undefined ? text.substring(0, data.sourceMapUrlPos) : text);
120344
+ if (newSignature !== file.version) { // Update it
120345
+ if (host.storeFilesChangingSignatureDuringEmit)
120346
+ (state.filesChangingSignature || (state.filesChangingSignature = new ts.Set())).add(file.resolvedPath);
120347
+ if (state.exportedModulesMap)
120348
+ ts.BuilderState.updateExportedModules(file, file.exportedModulesFromDeclarationEmit, state.currentAffectedFilesExportedModulesMap || (state.currentAffectedFilesExportedModulesMap = ts.BuilderState.createManyToManyPathMap()));
120349
+ if (state.affectedFiles && state.affectedFilesIndex < state.affectedFiles.length) {
120350
+ state.currentAffectedFilesSignatures.set(file.resolvedPath, newSignature);
120351
+ }
120352
+ else {
120353
+ info.signature = newSignature;
120354
+ if (state.exportedModulesMap)
120355
+ ts.BuilderState.updateExportedFilesMapFromCache(state, state.currentAffectedFilesExportedModulesMap);
120356
+ }
120357
+ }
120358
+ }
120359
+ }
120360
+ if (writeFile)
120361
+ writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120362
+ else if (host.writeFile)
120363
+ host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120364
+ else
120365
+ state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);
120366
+ };
120319
120367
  }
120320
120368
  /**
120321
120369
  * Emits the JavaScript and declaration files.
@@ -120372,7 +120420,9 @@ var ts;
120372
120420
  }
120373
120421
  }
120374
120422
  }
120375
- return ts.Debug.checkDefined(state.program).emit(targetSourceFile, writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
120423
+ return ts.Debug.checkDefined(state.program).emit(targetSourceFile, !ts.outFile(state.compilerOptions) && ts.getEmitDeclarations(state.compilerOptions) && !customTransformers ?
120424
+ getWriteFileUpdatingSignatureCallback(writeFile) :
120425
+ writeFile || ts.maybeBind(host, host.writeFile), cancellationToken, emitOnlyDtsFiles, customTransformers);
120376
120426
  }
120377
120427
  /**
120378
120428
  * Return the semantic diagnostics for the next affected file or undefined if iteration is complete
@@ -122564,6 +122614,7 @@ var ts;
122564
122614
  createHash: ts.maybeBind(host, host.createHash),
122565
122615
  readDirectory: ts.maybeBind(host, host.readDirectory),
122566
122616
  disableUseFileVersionAsSignature: host.disableUseFileVersionAsSignature,
122617
+ storeFilesChangingSignatureDuringEmit: host.storeFilesChangingSignatureDuringEmit,
122567
122618
  };
122568
122619
  function writeFile(fileName, text, writeByteOrderMark, onError) {
122569
122620
  try {
@@ -122623,6 +122674,7 @@ var ts;
122623
122674
  createHash: ts.maybeBind(system, system.createHash),
122624
122675
  createProgram: createProgram || ts.createEmitAndSemanticDiagnosticsBuilderProgram,
122625
122676
  disableUseFileVersionAsSignature: system.disableUseFileVersionAsSignature,
122677
+ storeFilesChangingSignatureDuringEmit: system.storeFilesChangingSignatureDuringEmit,
122626
122678
  };
122627
122679
  }
122628
122680
  ts.createProgramHost = createProgramHost;
@@ -122711,6 +122763,7 @@ var ts;
122711
122763
  var host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, system);
122712
122764
  host.createHash = ts.maybeBind(system, system.createHash);
122713
122765
  host.disableUseFileVersionAsSignature = system.disableUseFileVersionAsSignature;
122766
+ host.storeFilesChangingSignatureDuringEmit = system.storeFilesChangingSignatureDuringEmit;
122714
122767
  ts.setGetSourceFileAsHashVersioned(host, system);
122715
122768
  ts.changeCompilerHostLikeToUseCache(host, function (fileName) { return ts.toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName); });
122716
122769
  return host;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "typescript",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "4.7.0-dev.20220421",
5
+ "version": "4.7.0-dev.20220422",
6
6
  "license": "Apache-2.0",
7
7
  "description": "TypeScript is a language for application scale JavaScript development",
8
8
  "keywords": [