tsc-ts 0.0.10 → 0.1.0
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.
- package/README.md +1 -1
- package/bin/tsc-ts.js +70 -1
- package/dist/api/compiler/ast-utilities.d.ts +19 -1
- package/dist/api/compiler/ast-utilities.js +180 -95
- package/dist/api/compiler/ast.d.ts +20 -15
- package/dist/api/compiler/ast.js +1023 -995
- package/dist/api/compiler/astnav.js +15 -15
- package/dist/api/compiler/binder-utilities.js +186 -186
- package/dist/api/compiler/binder.js +290 -263
- package/dist/api/compiler/character-codes.js +2 -2
- package/dist/api/compiler/checker-calls.js +173 -123
- package/dist/api/compiler/checker-classes.d.ts +14 -3
- package/dist/api/compiler/checker-classes.js +134 -90
- package/dist/api/compiler/checker-contextual.js +64 -61
- package/dist/api/compiler/checker-declaration-order.js +79 -79
- package/dist/api/compiler/checker-declarations.d.ts +1 -0
- package/dist/api/compiler/checker-declarations.js +160 -136
- package/dist/api/compiler/checker-declared-types.js +67 -65
- package/dist/api/compiler/checker-decorators.js +77 -77
- package/dist/api/compiler/checker-deprecation.d.ts +8 -3
- package/dist/api/compiler/checker-deprecation.js +76 -55
- package/dist/api/compiler/checker-destructuring.js +47 -45
- package/dist/api/compiler/checker-elaboration.js +24 -24
- package/dist/api/compiler/checker-emit-helpers.js +4 -4
- package/dist/api/compiler/checker-emit-resolver.d.ts +4 -2
- package/dist/api/compiler/checker-emit-resolver.js +25 -13
- package/dist/api/compiler/checker-evaluator.js +9 -9
- package/dist/api/compiler/checker-expressions.js +244 -211
- package/dist/api/compiler/checker-functions.js +113 -107
- package/dist/api/compiler/checker-generated-code.d.ts +0 -11
- package/dist/api/compiler/checker-generated-code.js +28 -52
- package/dist/api/compiler/checker-grammar.d.ts +1 -0
- package/dist/api/compiler/checker-grammar.js +469 -438
- package/dist/api/compiler/checker-heritage.js +91 -93
- package/dist/api/compiler/checker-inference.d.ts +77 -5
- package/dist/api/compiler/checker-inference.js +487 -113
- package/dist/api/compiler/checker-iteration.d.ts +0 -10
- package/dist/api/compiler/checker-iteration.js +35 -52
- package/dist/api/compiler/checker-javascript.js +14 -14
- package/dist/api/compiler/checker-jsdoc.d.ts +8 -10
- package/dist/api/compiler/checker-jsdoc.js +67 -58
- package/dist/api/compiler/checker-jsx.js +105 -88
- package/dist/api/compiler/checker-members.d.ts +9 -2
- package/dist/api/compiler/checker-members.js +210 -74
- package/dist/api/compiler/checker-modules.d.ts +15 -6
- package/dist/api/compiler/checker-modules.js +469 -309
- package/dist/api/compiler/checker-narrowing.js +273 -189
- package/dist/api/compiler/checker-object-literals.js +25 -22
- package/dist/api/compiler/checker-operators.js +126 -118
- package/dist/api/compiler/checker-overloads.js +27 -27
- package/dist/api/compiler/checker-property-access.js +59 -55
- package/dist/api/compiler/checker-services.d.ts +1 -0
- package/dist/api/compiler/checker-services.js +222 -210
- package/dist/api/compiler/checker-signatures.js +65 -49
- package/dist/api/compiler/checker-source-file.d.ts +5 -0
- package/dist/api/compiler/checker-source-file.js +154 -130
- package/dist/api/compiler/checker-statements.js +33 -32
- package/dist/api/compiler/checker-super.js +50 -50
- package/dist/api/compiler/checker-symbol-types.js +109 -93
- package/dist/api/compiler/checker-symbols.d.ts +13 -1
- package/dist/api/compiler/checker-symbols.js +264 -149
- package/dist/api/compiler/checker-type-factory.d.ts +5 -0
- package/dist/api/compiler/checker-type-factory.js +137 -34
- package/dist/api/compiler/checker-type-nodes.d.ts +1 -0
- package/dist/api/compiler/checker-type-nodes.js +179 -141
- package/dist/api/compiler/checker-type-operators.d.ts +2 -0
- package/dist/api/compiler/checker-type-operators.js +110 -63
- package/dist/api/compiler/checker-types.d.ts +80 -3
- package/dist/api/compiler/checker-types.js +121 -2
- package/dist/api/compiler/checker-unused.js +114 -118
- package/dist/api/compiler/checker-utilities.js +11 -11
- package/dist/api/compiler/checker.d.ts +93 -31
- package/dist/api/compiler/checker.js +143 -35
- package/dist/api/compiler/command-line.d.ts +1 -3
- package/dist/api/compiler/command-line.js +47 -44
- package/dist/api/compiler/compile-program.d.ts +19 -4
- package/dist/api/compiler/compile-program.js +45 -26
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.js +7 -7
- package/dist/api/compiler/emitter.d.ts +7 -1
- package/dist/api/compiler/emitter.js +53 -11
- package/dist/api/compiler/file-include.d.ts +2 -1
- package/dist/api/compiler/file-include.js +11 -7
- package/dist/api/compiler/file-loader.d.ts +10 -0
- package/dist/api/compiler/file-loader.js +138 -41
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +23 -23
- package/dist/api/compiler/link-tables.d.ts +48 -18
- package/dist/api/compiler/link-tables.js +80 -37
- package/dist/api/compiler/locales/cs-CZ.d.ts +1 -1
- package/dist/api/compiler/locales/cs-CZ.js +1 -1
- package/dist/api/compiler/locales/de-DE.d.ts +1 -1
- package/dist/api/compiler/locales/de-DE.js +1 -1
- package/dist/api/compiler/locales/es-ES.d.ts +1 -1
- package/dist/api/compiler/locales/es-ES.js +1 -1
- package/dist/api/compiler/locales/fr-FR.d.ts +1 -1
- package/dist/api/compiler/locales/fr-FR.js +1 -1
- package/dist/api/compiler/locales/it-IT.d.ts +1 -1
- package/dist/api/compiler/locales/it-IT.js +1 -1
- package/dist/api/compiler/locales/ja-JP.d.ts +1 -1
- package/dist/api/compiler/locales/ja-JP.js +1 -1
- package/dist/api/compiler/locales/ko-KR.d.ts +1 -1
- package/dist/api/compiler/locales/ko-KR.js +1 -1
- package/dist/api/compiler/locales/pl-PL.d.ts +1 -1
- package/dist/api/compiler/locales/pl-PL.js +1 -1
- package/dist/api/compiler/locales/pt-BR.d.ts +1 -1
- package/dist/api/compiler/locales/pt-BR.js +1 -1
- package/dist/api/compiler/locales/ru-RU.d.ts +1 -1
- package/dist/api/compiler/locales/ru-RU.js +1 -1
- package/dist/api/compiler/locales/tr-TR.d.ts +1 -1
- package/dist/api/compiler/locales/tr-TR.js +1 -1
- package/dist/api/compiler/locales/zh-CN.d.ts +1 -1
- package/dist/api/compiler/locales/zh-CN.js +1 -1
- package/dist/api/compiler/locales/zh-TW.d.ts +1 -1
- package/dist/api/compiler/locales/zh-TW.js +1 -1
- package/dist/api/compiler/module-resolution-types.js +6 -6
- package/dist/api/compiler/module-resolution.d.ts +10 -1
- package/dist/api/compiler/module-resolution.js +115 -84
- package/dist/api/compiler/module-specifiers.d.ts +15 -0
- package/dist/api/compiler/module-specifiers.js +24 -18
- package/dist/api/compiler/name-resolver.js +74 -65
- package/dist/api/compiler/node-builder-names.d.ts +11 -3
- package/dist/api/compiler/node-builder-names.js +210 -90
- package/dist/api/compiler/node-builder-pseudo.js +29 -31
- package/dist/api/compiler/node-builder-reuse.js +23 -22
- package/dist/api/compiler/node-builder.d.ts +18 -1
- package/dist/api/compiler/node-builder.js +191 -102
- package/dist/api/compiler/option-declarations.d.ts +2 -6
- package/dist/api/compiler/option-declarations.js +315 -375
- package/dist/api/compiler/options.d.ts +15 -33
- package/dist/api/compiler/options.js +21 -54
- package/dist/api/compiler/output-paths.d.ts +4 -1
- package/dist/api/compiler/output-paths.js +6 -11
- package/dist/api/compiler/package-json.d.ts +3 -3
- package/dist/api/compiler/package-json.js +11 -10
- package/dist/api/compiler/parser.d.ts +40 -19
- package/dist/api/compiler/parser.js +308 -216
- package/dist/api/compiler/path.d.ts +9 -0
- package/dist/api/compiler/path.js +20 -3
- package/dist/api/compiler/printer/emit-context.d.ts +3 -1
- package/dist/api/compiler/printer/emit-context.js +16 -1
- package/dist/api/compiler/printer/factory-base.d.ts +2 -2
- package/dist/api/compiler/printer/factory-base.js +7 -3
- package/dist/api/compiler/printer/factory.js +3 -1
- package/dist/api/compiler/printer/helpers.js +10 -1
- package/dist/api/compiler/printer/name-generator.d.ts +1 -1
- package/dist/api/compiler/printer/name-generator.js +35 -16
- package/dist/api/compiler/printer/printer.d.ts +1 -0
- package/dist/api/compiler/printer/printer.js +303 -281
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +8 -2
- package/dist/api/compiler/program-checker.js +84 -34
- package/dist/api/compiler/program-utilities.d.ts +3 -1
- package/dist/api/compiler/program-utilities.js +28 -15
- package/dist/api/compiler/program.d.ts +2 -0
- package/dist/api/compiler/program.js +69 -57
- package/dist/api/compiler/pseudo-bigint.d.ts +2 -0
- package/dist/api/compiler/pseudo-bigint.js +18 -0
- package/dist/api/compiler/regexp-checker.d.ts +1 -1
- package/dist/api/compiler/regexp-checker.js +93 -76
- package/dist/api/compiler/relations.d.ts +27 -4
- package/dist/api/compiler/relations.js +337 -180
- package/dist/api/compiler/reparser.js +60 -56
- package/dist/api/compiler/scanner.d.ts +19 -2
- package/dist/api/compiler/scanner.js +123 -108
- package/dist/api/compiler/shared-results.d.ts +463 -0
- package/dist/api/compiler/shared-results.js +2128 -0
- package/dist/api/compiler/sourcemap.js +2 -2
- package/dist/api/compiler/symbol-accessibility.js +87 -74
- package/dist/api/compiler/symbol.d.ts +22 -13
- package/dist/api/compiler/symbol.js +15 -1
- package/dist/api/compiler/syntax-kind.d.ts +198 -197
- package/dist/api/compiler/transformers/alias-references.js +247 -139
- package/dist/api/compiler/transformers/async-utilities.js +25 -25
- package/dist/api/compiler/transformers/async.d.ts +0 -1
- package/dist/api/compiler/transformers/async.js +64 -77
- package/dist/api/compiler/transformers/class-fields.d.ts +1 -0
- package/dist/api/compiler/transformers/class-fields.js +81 -78
- package/dist/api/compiler/transformers/commonjs-module.js +18 -15
- package/dist/api/compiler/transformers/const-enum-inliner.js +1 -1
- package/dist/api/compiler/transformers/declarations-diagnostics.js +247 -244
- package/dist/api/compiler/transformers/declarations-pseudo.js +100 -100
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +0 -3
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +1 -2
- package/dist/api/compiler/transformers/declarations-syntactic.js +134 -156
- package/dist/api/compiler/transformers/declarations-tracker.js +18 -18
- package/dist/api/compiler/transformers/declarations.d.ts +4 -1
- package/dist/api/compiler/transformers/declarations.js +305 -238
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +1 -1
- package/dist/api/compiler/transformers/decorator-metadata.js +53 -45
- package/dist/api/compiler/transformers/decorator-utilities.js +24 -24
- package/dist/api/compiler/transformers/destructuring.js +19 -18
- package/dist/api/compiler/transformers/emit-resolver.js +1 -1
- package/dist/api/compiler/transformers/es-decorators.js +55 -55
- package/dist/api/compiler/transformers/external-module-info.js +3 -3
- package/dist/api/compiler/transformers/for-await.js +25 -25
- package/dist/api/compiler/transformers/import-elision.js +14 -14
- package/dist/api/compiler/transformers/jsx.js +12 -12
- package/dist/api/compiler/transformers/legacy-decorators.js +17 -17
- package/dist/api/compiler/transformers/module.js +8 -8
- package/dist/api/compiler/transformers/named-evaluation.js +4 -4
- package/dist/api/compiler/transformers/object-rest-spread.js +20 -20
- package/dist/api/compiler/transformers/optional-chain.js +10 -10
- package/dist/api/compiler/transformers/reference-resolver.d.ts +12 -1
- package/dist/api/compiler/transformers/reference-resolver.js +131 -69
- package/dist/api/compiler/transformers/runtime-syntax.js +35 -31
- package/dist/api/compiler/transformers/subtree-facts.js +47 -47
- package/dist/api/compiler/transformers/syntax-facts.js +56 -58
- package/dist/api/compiler/transformers/type-eraser.js +73 -66
- package/dist/api/compiler/transformers/type-serialization.js +24 -24
- package/dist/api/compiler/transformers/using.js +12 -12
- package/dist/api/compiler/transformers/utilities.js +77 -77
- package/dist/api/compiler/transformers/visitor-base.js +172 -172
- package/dist/api/compiler/transformers/visitor-hooks.js +6 -2
- package/dist/api/compiler/tsconfig.d.ts +10 -2
- package/dist/api/compiler/tsconfig.js +136 -48
- package/dist/api/compiler/type-printer.js +40 -3
- package/dist/api/compiler/types.d.ts +2 -1
- package/dist/api/library/ast.generated.d.ts +42 -39
- package/dist/api/library/ast.generated.js +1 -1
- package/dist/api/library/compiler-options.generated.d.ts +111 -100
- package/dist/api/library/compiler-options.generated.js +1 -1
- package/dist/api/library/disk.js +12 -1
- package/dist/api/library/enums.generated.d.ts +206 -206
- package/dist/api/library/enums.generated.js +206 -206
- package/dist/api/library/nodes.js +26 -26
- package/package.json +9 -9
- package/src/compiler/ast-utilities.ts +99 -7
- package/src/compiler/ast.ts +55 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- package/src/compiler/checker-classes.ts +78 -24
- package/src/compiler/checker-contextual.ts +6 -1
- package/src/compiler/checker-declarations.ts +31 -4
- package/src/compiler/checker-declared-types.ts +8 -5
- package/src/compiler/checker-decorators.ts +1 -1
- package/src/compiler/checker-deprecation.ts +29 -8
- package/src/compiler/checker-destructuring.ts +10 -3
- package/src/compiler/checker-emit-helpers.ts +1 -0
- package/src/compiler/checker-emit-resolver.ts +16 -6
- package/src/compiler/checker-expressions.ts +79 -46
- package/src/compiler/checker-functions.ts +21 -6
- package/src/compiler/checker-generated-code.ts +2 -22
- package/src/compiler/checker-grammar.ts +133 -60
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -87
- package/src/compiler/checker-iteration.ts +18 -31
- package/src/compiler/checker-javascript.ts +1 -1
- package/src/compiler/checker-jsdoc.ts +50 -27
- package/src/compiler/checker-jsx.ts +26 -4
- package/src/compiler/checker-members.ts +197 -55
- package/src/compiler/checker-modules.ts +332 -65
- package/src/compiler/checker-narrowing.ts +98 -19
- package/src/compiler/checker-object-literals.ts +3 -0
- package/src/compiler/checker-operators.ts +11 -4
- package/src/compiler/checker-property-access.ts +7 -2
- package/src/compiler/checker-services.ts +39 -12
- package/src/compiler/checker-signatures.ts +15 -1
- package/src/compiler/checker-source-file.ts +39 -13
- package/src/compiler/checker-statements.ts +3 -2
- package/src/compiler/checker-symbol-types.ts +29 -6
- package/src/compiler/checker-symbols.ts +158 -15
- package/src/compiler/checker-type-factory.ts +120 -21
- package/src/compiler/checker-type-nodes.ts +46 -3
- package/src/compiler/checker-type-operators.ts +83 -26
- package/src/compiler/checker-types.ts +147 -4
- package/src/compiler/checker-unused.ts +9 -14
- package/src/compiler/checker.ts +168 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +51 -25
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/file-include.ts +9 -3
- package/src/compiler/file-loader.ts +139 -32
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +86 -18
- package/src/compiler/init.ts +2 -7
- package/src/compiler/instantiation.ts +77 -22
- package/src/compiler/jsdoc.ts +3 -1
- package/src/compiler/link-tables.ts +82 -37
- package/src/compiler/locales/cs-CZ.ts +1 -1
- package/src/compiler/locales/de-DE.ts +1 -1
- package/src/compiler/locales/es-ES.ts +1 -1
- package/src/compiler/locales/fr-FR.ts +1 -1
- package/src/compiler/locales/it-IT.ts +1 -1
- package/src/compiler/locales/ja-JP.ts +1 -1
- package/src/compiler/locales/ko-KR.ts +1 -1
- package/src/compiler/locales/pl-PL.ts +1 -1
- package/src/compiler/locales/pt-BR.ts +1 -1
- package/src/compiler/locales/ru-RU.ts +1 -1
- package/src/compiler/locales/tr-TR.ts +1 -1
- package/src/compiler/locales/zh-CN.ts +1 -1
- package/src/compiler/locales/zh-TW.ts +1 -1
- package/src/compiler/module-resolution.ts +44 -8
- package/src/compiler/module-specifiers.ts +62 -20
- package/src/compiler/name-resolver.ts +9 -1
- package/src/compiler/node-builder-names.ts +236 -54
- package/src/compiler/node-builder-pseudo.ts +4 -7
- package/src/compiler/node-builder-reuse.ts +5 -4
- package/src/compiler/node-builder.ts +130 -31
- package/src/compiler/option-declarations.ts +33 -103
- package/src/compiler/options.ts +23 -62
- package/src/compiler/output-paths.ts +5 -18
- package/src/compiler/package-entrypoints.ts +345 -0
- package/src/compiler/package-json.ts +4 -4
- package/src/compiler/parallel-check.ts +197 -8
- package/src/compiler/parallel-emit.ts +1 -1
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +16 -0
- package/src/compiler/printer/factory-base.ts +10 -3
- package/src/compiler/printer/factory.ts +4 -1
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +35 -14
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +53 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +13 -1
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +233 -77
- package/src/compiler/reparser.ts +7 -2
- package/src/compiler/scanner.ts +109 -79
- package/src/compiler/shared-results.ts +2414 -0
- package/src/compiler/show-config.ts +18 -1
- package/src/compiler/sourcemap.ts +2 -2
- package/src/compiler/symbol-accessibility.ts +26 -3
- package/src/compiler/symbol.ts +31 -14
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +19 -2
- package/src/compiler/transformers/alias-references.ts +123 -4
- package/src/compiler/transformers/async.ts +2 -17
- package/src/compiler/transformers/class-fields.ts +13 -12
- package/src/compiler/transformers/commonjs-module.ts +11 -7
- package/src/compiler/transformers/declarations-diagnostics.ts +5 -3
- package/src/compiler/transformers/declarations-pseudo.ts +2 -4
- package/src/compiler/transformers/declarations-resolver.ts +0 -3
- package/src/compiler/transformers/declarations-syntactic.ts +1 -21
- package/src/compiler/transformers/declarations.ts +134 -48
- package/src/compiler/transformers/decorator-metadata.ts +9 -1
- package/src/compiler/transformers/destructuring.ts +4 -3
- package/src/compiler/transformers/external-module-info.ts +1 -1
- package/src/compiler/transformers/jsx.ts +2 -1
- package/src/compiler/transformers/reference-resolver.ts +83 -19
- package/src/compiler/transformers/runtime-syntax.ts +6 -1
- package/src/compiler/transformers/syntax-facts.ts +2 -7
- package/src/compiler/transformers/type-eraser.ts +10 -1
- package/src/compiler/transformers/type-serialization.ts +3 -2
- package/src/compiler/transformers/visitor-base.ts +2 -1
- package/src/compiler/transformers/visitor-hooks.ts +9 -4
- package/src/compiler/tsc-build.ts +3 -0
- package/src/compiler/tsc-cli.ts +2 -0
- package/src/compiler/tsc-compile.ts +7 -2
- package/src/compiler/tsc-watch.ts +74 -45
- package/src/compiler/tsconfig.ts +176 -19
- package/src/compiler/type-printer.ts +36 -2
- package/src/compiler/types.ts +2 -1
- package/src/library/ast.generated.ts +57 -41
- package/src/library/compiler-options.generated.ts +117 -103
- package/src/library/disk.ts +10 -1
- package/src/library/enums.generated.ts +196 -196
|
@@ -747,7 +747,7 @@ export function formatDiagnosticWithColorAndContext(diagnostic, options) {
|
|
|
747
747
|
result += styled(categoryName(diagnostic.category), color);
|
|
748
748
|
result += `${grey} TS${diagnostic.code}: ${reset}`;
|
|
749
749
|
result += flattenDiagnosticMessage(diagnostic, newLine, options.locale);
|
|
750
|
-
if (file !== undefined && diagnostic.code !== messageCode(
|
|
750
|
+
if (file !== undefined && diagnostic.code !== messageCode(403 /* Diagnostics.File_appears_to_be_binary */)) {
|
|
751
751
|
result +=
|
|
752
752
|
newLine + codeSnippet(file, diagnostic.pos, diagnostic.end - diagnostic.pos, color, '', options) + newLine;
|
|
753
753
|
}
|
|
@@ -831,20 +831,20 @@ export function formatErrorSummary(diagnostics, options) {
|
|
|
831
831
|
if (totalErrorCount === 1) {
|
|
832
832
|
message =
|
|
833
833
|
globalErrorCount > 0 || firstFileName === ''
|
|
834
|
-
? localizeMessage(locale,
|
|
835
|
-
: localizeMessage(locale,
|
|
834
|
+
? localizeMessage(locale, 1380 /* Diagnostics.Found_1_error */, [])
|
|
835
|
+
: localizeMessage(locale, 1422 /* Diagnostics.Found_1_error_in_0 */, [firstFileName]);
|
|
836
836
|
}
|
|
837
837
|
else if (fileCount === 0) {
|
|
838
|
-
message = localizeMessage(locale,
|
|
838
|
+
message = localizeMessage(locale, 1381 /* Diagnostics.Found_0_errors */, [String(totalErrorCount)]);
|
|
839
839
|
}
|
|
840
840
|
else if (fileCount === 1) {
|
|
841
|
-
message = localizeMessage(locale,
|
|
841
|
+
message = localizeMessage(locale, 1423 /* Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 */, [
|
|
842
842
|
String(totalErrorCount),
|
|
843
843
|
firstFileName,
|
|
844
844
|
]);
|
|
845
845
|
}
|
|
846
846
|
else {
|
|
847
|
-
message = localizeMessage(locale,
|
|
847
|
+
message = localizeMessage(locale, 1424 /* Diagnostics.Found_0_errors_in_1_files */, [
|
|
848
848
|
String(totalErrorCount),
|
|
849
849
|
String(fileCount),
|
|
850
850
|
]);
|
|
@@ -854,7 +854,7 @@ export function formatErrorSummary(diagnostics, options) {
|
|
|
854
854
|
let maxErrors = 0;
|
|
855
855
|
for (const entry of sorted)
|
|
856
856
|
maxErrors = Math.max(maxErrors, entry.errors.length);
|
|
857
|
-
const headerRow = localizeMessage(locale,
|
|
857
|
+
const headerRow = localizeMessage(locale, 1231 /* Diagnostics.Errors_Files */, []);
|
|
858
858
|
const leftColumnHeadingLength = utf8Length(headerRow.split(' ')[0]);
|
|
859
859
|
const lengthOfBiggestErrorCount = String(maxErrors).length;
|
|
860
860
|
const leftPaddingGoal = Math.max(leftColumnHeadingLength, lengthOfBiggestErrorCount);
|
|
@@ -66,6 +66,12 @@ export declare const enum EmitOnly {
|
|
|
66
66
|
* The declaration file alone, even without `declaration` and despite errors, for the shape
|
|
67
67
|
* signature of incremental builds; it is written with its errors and without a map.
|
|
68
68
|
*/
|
|
69
|
-
ForcedDts = 3
|
|
69
|
+
ForcedDts = 3,
|
|
70
|
+
/**
|
|
71
|
+
* The declaration file of a file whose JavaScript this build emits in a separate request, such as on another
|
|
72
|
+
* thread. tsgo emits both with one emit context, so the emit flags its JavaScript transforms set on the file's
|
|
73
|
+
* own nodes also apply to its declarations; this replays those transforms first.
|
|
74
|
+
*/
|
|
75
|
+
DtsAfterJs = 4
|
|
70
76
|
}
|
|
71
77
|
export declare function emitFiles(host: EmitHost, files: readonly SourceFile[], emitOnly?: EmitOnly): EmitResult;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { compareDiagnostics } from './diagnostics.js';
|
|
1
|
+
import { compareDiagnostics, equalDiagnostics } from './diagnostics.js';
|
|
2
2
|
import { JsxEmit, NewLineKind, getEmitScriptTarget, getIsolatedModules } from './options.js';
|
|
3
3
|
import { getOutputPathsFor } from './output-paths.js';
|
|
4
4
|
import { combinePaths, fileExtensionIs, getBaseFileName, getDirectoryPath, getRootLength, normalizePath, normalizeSlashes, ensureTrailingDirectorySeparator, containsPath, getNormalizedAbsolutePath, } from './path.js';
|
|
@@ -107,30 +107,52 @@ export function emitFiles(host, files, emitOnly = 0 /* EmitOnly.All */) {
|
|
|
107
107
|
if (!sourceFileMayBeEmitted(file, options) || host.isSourceFileFromExternalLibrary(file))
|
|
108
108
|
continue;
|
|
109
109
|
const paths = getOutputPathsFor(file.fileName, file.scriptKind === 6 /* ScriptKind.JSON */, options, host, forced);
|
|
110
|
+
// As in tsgo, a file's JavaScript and declarations share one emit context: emit flags that JavaScript
|
|
111
|
+
// transforms set on the file's own nodes, such as a decorated parameter's name, also apply to its declarations.
|
|
112
|
+
const context = new EmitContext();
|
|
110
113
|
if (paths.jsFilePath !== '' && (emitOnly === 0 /* EmitOnly.All */ || emitOnly === 1 /* EmitOnly.Js */)) {
|
|
111
114
|
if (host.isEmitBlocked(paths.jsFilePath))
|
|
112
115
|
result.emitSkipped = true;
|
|
113
116
|
else
|
|
114
|
-
emitJSFile(host, file, paths.jsFilePath, paths.sourceMapFilePath, result);
|
|
117
|
+
emitJSFile(host, context, file, paths.jsFilePath, paths.sourceMapFilePath, result);
|
|
115
118
|
}
|
|
116
119
|
if (paths.declarationFilePath !== '' && emitOnly !== 1 /* EmitOnly.Js */) {
|
|
117
120
|
if (!forced && host.isEmitBlocked(paths.declarationFilePath))
|
|
118
121
|
result.emitSkipped = true;
|
|
119
|
-
else
|
|
120
|
-
|
|
122
|
+
else {
|
|
123
|
+
if (emitOnly === 4 /* EmitOnly.DtsAfterJs */ && paths.jsFilePath !== '')
|
|
124
|
+
replayScriptTransforms(host, context, file);
|
|
125
|
+
emitDeclarationFile(host, context, file, paths.declarationFilePath, paths.declarationMapPath, result, forced);
|
|
126
|
+
}
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
return result;
|
|
124
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Runs the JavaScript transforms of `file` in `context` without printing, for the emit flags they set on the
|
|
133
|
+
* file's own nodes. Only the decorator transforms set any that declaration emit prints (on decorated parameters'
|
|
134
|
+
* names), so files without decorators are skipped.
|
|
135
|
+
*/
|
|
136
|
+
function replayScriptTransforms(host, context, file) {
|
|
137
|
+
if (!new SyntaxFacts().has(file, 262144 /* SubtreeFacts.ContainsDecorators */))
|
|
138
|
+
return;
|
|
139
|
+
let transformed = file;
|
|
140
|
+
const transformers = getScriptTransformers(host, context, file);
|
|
141
|
+
for (let i = 0; i < transformers.length; i++) {
|
|
142
|
+
const transformer = transformers[i];
|
|
143
|
+
if (transformer.unsupported !== '')
|
|
144
|
+
return;
|
|
145
|
+
transformed = transformer.transformSourceFile(transformed);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
125
148
|
/** Emits a declaration file; the host's resolver must be a `DeclarationEmitResolver`. */
|
|
126
|
-
function emitDeclarationFile(host, file, declarationFilePath, declarationMapPath, result, forced) {
|
|
149
|
+
function emitDeclarationFile(host, context, file, declarationFilePath, declarationMapPath, result, forced) {
|
|
127
150
|
const resolver = host.resolver;
|
|
128
151
|
if (!(resolver instanceof DeclarationEmitResolver)) {
|
|
129
152
|
result.errors.push(file.fileName + ': declaration emit needs a declaration resolver');
|
|
130
153
|
return false;
|
|
131
154
|
}
|
|
132
155
|
const options = host.options;
|
|
133
|
-
const context = new EmitContext();
|
|
134
156
|
const transformer = new DeclarationTransformer(context, host, options, resolver, declarationFilePath);
|
|
135
157
|
const transformed = transformer.transformSourceFile(file);
|
|
136
158
|
result.declarationTransformed = true;
|
|
@@ -152,9 +174,30 @@ function emitDeclarationFile(host, file, declarationFilePath, declarationMapPath
|
|
|
152
174
|
printerOptions.omitBraceSourceMapPositions = true;
|
|
153
175
|
const printer = new Printer(printerOptions, context);
|
|
154
176
|
const emitSourceMaps = declarationMap && !fileExtensionIs(file.fileName, '.json');
|
|
155
|
-
return printSourceFile(host, declarationFilePath, forced ? '' : declarationMapPath, transformed, printer, emitSourceMaps, false, result,
|
|
156
|
-
|
|
157
|
-
|
|
177
|
+
return printSourceFile(host, declarationFilePath, forced ? '' : declarationMapPath, transformed, printer, emitSourceMaps, false, result, emitterDiagnostics(diagnostics));
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Declaration diagnostics as tsgo's emitter collects them: sorted, without repeats of an equal
|
|
181
|
+
* diagnostic. They are part of the file's signature in build info.
|
|
182
|
+
*/
|
|
183
|
+
function emitterDiagnostics(diagnostics) {
|
|
184
|
+
if (diagnostics.length < 2)
|
|
185
|
+
return diagnostics;
|
|
186
|
+
const sorted = diagnostics.toSorted(compareDiagnostics);
|
|
187
|
+
const result = [];
|
|
188
|
+
for (const diagnostic of sorted) {
|
|
189
|
+
// Equal diagnostics compare as 0, so a repeat is among the last ones kept that compare as 0.
|
|
190
|
+
let repeated = false;
|
|
191
|
+
for (let i = result.length - 1; i >= 0 && compareDiagnostics(result[i], diagnostic) === 0; i--) {
|
|
192
|
+
if (equalDiagnostics(result[i], diagnostic)) {
|
|
193
|
+
repeated = true;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (!repeated)
|
|
198
|
+
result.push(diagnostic);
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
158
201
|
}
|
|
159
202
|
function getScriptTransformers(host, context, file) {
|
|
160
203
|
const options = host.options;
|
|
@@ -182,9 +225,8 @@ function isJsxTransformEnabled(options) {
|
|
|
182
225
|
const jsx = options.jsx;
|
|
183
226
|
return jsx === JsxEmit.React || jsx === JsxEmit.ReactJSX || jsx === JsxEmit.ReactJSXDev;
|
|
184
227
|
}
|
|
185
|
-
function emitJSFile(host, file, jsFilePath, sourceMapFilePath, result) {
|
|
228
|
+
function emitJSFile(host, context, file, jsFilePath, sourceMapFilePath, result) {
|
|
186
229
|
const options = host.options;
|
|
187
|
-
const context = new EmitContext();
|
|
188
230
|
let transformed = file;
|
|
189
231
|
const transformers = getScriptTransformers(host, context, file);
|
|
190
232
|
for (let i = 0; i < transformers.length; i++) {
|
|
@@ -125,7 +125,8 @@ export declare class IncludeProcessor {
|
|
|
125
125
|
/** The program is created: the processing diagnostics so far are those a copy takes. */
|
|
126
126
|
noteProgramCreated(): void;
|
|
127
127
|
reasonsOf(path: string): readonly FileIncludeReason[];
|
|
128
|
-
|
|
128
|
+
/** Adds an include reason of the file at `path`; returns the file's reasons. */
|
|
129
|
+
addReason(path: string, reason: FileIncludeReason): FileIncludeReason[];
|
|
129
130
|
addProcessingDiagnostic(diagnostic: ProcessingDiagnostic): void;
|
|
130
131
|
/** Reports a file name that differs from an included one only in casing. */
|
|
131
132
|
addCasingDiagnostic(file: string, existingCasing: string, currentCasing: string, reason: FileIncludeReason | undefined): void;
|
|
@@ -347,14 +347,14 @@ export class ProcessingDiagnostic {
|
|
|
347
347
|
const location = reason.getReferencedLocation(program);
|
|
348
348
|
const fileName = location.ref?.fileName ?? '';
|
|
349
349
|
if (reason.kind === 2 /* FileIncludeKind.TypeReferenceDirective */) {
|
|
350
|
-
return location.diagnosticAt(
|
|
350
|
+
return location.diagnosticAt(828 /* Diagnostics.Cannot_find_type_definition_file_for_0 */, fileName);
|
|
351
351
|
}
|
|
352
352
|
const libName = toFileNameLowerCase(fileName);
|
|
353
353
|
const unqualified = stripLibAffixes(libName);
|
|
354
354
|
const suggestion = getSpellingSuggestion(unqualified, libNames);
|
|
355
355
|
return suggestion !== ''
|
|
356
|
-
? location.diagnosticAt(
|
|
357
|
-
: location.diagnosticAt(
|
|
356
|
+
? location.diagnosticAt(866 /* Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 */, libName, suggestion)
|
|
357
|
+
: location.diagnosticAt(865 /* Diagnostics.Cannot_find_lib_definition_for_0 */, libName, suggestion);
|
|
358
358
|
}
|
|
359
359
|
return this.explainFile(program);
|
|
360
360
|
}
|
|
@@ -495,12 +495,16 @@ export class IncludeProcessor {
|
|
|
495
495
|
reasonsOf(path) {
|
|
496
496
|
return this.fileIncludeReasons.get(path) ?? [];
|
|
497
497
|
}
|
|
498
|
+
/** Adds an include reason of the file at `path`; returns the file's reasons. */
|
|
498
499
|
addReason(path, reason) {
|
|
499
500
|
const reasons = this.fileIncludeReasons.get(path);
|
|
500
|
-
if (reasons === undefined)
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
501
|
+
if (reasons === undefined) {
|
|
502
|
+
const added = [reason];
|
|
503
|
+
this.fileIncludeReasons.set(path, added);
|
|
504
|
+
return added;
|
|
505
|
+
}
|
|
506
|
+
reasons.push(reason);
|
|
507
|
+
return reasons;
|
|
504
508
|
}
|
|
505
509
|
addProcessingDiagnostic(diagnostic) {
|
|
506
510
|
this.processingDiagnostics.push(diagnostic);
|
|
@@ -196,6 +196,9 @@ export declare class FileLoader {
|
|
|
196
196
|
private readonly supportedExtensionsWithJson;
|
|
197
197
|
private readonly maxNodeModuleJsDepth;
|
|
198
198
|
private readonly rootTasks;
|
|
199
|
+
/** The tasks of each path, created when a task of the path is first queued or built ahead. */
|
|
200
|
+
private readonly taskData;
|
|
201
|
+
/** The index in `taskData` of each path's tasks. */
|
|
199
202
|
private readonly taskDataByPath;
|
|
200
203
|
/** Work queued by `start`, run last-in first-out like tsgo's single-threaded work group. */
|
|
201
204
|
private readonly work;
|
|
@@ -273,7 +276,14 @@ export declare class FileLoader {
|
|
|
273
276
|
private pathForLibFile;
|
|
274
277
|
private libFilePriority;
|
|
275
278
|
private start;
|
|
279
|
+
/** The index in `taskData` of the tasks of `path`, created if needed. */
|
|
280
|
+
private dataIndexOf;
|
|
276
281
|
private run;
|
|
282
|
+
/**
|
|
283
|
+
* Whether `run` drops `work` without loading its file: a JavaScript file past `maxNodeModuleJsDepth`,
|
|
284
|
+
* which no parse thread prepares, so the walk ahead does not wait for it.
|
|
285
|
+
*/
|
|
286
|
+
private elides;
|
|
277
287
|
/**
|
|
278
288
|
* Whether running the work of `task` (of `data`'s path) may parse a file that parse threads have not
|
|
279
289
|
* prepared yet: a task of the path not loaded yet, or `task`, a new casing.
|