tsc-ts 0.0.10 → 0.1.1
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 +29 -18
- package/dist/api/compiler/ast.js +1040 -1007
- 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 +136 -91
- package/dist/api/compiler/checker-contextual.d.ts +20 -0
- package/dist/api/compiler/checker-contextual.js +175 -62
- 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 +258 -212
- 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 +107 -89
- 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 +190 -46
- 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 +97 -31
- package/dist/api/compiler/checker.js +149 -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 +24 -4
- package/dist/api/compiler/compile-program.js +53 -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/expr-record.d.ts +11 -0
- package/dist/api/compiler/expr-record.js +53 -0
- 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/identifier-name.d.ts +9 -0
- package/dist/api/compiler/identifier-name.js +10 -0
- package/dist/api/compiler/instantiation.d.ts +7 -0
- package/dist/api/compiler/instantiation.js +101 -49
- package/dist/api/compiler/jsdoc.js +27 -25
- 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 +42 -20
- package/dist/api/compiler/parser.js +318 -224
- 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 +6 -3
- 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 +306 -283
- 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 +64 -59
- package/dist/api/compiler/scanner.d.ts +27 -2
- package/dist/api/compiler/scanner.js +181 -150
- package/dist/api/compiler/shared-results.d.ts +696 -0
- package/dist/api/compiler/shared-results.js +2905 -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 +307 -239
- 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 +74 -38
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/cgroup.ts +157 -0
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +76 -8
- package/src/compiler/checker-classes.ts +80 -25
- package/src/compiler/checker-contextual.ts +110 -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 +95 -47
- 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 +28 -5
- 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 +173 -35
- 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 +175 -41
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +59 -25
- package/src/compiler/decoder.ts +15 -5
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/doctor-report.ts +133 -0
- package/src/compiler/emitter.ts +57 -8
- package/src/compiler/encoder.ts +23 -8
- package/src/compiler/expr-record.ts +59 -0
- 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/identifier-name.ts +13 -0
- 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 +7 -3
- 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 +543 -147
- package/src/compiler/parallel-emit.ts +4 -4
- package/src/compiler/parser.ts +166 -47
- 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 +7 -3
- package/src/compiler/printer/helpers.ts +10 -1
- package/src/compiler/printer/name-generator.ts +24 -2
- package/src/compiler/printer/printer.ts +39 -16
- 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 +14 -5
- package/src/compiler/run-config.ts +1383 -0
- package/src/compiler/run-record-read.ts +87 -0
- package/src/compiler/run-records.ts +575 -0
- package/src/compiler/scanner.ts +166 -120
- package/src/compiler/shared-results.ts +3144 -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 +22 -3
- 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 +136 -49
- 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 +67 -6
- package/src/compiler/tsc-cli.ts +35 -4
- package/src/compiler/tsc-compile.ts +220 -10
- package/src/compiler/tsc-watch.ts +97 -47
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Diagnostic } from './diagnostics.js';
|
|
2
2
|
import { type OptionDeclaration } from './option-declarations.js';
|
|
3
|
-
import { type BuildOptions, type CompilerOptions, type OptionValue
|
|
3
|
+
import { type BuildOptions, type CompilerOptions, type OptionValue } from './options.js';
|
|
4
4
|
/** Reads response files. */
|
|
5
5
|
export declare abstract class CommandLineHost {
|
|
6
6
|
readonly currentDirectory: string;
|
|
@@ -10,7 +10,6 @@ export declare abstract class CommandLineHost {
|
|
|
10
10
|
}
|
|
11
11
|
export interface ParsedCommandLine {
|
|
12
12
|
readonly options: CompilerOptions;
|
|
13
|
-
readonly watchOptions: WatchOptions;
|
|
14
13
|
readonly fileNames: readonly string[];
|
|
15
14
|
readonly errors: readonly Diagnostic[];
|
|
16
15
|
/** Options as written, keyed by declaration name in first-seen order. Paths are not made absolute. */
|
|
@@ -20,7 +19,6 @@ export interface ParsedBuildCommandLine {
|
|
|
20
19
|
readonly buildOptions: BuildOptions;
|
|
21
20
|
/** Only options shared with `tsc`, and `build`. */
|
|
22
21
|
readonly compilerOptions: CompilerOptions;
|
|
23
|
-
readonly watchOptions: WatchOptions;
|
|
24
22
|
/** Project paths as given; `["."]` if none. */
|
|
25
23
|
readonly projects: readonly string[];
|
|
26
24
|
readonly errors: readonly Diagnostic[];
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
import { isUnicodeWhiteSpace, isWhiteSpaceLike } from './character-codes.js';
|
|
5
5
|
import { createCompilerDiagnostic } from './diagnostics.js';
|
|
6
6
|
import { isValidLocale } from './locale.js';
|
|
7
|
-
import { buildOption, buildOptionsByName, compilerOptionsByName,
|
|
8
|
-
import { setBuildOption, setCompilerOption,
|
|
9
|
-
import { getNormalizedAbsolutePath } from './path.js';
|
|
7
|
+
import { buildOption, buildOptionsByName, compilerOptionsByName, } from './option-declarations.js';
|
|
8
|
+
import { setBuildOption, setCompilerOption, } from './options.js';
|
|
9
|
+
import { getNormalizedAbsolutePath, isNetworkPathValue } from './path.js';
|
|
10
|
+
import { getSpellingSuggestion } from './spelling.js';
|
|
10
11
|
/** Reads response files. */
|
|
11
12
|
export class CommandLineHost {
|
|
12
13
|
currentDirectory;
|
|
@@ -16,43 +17,37 @@ export class CommandLineHost {
|
|
|
16
17
|
}
|
|
17
18
|
const compilerMode = {
|
|
18
19
|
options: compilerOptionsByName,
|
|
19
|
-
unknownOption:
|
|
20
|
-
|
|
20
|
+
unknownOption: 1128 /* Diagnostics.Unknown_compiler_option_0 */,
|
|
21
|
+
unknownOptionDidYouMean: 1130 /* Diagnostics.Unknown_compiler_option_0_Did_you_mean_1 */,
|
|
22
|
+
missingArgument: 1233 /* Diagnostics.Compiler_option_0_expects_an_argument */,
|
|
21
23
|
otherModeOptions: buildOptionsByName,
|
|
22
|
-
wrongMode:
|
|
24
|
+
wrongMode: 1174 /* Diagnostics.Compiler_option_0_may_only_be_used_with_build */,
|
|
23
25
|
};
|
|
24
26
|
const buildMode = {
|
|
25
27
|
options: buildOptionsByName,
|
|
26
|
-
unknownOption:
|
|
27
|
-
|
|
28
|
+
unknownOption: 1154 /* Diagnostics.Unknown_build_option_0 */,
|
|
29
|
+
unknownOptionDidYouMean: 1159 /* Diagnostics.Unknown_build_option_0_Did_you_mean_1 */,
|
|
30
|
+
missingArgument: 1155 /* Diagnostics.Build_option_0_requires_a_value_of_type_1 */,
|
|
28
31
|
otherModeOptions: compilerOptionsByName,
|
|
29
|
-
wrongMode:
|
|
30
|
-
};
|
|
31
|
-
const watchMode = {
|
|
32
|
-
options: watchOptionsByName,
|
|
33
|
-
unknownOption: 1153 /* Diagnostics.Unknown_watch_option_0 */,
|
|
34
|
-
missingArgument: 1155 /* Diagnostics.Watch_option_0_requires_a_value_of_type_1 */,
|
|
32
|
+
wrongMode: 1175 /* Diagnostics.Compiler_option_0_may_not_be_used_with_build */,
|
|
35
33
|
};
|
|
36
34
|
export function parseCommandLine(args, host) {
|
|
37
35
|
const parser = new CommandLineParser(compilerMode, host);
|
|
38
36
|
parser.parseArguments(args);
|
|
39
37
|
const cwd = host.currentDirectory;
|
|
40
38
|
const options = {};
|
|
41
|
-
const watchOptions = {};
|
|
42
39
|
for (const [name, value] of parser.raw) {
|
|
43
40
|
if (parser.droppedLists.has(name))
|
|
44
41
|
continue;
|
|
45
42
|
setCompilerOption(options, name, toAbsolutePaths(name, value, cwd));
|
|
46
|
-
setWatchOption(watchOptions, name, value);
|
|
47
43
|
}
|
|
48
|
-
return { options,
|
|
44
|
+
return { options, fileNames: parser.fileNames, errors: parser.errors, raw: parser.raw };
|
|
49
45
|
}
|
|
50
46
|
export function parseBuildCommandLine(args, host) {
|
|
51
47
|
const parser = new CommandLineParser(buildMode, host);
|
|
52
48
|
parser.parseArguments(args);
|
|
53
49
|
const buildOptions = {};
|
|
54
50
|
const compilerOptions = {};
|
|
55
|
-
const watchOptions = {};
|
|
56
51
|
for (const [name, value] of parser.raw) {
|
|
57
52
|
if (parser.droppedLists.has(name))
|
|
58
53
|
continue;
|
|
@@ -61,23 +56,21 @@ export function parseBuildCommandLine(args, host) {
|
|
|
61
56
|
setCompilerOption(compilerOptions, name, value);
|
|
62
57
|
}
|
|
63
58
|
setBuildOption(buildOptions, name, value);
|
|
64
|
-
setWatchOption(watchOptions, name, value);
|
|
65
59
|
}
|
|
66
60
|
const errors = parser.errors;
|
|
67
61
|
const { clean, force, verbose, dry } = buildOptions;
|
|
68
62
|
const watch = compilerOptions.watch;
|
|
69
63
|
if (clean === true && force === true)
|
|
70
|
-
errors.push(createCompilerDiagnostic(
|
|
64
|
+
errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'force'));
|
|
71
65
|
if (clean === true && verbose === true)
|
|
72
|
-
errors.push(createCompilerDiagnostic(
|
|
66
|
+
errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'verbose'));
|
|
73
67
|
if (clean === true && watch === true)
|
|
74
|
-
errors.push(createCompilerDiagnostic(
|
|
68
|
+
errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'clean', 'watch'));
|
|
75
69
|
if (watch === true && dry === true)
|
|
76
|
-
errors.push(createCompilerDiagnostic(
|
|
70
|
+
errors.push(createCompilerDiagnostic(1476 /* Diagnostics.Options_0_and_1_cannot_be_combined */, 'watch', 'dry'));
|
|
77
71
|
return {
|
|
78
72
|
buildOptions,
|
|
79
73
|
compilerOptions,
|
|
80
|
-
watchOptions,
|
|
81
74
|
projects: parser.fileNames.length > 0 ? parser.fileNames : ['.'],
|
|
82
75
|
errors,
|
|
83
76
|
raw: parser.raw,
|
|
@@ -109,6 +102,8 @@ class CommandLineParser {
|
|
|
109
102
|
* though `raw` (and so `--init`) has `[]`.
|
|
110
103
|
*/
|
|
111
104
|
droppedLists = new Set();
|
|
105
|
+
/** Response files being read, so one that includes itself is skipped. */
|
|
106
|
+
responseFiles = new Set();
|
|
112
107
|
constructor(mode, host) {
|
|
113
108
|
this.mode = mode;
|
|
114
109
|
this.host = host;
|
|
@@ -126,16 +121,10 @@ class CommandLineParser {
|
|
|
126
121
|
else if (arg.startsWith('-')) {
|
|
127
122
|
const name = arg.startsWith('--') ? arg.slice(2) : arg.slice(1);
|
|
128
123
|
const option = this.mode.options.find(name, true);
|
|
129
|
-
if (option !== undefined)
|
|
124
|
+
if (option !== undefined)
|
|
130
125
|
i = this.parseOptionValue(args, i, option, this.mode);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const watchOption = watchOptionsByName.find(name, true);
|
|
134
|
-
if (watchOption !== undefined)
|
|
135
|
-
i = this.parseOptionValue(args, i, watchOption, watchMode);
|
|
136
|
-
else
|
|
137
|
-
this.errors.push(this.unknownOptionError(name, arg));
|
|
138
|
-
}
|
|
126
|
+
else
|
|
127
|
+
this.errors.push(this.unknownOptionError(name, arg));
|
|
139
128
|
}
|
|
140
129
|
else {
|
|
141
130
|
this.fileNames.push(arg);
|
|
@@ -145,17 +134,27 @@ class CommandLineParser {
|
|
|
145
134
|
unknownOptionError(name, arg) {
|
|
146
135
|
const other = this.mode.otherModeOptions?.get(name);
|
|
147
136
|
if (other !== undefined && this.mode.wrongMode !== undefined) {
|
|
148
|
-
const message = other.name === 'build' ?
|
|
137
|
+
const message = other.name === 'build' ? 1475 /* Diagnostics.Option_build_must_be_the_first_command_line_argument */ : this.mode.wrongMode;
|
|
149
138
|
return createCompilerDiagnostic(message, name);
|
|
150
139
|
}
|
|
140
|
+
const suggestion = getSpellingSuggestion(name, this.mode.options.names());
|
|
141
|
+
if (suggestion !== '')
|
|
142
|
+
return createCompilerDiagnostic(this.mode.unknownOptionDidYouMean, arg, suggestion);
|
|
151
143
|
return createCompilerDiagnostic(this.mode.unknownOption, arg);
|
|
152
144
|
}
|
|
153
145
|
/** Splits a response file into arguments at whitespace; `"` quotes an argument. */
|
|
154
146
|
parseResponseFile(fileName) {
|
|
155
147
|
const path = getNormalizedAbsolutePath(fileName, this.host.currentDirectory);
|
|
148
|
+
if (this.responseFiles.has(path))
|
|
149
|
+
return;
|
|
150
|
+
this.responseFiles.add(path);
|
|
151
|
+
this.readResponseFile(fileName, path);
|
|
152
|
+
this.responseFiles.delete(path);
|
|
153
|
+
}
|
|
154
|
+
readResponseFile(fileName, path) {
|
|
156
155
|
const text = this.host.readFile(path);
|
|
157
156
|
if (text === undefined) {
|
|
158
|
-
this.errors.push(createCompilerDiagnostic(
|
|
157
|
+
this.errors.push(createCompilerDiagnostic(1165 /* Diagnostics.Cannot_read_file_0 */, path));
|
|
159
158
|
return;
|
|
160
159
|
}
|
|
161
160
|
const args = [];
|
|
@@ -175,11 +174,11 @@ class CommandLineParser {
|
|
|
175
174
|
pos++;
|
|
176
175
|
}
|
|
177
176
|
else {
|
|
178
|
-
|
|
177
|
+
// The file name as written.
|
|
178
|
+
this.errors.push(createCompilerDiagnostic(1234 /* Diagnostics.Unterminated_quoted_string_in_response_file_0 */, fileName));
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
|
-
// tsgo panics when the file ends in an argument; tsc accepts it.
|
|
183
182
|
while (pos < text.length && text.charCodeAt(pos) > 32)
|
|
184
183
|
pos++;
|
|
185
184
|
args.push(text.slice(start, pos));
|
|
@@ -202,10 +201,10 @@ class CommandLineParser {
|
|
|
202
201
|
this.raw.set(name, false);
|
|
203
202
|
return i + 1;
|
|
204
203
|
}
|
|
205
|
-
this.errors.push(createCompilerDiagnostic(
|
|
204
|
+
this.errors.push(createCompilerDiagnostic(1393 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line */, name));
|
|
206
205
|
return value === 'true' ? i + 1 : i;
|
|
207
206
|
}
|
|
208
|
-
this.errors.push(createCompilerDiagnostic(
|
|
207
|
+
this.errors.push(createCompilerDiagnostic(1248 /* Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line */, name));
|
|
209
208
|
return value !== '' && !value.startsWith('-') ? i + 1 : i;
|
|
210
209
|
}
|
|
211
210
|
if (next === undefined) {
|
|
@@ -234,7 +233,7 @@ class CommandLineParser {
|
|
|
234
233
|
this.raw.set(name, value);
|
|
235
234
|
}
|
|
236
235
|
else {
|
|
237
|
-
this.errors.push(createCompilerDiagnostic(
|
|
236
|
+
this.errors.push(createCompilerDiagnostic(1123 /* Diagnostics.Option_0_requires_value_to_be_greater_than_1 */, name, String(option.minValue ?? 0)));
|
|
238
237
|
}
|
|
239
238
|
return i + 1;
|
|
240
239
|
}
|
|
@@ -243,7 +242,11 @@ class CommandLineParser {
|
|
|
243
242
|
this.raw.set(name, next !== 'false');
|
|
244
243
|
return next === 'true' || next === 'false' ? i + 1 : i;
|
|
245
244
|
case 'string':
|
|
246
|
-
if (this.validateString(option, next))
|
|
245
|
+
if (!this.validateString(option, next))
|
|
246
|
+
return i + 1;
|
|
247
|
+
if (option.isFilePath === true && isNetworkPathValue(next, this.host.currentDirectory))
|
|
248
|
+
this.errors.push(createCompilerDiagnostic(1195 /* Diagnostics.Network_path_0_is_not_supported */, next));
|
|
249
|
+
else
|
|
247
250
|
this.raw.set(name, next);
|
|
248
251
|
return i + 1;
|
|
249
252
|
case 'list': {
|
|
@@ -306,7 +309,7 @@ class CommandLineParser {
|
|
|
306
309
|
}
|
|
307
310
|
}
|
|
308
311
|
else if (option.extraValidation === 'locale' && !isValidLocale(value)) {
|
|
309
|
-
this.errors.push(createCompilerDiagnostic(
|
|
312
|
+
this.errors.push(createCompilerDiagnostic(1236 /* Diagnostics.Locale_must_be_an_IETF_BCP_47_language_tag_Examples_Colon_0_1 */, 'en', 'ja-jp'));
|
|
310
313
|
return false;
|
|
311
314
|
}
|
|
312
315
|
return true;
|
|
@@ -320,7 +323,7 @@ function valueTypeName(option) {
|
|
|
320
323
|
return option.kind;
|
|
321
324
|
}
|
|
322
325
|
function invalidEnumValueError(option) {
|
|
323
|
-
return createCompilerDiagnostic(
|
|
326
|
+
return createCompilerDiagnostic(1235 /* Diagnostics.Argument_for_0_option_must_be_Colon_1 */, '--' + option.name, enumNamesList(option));
|
|
324
327
|
}
|
|
325
328
|
/** `'a', 'b', 'c'`: the option's value names without deprecated ones. */
|
|
326
329
|
export function enumNamesList(option) {
|
|
@@ -340,7 +343,7 @@ function specError(spec) {
|
|
|
340
343
|
return undefined;
|
|
341
344
|
const lastDotDot = spec.endsWith('/..') ? spec.length : spec.lastIndexOf('/../');
|
|
342
345
|
return lastDotDot > wildcard
|
|
343
|
-
?
|
|
346
|
+
? 1147 /* Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0 */
|
|
344
347
|
: undefined;
|
|
345
348
|
}
|
|
346
349
|
/** Parses a decimal 64-bit integer with an optional sign, like Go's `strconv.Atoi`. */
|
|
@@ -105,6 +105,16 @@ export declare abstract class CompilerProgram {
|
|
|
105
105
|
readonly times: CompileTimes;
|
|
106
106
|
readonly emitter: ProgramEmitter;
|
|
107
107
|
constructor(checked: CheckedProgram, times: CompileTimes);
|
|
108
|
+
/**
|
|
109
|
+
* Whether this run checked the program, which `getDiagnosticsOfProgram` sets when it checks it. A run
|
|
110
|
+
* stopped before checking, by syntax errors or `--noCheck`, keeps no record (`run-records.ts`).
|
|
111
|
+
*/
|
|
112
|
+
checkedTheProgram: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* The time spent in declaration emit while checking, to count as emit time rather than check time, since
|
|
115
|
+
* the last call. Only an incremental program emits while checking, to compute signatures.
|
|
116
|
+
*/
|
|
117
|
+
takeNestedEmitTime(): number;
|
|
108
118
|
get program(): Program;
|
|
109
119
|
get options(): CompilerOptions;
|
|
110
120
|
getConfigFileParsingDiagnostics(): readonly Diagnostic[];
|
|
@@ -112,6 +122,12 @@ export declare abstract class CompilerProgram {
|
|
|
112
122
|
getProgramDiagnostics(): Diagnostic[];
|
|
113
123
|
/** See `CheckedProgram.getGlobalDiagnostics`. */
|
|
114
124
|
getGlobalDiagnostics(withCheckerThreads?: boolean): Diagnostic[];
|
|
125
|
+
/**
|
|
126
|
+
* Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
|
|
127
|
+
* incremental program has them in the semantic diagnostics of the files they were found in
|
|
128
|
+
* (`CheckedProgram.globalsInFileDiagnostics`).
|
|
129
|
+
*/
|
|
130
|
+
reportsGlobalDiagnosticsOfChecking(): boolean;
|
|
115
131
|
/** Semantic diagnostics of every file. */
|
|
116
132
|
abstract getSemanticDiagnostics(): Diagnostic[];
|
|
117
133
|
/** Declaration emit errors of every file. */
|
|
@@ -131,12 +147,16 @@ export declare class PlainProgram extends CompilerProgram {
|
|
|
131
147
|
/** Under `noEmitOnError`, a skipped emit with the errors that prevent it; otherwise `undefined`. */
|
|
132
148
|
export declare function handleNoEmitOnError(program: CompilerProgram): EmitResult | undefined;
|
|
133
149
|
/**
|
|
134
|
-
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and
|
|
135
|
-
* declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
136
|
-
* declaration errors are left to
|
|
137
|
-
* `noEmitOnError`) whether or not other errors were found.
|
|
150
|
+
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
|
|
151
|
+
* there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
152
|
+
* `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
|
|
138
153
|
*/
|
|
139
154
|
export declare function getDiagnosticsOfProgram(program: CompilerProgram, withDeclarationDiagnostics: boolean, declarationsLater?: boolean): Diagnostic[];
|
|
155
|
+
/**
|
|
156
|
+
* Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
|
|
157
|
+
* `withDeclarationDiagnostics`) with declarations, when only config errors were found.
|
|
158
|
+
*/
|
|
159
|
+
export declare function declarationDiagnosticsDue(program: CompilerProgram, diagnostics: readonly Diagnostic[], withDeclarationDiagnostics: boolean): boolean;
|
|
140
160
|
/** Combines emit results in order. */
|
|
141
161
|
export declare function combineEmitResults(results: readonly EmitResult[]): EmitResult;
|
|
142
162
|
export { CheckedProgram };
|
|
@@ -311,6 +311,18 @@ export class CompilerProgram {
|
|
|
311
311
|
this.times = times;
|
|
312
312
|
this.emitter = new ProgramEmitter(checked);
|
|
313
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* Whether this run checked the program, which `getDiagnosticsOfProgram` sets when it checks it. A run
|
|
316
|
+
* stopped before checking, by syntax errors or `--noCheck`, keeps no record (`run-records.ts`).
|
|
317
|
+
*/
|
|
318
|
+
checkedTheProgram = false;
|
|
319
|
+
/**
|
|
320
|
+
* The time spent in declaration emit while checking, to count as emit time rather than check time, since
|
|
321
|
+
* the last call. Only an incremental program emits while checking, to compute signatures.
|
|
322
|
+
*/
|
|
323
|
+
takeNestedEmitTime() {
|
|
324
|
+
return 0;
|
|
325
|
+
}
|
|
314
326
|
get program() {
|
|
315
327
|
return this.checked.program;
|
|
316
328
|
}
|
|
@@ -330,6 +342,14 @@ export class CompilerProgram {
|
|
|
330
342
|
getGlobalDiagnostics(withCheckerThreads = true) {
|
|
331
343
|
return this.checked.getGlobalDiagnostics(withCheckerThreads);
|
|
332
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
|
|
347
|
+
* incremental program has them in the semantic diagnostics of the files they were found in
|
|
348
|
+
* (`CheckedProgram.globalsInFileDiagnostics`).
|
|
349
|
+
*/
|
|
350
|
+
reportsGlobalDiagnosticsOfChecking() {
|
|
351
|
+
return !this.checked.globalsInFileDiagnostics;
|
|
352
|
+
}
|
|
333
353
|
}
|
|
334
354
|
/** Collects declaration emit errors without writing anything. */
|
|
335
355
|
class DiscardingWriter extends OutputWriter {
|
|
@@ -363,11 +383,13 @@ export class PlainProgram extends CompilerProgram {
|
|
|
363
383
|
}
|
|
364
384
|
emit(writer) {
|
|
365
385
|
const options = this.options;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
386
|
+
// A `noEmit` program emits nothing, and its emit is not skipped (tsgo's `HandleNoEmitOptions`): its
|
|
387
|
+
// declaration errors come with its other diagnostics (`getDiagnosticsOfProgram`).
|
|
388
|
+
if (options.noEmit === true)
|
|
389
|
+
return new EmitResult();
|
|
390
|
+
const skipped = handleNoEmitOnError(this);
|
|
391
|
+
if (skipped !== undefined)
|
|
392
|
+
return skipped;
|
|
371
393
|
const program = this.program;
|
|
372
394
|
const files = program.getSourceFiles();
|
|
373
395
|
const parallel = this.checked.emittedInParallel;
|
|
@@ -379,7 +401,8 @@ export class PlainProgram extends CompilerProgram {
|
|
|
379
401
|
const emitted = parallel[i];
|
|
380
402
|
// The declaration thread emitted the declarations of the files it could (parallel-emit.ts).
|
|
381
403
|
const ahead = this.checked.declarationsEmittedAhead;
|
|
382
|
-
|
|
404
|
+
// The file's JavaScript is emitted too, here or on an emit thread.
|
|
405
|
+
const declarations = () => ahead?.[i] ?? this.emitter.emit([file], 4 /* EmitOnly.DtsAfterJs */, writer);
|
|
383
406
|
if (emitted === undefined)
|
|
384
407
|
return ahead !== undefined
|
|
385
408
|
? combineEmitResults([this.emitter.emit([file], 1 /* EmitOnly.Js */, writer), declarations()])
|
|
@@ -390,14 +413,6 @@ export class PlainProgram extends CompilerProgram {
|
|
|
390
413
|
return written;
|
|
391
414
|
return combineEmitResults([written, declarations()]);
|
|
392
415
|
}));
|
|
393
|
-
if (options.noEmit === true) {
|
|
394
|
-
// Emit is skipped only for files that would have been emitted.
|
|
395
|
-
result.emitSkipped = files.some((file) => program.sourceFileMayBeEmitted(file, false));
|
|
396
|
-
// Declaration emit still runs for its errors, as in tsgo, also when other errors were found.
|
|
397
|
-
if (getEmitDeclarations(options) && options.noEmitOnError !== true)
|
|
398
|
-
for (const d of this.getDeclarationDiagnostics())
|
|
399
|
-
result.diagnostics.push(d);
|
|
400
|
-
}
|
|
401
416
|
return result;
|
|
402
417
|
}
|
|
403
418
|
}
|
|
@@ -415,10 +430,9 @@ export function handleNoEmitOnError(program) {
|
|
|
415
430
|
return result;
|
|
416
431
|
}
|
|
417
432
|
/**
|
|
418
|
-
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and
|
|
419
|
-
* declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
420
|
-
* declaration errors are left to
|
|
421
|
-
* `noEmitOnError`) whether or not other errors were found.
|
|
433
|
+
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
|
|
434
|
+
* there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
435
|
+
* `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
|
|
422
436
|
*/
|
|
423
437
|
export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics, declarationsLater = false) {
|
|
424
438
|
const result = [...program.getConfigFileParsingDiagnostics()];
|
|
@@ -438,25 +452,38 @@ export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics, dec
|
|
|
438
452
|
for (const d of program.getGlobalDiagnostics(false))
|
|
439
453
|
result.push(d);
|
|
440
454
|
if (result.length === configCount) {
|
|
455
|
+
// With `--noCheck` the checker skips every file: the run checked nothing to sample (`run-records.ts`).
|
|
456
|
+
if (options.noCheck !== true)
|
|
457
|
+
program.checkedTheProgram = true;
|
|
441
458
|
const checkStart = performance.now();
|
|
442
459
|
const semantic = program.getSemanticDiagnostics();
|
|
443
|
-
|
|
460
|
+
// Declaration emit that computed signatures while checking counts as emit time, as in TypeScript 7.1.
|
|
461
|
+
const nestedEmitTime = program.takeNestedEmitTime();
|
|
462
|
+
program.times.checkTime = Math.max(0, performance.now() - checkStart - nestedEmitTime);
|
|
463
|
+
program.times.emitTime += nestedEmitTime;
|
|
444
464
|
for (const d of semantic)
|
|
445
465
|
result.push(d);
|
|
446
466
|
// Checking may have found more, such as missing global types.
|
|
447
|
-
|
|
448
|
-
|
|
467
|
+
if (program.reportsGlobalDiagnosticsOfChecking())
|
|
468
|
+
for (const d of program.getGlobalDiagnostics())
|
|
469
|
+
result.push(d);
|
|
449
470
|
mark('semantic diagnostics');
|
|
450
471
|
}
|
|
451
|
-
if (!declarationsLater &&
|
|
452
|
-
(withDeclarationDiagnostics || options.noEmit === true) &&
|
|
453
|
-
getEmitDeclarations(options) &&
|
|
454
|
-
result.length === configCount) {
|
|
472
|
+
if (!declarationsLater && declarationDiagnosticsDue(program, result, withDeclarationDiagnostics))
|
|
455
473
|
for (const d of program.getDeclarationDiagnostics())
|
|
456
474
|
result.push(d);
|
|
457
|
-
}
|
|
458
475
|
return result;
|
|
459
476
|
}
|
|
477
|
+
/**
|
|
478
|
+
* Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
|
|
479
|
+
* `withDeclarationDiagnostics`) with declarations, when only config errors were found.
|
|
480
|
+
*/
|
|
481
|
+
export function declarationDiagnosticsDue(program, diagnostics, withDeclarationDiagnostics) {
|
|
482
|
+
const options = program.options;
|
|
483
|
+
return ((withDeclarationDiagnostics || options.noEmit === true) &&
|
|
484
|
+
getEmitDeclarations(options) &&
|
|
485
|
+
diagnostics.length === program.getConfigFileParsingDiagnostics().length);
|
|
486
|
+
}
|
|
460
487
|
/** Combines emit results in order. */
|
|
461
488
|
export function combineEmitResults(results) {
|
|
462
489
|
const result = new EmitResult();
|