tsc-ts 0.0.9 → 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 +2 -2
- 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 +22 -15
- package/dist/api/compiler/ast.js +1026 -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 +178 -124
- 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 +472 -440
- 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 -107
- 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 +212 -75
- 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 +145 -36
- 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 +104 -31
- package/dist/api/compiler/checker.js +181 -33
- 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 +42 -3
- package/dist/api/compiler/compile-program.js +139 -27
- package/dist/api/compiler/diagnostic-messages.d.ts +1849 -1774
- package/dist/api/compiler/diagnostic-messages.js +128 -122
- package/dist/api/compiler/diagnostics.d.ts +22 -0
- package/dist/api/compiler/diagnostics.js +93 -11
- 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 +21 -1
- package/dist/api/compiler/file-loader.js +201 -48
- 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/parallel-parse.d.ts +3 -2
- package/dist/api/compiler/parallel-parse.js +17 -5
- 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 +5 -1
- package/dist/api/compiler/printer/emit-context.js +20 -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 +49 -2
- package/dist/api/compiler/printer/printer.js +539 -293
- package/dist/api/compiler/printer/utilities.js +149 -147
- package/dist/api/compiler/program-checker.d.ts +12 -2
- package/dist/api/compiler/program-checker.js +88 -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 +4 -6
- package/dist/api/compiler/program.js +74 -87
- 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 +347 -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 +23 -14
- package/dist/api/compiler/symbol.js +23 -11
- 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 +58 -26
- package/src/compiler/binder.ts +39 -4
- package/src/compiler/character-codes.ts +2 -2
- package/src/compiler/checker-calls.ts +79 -9
- 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 +136 -62
- package/src/compiler/checker-heritage.ts +22 -21
- package/src/compiler/checker-inference.ts +514 -82
- 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 +200 -56
- 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 +124 -23
- 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 +203 -39
- package/src/compiler/command-line.ts +28 -28
- package/src/compiler/compile-program.ts +167 -27
- package/src/compiler/decoder.ts +13 -4
- package/src/compiler/diagnostic-messages.ts +1973 -1892
- package/src/compiler/diagnostics.ts +84 -3
- 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 +197 -38
- package/src/compiler/help.ts +10 -14
- package/src/compiler/incremental.ts +165 -30
- 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 +326 -52
- package/src/compiler/parallel-emit.ts +320 -0
- package/src/compiler/parallel-parse.ts +16 -5
- package/src/compiler/parse-thread.ts +3 -0
- package/src/compiler/parser.ts +156 -39
- package/src/compiler/path.ts +22 -2
- package/src/compiler/printer/emit-context.ts +21 -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 +266 -30
- package/src/compiler/printer/utilities.ts +8 -2
- package/src/compiler/program-checker.ts +57 -5
- package/src/compiler/program-utilities.ts +23 -10
- package/src/compiler/program.ts +18 -26
- package/src/compiler/pseudo-bigint.ts +17 -0
- package/src/compiler/regexp-checker.ts +63 -30
- package/src/compiler/relations.ts +240 -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 +46 -24
- package/src/compiler/syntax-kind.ts +188 -187
- package/src/compiler/thread-entry.ts +64 -4
- 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 +66 -9
- package/src/compiler/tsc-cli.ts +7 -0
- package/src/compiler/tsc-compile.ts +284 -4
- 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
|
@@ -61,6 +61,28 @@ export declare class EmitIndexes {
|
|
|
61
61
|
readonly declarations: DeclarationGlobals | undefined;
|
|
62
62
|
constructor(program: Program);
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The JavaScript emit of a program's files without a checker, for emit threads (parallel-emit.ts).
|
|
66
|
+
* JavaScript emit asks the checker only how decorator metadata serializes a type
|
|
67
|
+
* (`CheckerEmitResolver`): with `kinds`, the answers the main thread's checker gave
|
|
68
|
+
* (`recordMetadataKinds`), else files with decorator metadata are emitted by a `ProgramEmitter`.
|
|
69
|
+
*/
|
|
70
|
+
export declare class JavaScriptEmitter {
|
|
71
|
+
private readonly host;
|
|
72
|
+
private readonly recorded;
|
|
73
|
+
constructor(program: Program, kinds?: readonly number[]);
|
|
74
|
+
/**
|
|
75
|
+
* Emits `file`, or returns undefined if its decorator metadata asked for a kind that wasn't recorded: what
|
|
76
|
+
* was written is then not the file's emit, and it must be emitted with the checker.
|
|
77
|
+
*/
|
|
78
|
+
emit(file: SourceFile, writer: OutputWriter): EmitResult | undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The serialization kinds of decorator metadata that the checker of `checked` gives the type references of
|
|
82
|
+
* `files`, in the order JavaScript emit asks for them: the type name's node id, the location's node id (-1 for
|
|
83
|
+
* none) and the kind, for each. Only the decorator metadata transform runs, as the first transform of emit.
|
|
84
|
+
*/
|
|
85
|
+
export declare function recordMetadataKinds(checked: CheckedProgram, files: readonly SourceFile[]): number[];
|
|
64
86
|
/** A checked program and the emit of its files. */
|
|
65
87
|
export declare class ProgramEmitter {
|
|
66
88
|
readonly checked: CheckedProgram;
|
|
@@ -83,6 +105,11 @@ export declare abstract class CompilerProgram {
|
|
|
83
105
|
readonly times: CompileTimes;
|
|
84
106
|
readonly emitter: ProgramEmitter;
|
|
85
107
|
constructor(checked: CheckedProgram, times: CompileTimes);
|
|
108
|
+
/**
|
|
109
|
+
* The time spent in declaration emit while checking, to count as emit time rather than check time, since
|
|
110
|
+
* the last call. Only an incremental program emits while checking, to compute signatures.
|
|
111
|
+
*/
|
|
112
|
+
takeNestedEmitTime(): number;
|
|
86
113
|
get program(): Program;
|
|
87
114
|
get options(): CompilerOptions;
|
|
88
115
|
getConfigFileParsingDiagnostics(): readonly Diagnostic[];
|
|
@@ -90,6 +117,12 @@ export declare abstract class CompilerProgram {
|
|
|
90
117
|
getProgramDiagnostics(): Diagnostic[];
|
|
91
118
|
/** See `CheckedProgram.getGlobalDiagnostics`. */
|
|
92
119
|
getGlobalDiagnostics(withCheckerThreads?: boolean): Diagnostic[];
|
|
120
|
+
/**
|
|
121
|
+
* Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
|
|
122
|
+
* incremental program has them in the semantic diagnostics of the files they were found in
|
|
123
|
+
* (`CheckedProgram.globalsInFileDiagnostics`).
|
|
124
|
+
*/
|
|
125
|
+
reportsGlobalDiagnosticsOfChecking(): boolean;
|
|
93
126
|
/** Semantic diagnostics of every file. */
|
|
94
127
|
abstract getSemanticDiagnostics(): Diagnostic[];
|
|
95
128
|
/** Declaration emit errors of every file. */
|
|
@@ -109,10 +142,16 @@ export declare class PlainProgram extends CompilerProgram {
|
|
|
109
142
|
/** Under `noEmitOnError`, a skipped emit with the errors that prevent it; otherwise `undefined`. */
|
|
110
143
|
export declare function handleNoEmitOnError(program: CompilerProgram): EmitResult | undefined;
|
|
111
144
|
/**
|
|
112
|
-
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and
|
|
113
|
-
* declaration errors under `noEmit` (or `withDeclarationDiagnostics`).
|
|
145
|
+
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
|
|
146
|
+
* there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
147
|
+
* `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
|
|
148
|
+
*/
|
|
149
|
+
export declare function getDiagnosticsOfProgram(program: CompilerProgram, withDeclarationDiagnostics: boolean, declarationsLater?: boolean): Diagnostic[];
|
|
150
|
+
/**
|
|
151
|
+
* Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
|
|
152
|
+
* `withDeclarationDiagnostics`) with declarations, when only config errors were found.
|
|
114
153
|
*/
|
|
115
|
-
export declare function
|
|
154
|
+
export declare function declarationDiagnosticsDue(program: CompilerProgram, diagnostics: readonly Diagnostic[], withDeclarationDiagnostics: boolean): boolean;
|
|
116
155
|
/** Combines emit results in order. */
|
|
117
156
|
export declare function combineEmitResults(results: readonly EmitResult[]): EmitResult;
|
|
118
157
|
export { CheckedProgram };
|
|
@@ -6,6 +6,10 @@ import { CheckerDeclarationEmitResolver, CheckerEmitResolver } from './checker-e
|
|
|
6
6
|
import { getEmitModuleFormatOfFile } from './program-utilities.js';
|
|
7
7
|
import { DeclarationGlobals, SyntacticDeclarationEmitResolver } from './transformers/declarations-syntactic.js';
|
|
8
8
|
import { mark } from './timeline.js';
|
|
9
|
+
import { DecoratorMetadata } from './transformers/decorator-metadata.js';
|
|
10
|
+
import { SyntaxFacts } from './transformers/syntax-facts.js';
|
|
11
|
+
import { EmitContext } from './printer/emit-context.js';
|
|
12
|
+
import { SyntacticEmitResolver } from './transformers/emit-resolver.js';
|
|
9
13
|
import { ModuleFormatHost } from './transformers/module.js';
|
|
10
14
|
import { ModuleLookup, ReferenceResolver } from './transformers/reference-resolver.js';
|
|
11
15
|
/** Where emit writes files. */
|
|
@@ -165,6 +169,82 @@ export class EmitIndexes {
|
|
|
165
169
|
: undefined;
|
|
166
170
|
}
|
|
167
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* The JavaScript emit of a program's files without a checker, for emit threads (parallel-emit.ts).
|
|
174
|
+
* JavaScript emit asks the checker only how decorator metadata serializes a type
|
|
175
|
+
* (`CheckerEmitResolver`): with `kinds`, the answers the main thread's checker gave
|
|
176
|
+
* (`recordMetadataKinds`), else files with decorator metadata are emitted by a `ProgramEmitter`.
|
|
177
|
+
*/
|
|
178
|
+
export class JavaScriptEmitter {
|
|
179
|
+
host;
|
|
180
|
+
recorded;
|
|
181
|
+
constructor(program, kinds = []) {
|
|
182
|
+
const options = program.options;
|
|
183
|
+
const indexes = program.emitIndexes;
|
|
184
|
+
const references = new ReferenceResolver(options, program.getSourceFiles(), new ProgramModules(program), indexes !== undefined ? indexes.globals : undefined);
|
|
185
|
+
this.recorded = kinds.length > 0 ? new RecordedKindsEmitResolver(options, references, kinds) : undefined;
|
|
186
|
+
this.host = new ProgramEmitHost(program, this.recorded ?? new SyntacticEmitResolver(options, references));
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Emits `file`, or returns undefined if its decorator metadata asked for a kind that wasn't recorded: what
|
|
190
|
+
* was written is then not the file's emit, and it must be emitted with the checker.
|
|
191
|
+
*/
|
|
192
|
+
emit(file, writer) {
|
|
193
|
+
const host = this.host;
|
|
194
|
+
const recorded = this.recorded;
|
|
195
|
+
if (recorded !== undefined)
|
|
196
|
+
recorded.missed = false;
|
|
197
|
+
host.writer = writer;
|
|
198
|
+
const result = emitFiles(host, [file], 1 /* EmitOnly.Js */);
|
|
199
|
+
host.writer = undefined;
|
|
200
|
+
return recorded !== undefined && recorded.missed ? undefined : result;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* The serialization kinds of decorator metadata that the checker of `checked` gives the type references of
|
|
205
|
+
* `files`, in the order JavaScript emit asks for them: the type name's node id, the location's node id (-1 for
|
|
206
|
+
* none) and the kind, for each. Only the decorator metadata transform runs, as the first transform of emit.
|
|
207
|
+
*/
|
|
208
|
+
export function recordMetadataKinds(checked, files) {
|
|
209
|
+
const program = checked.program;
|
|
210
|
+
const options = program.options;
|
|
211
|
+
const indexes = program.emitIndexes;
|
|
212
|
+
const references = new ReferenceResolver(options, program.getSourceFiles(), new ProgramModules(program), indexes !== undefined ? indexes.globals : undefined);
|
|
213
|
+
const resolver = new RecordingEmitResolver(options, references, checked.checker);
|
|
214
|
+
for (const file of files)
|
|
215
|
+
new DecoratorMetadata(new EmitContext(), options, resolver, new SyntaxFacts()).transformSourceFile(file);
|
|
216
|
+
return resolver.kinds;
|
|
217
|
+
}
|
|
218
|
+
/** A `CheckerEmitResolver` that records the serialization kinds it gives (`recordMetadataKinds`). */
|
|
219
|
+
class RecordingEmitResolver extends CheckerEmitResolver {
|
|
220
|
+
kinds = [];
|
|
221
|
+
getTypeReferenceSerializationKind(typeName, location) {
|
|
222
|
+
const kind = super.getTypeReferenceSerializationKind(typeName, location);
|
|
223
|
+
this.kinds.push(typeName.id, location === undefined ? -1 : location.id, kind);
|
|
224
|
+
return kind;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/** Answers serialization kinds from those recorded on the main thread; `missed` once one wasn't. */
|
|
228
|
+
class RecordedKindsEmitResolver extends SyntacticEmitResolver {
|
|
229
|
+
kinds;
|
|
230
|
+
/** The kind and location of each type name, by the type name's node id. */
|
|
231
|
+
byName = new Map();
|
|
232
|
+
missed = false;
|
|
233
|
+
constructor(options, referenceResolver, kinds) {
|
|
234
|
+
super(options, referenceResolver);
|
|
235
|
+
this.kinds = kinds;
|
|
236
|
+
for (let i = 0; i < kinds.length; i += 3)
|
|
237
|
+
if (!this.byName.has(kinds[i]))
|
|
238
|
+
this.byName.set(kinds[i], i);
|
|
239
|
+
}
|
|
240
|
+
getTypeReferenceSerializationKind(typeName, location) {
|
|
241
|
+
const at = this.byName.get(typeName.id);
|
|
242
|
+
if (at !== undefined && this.kinds[at + 1] === (location === undefined ? -1 : location.id))
|
|
243
|
+
return this.kinds[at + 2];
|
|
244
|
+
this.missed = true;
|
|
245
|
+
return super.getTypeReferenceSerializationKind(typeName, location);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
168
248
|
/** A checked program and the emit of its files. */
|
|
169
249
|
export class ProgramEmitter {
|
|
170
250
|
checked;
|
|
@@ -231,6 +311,13 @@ export class CompilerProgram {
|
|
|
231
311
|
this.times = times;
|
|
232
312
|
this.emitter = new ProgramEmitter(checked);
|
|
233
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* The time spent in declaration emit while checking, to count as emit time rather than check time, since
|
|
316
|
+
* the last call. Only an incremental program emits while checking, to compute signatures.
|
|
317
|
+
*/
|
|
318
|
+
takeNestedEmitTime() {
|
|
319
|
+
return 0;
|
|
320
|
+
}
|
|
234
321
|
get program() {
|
|
235
322
|
return this.checked.program;
|
|
236
323
|
}
|
|
@@ -250,6 +337,14 @@ export class CompilerProgram {
|
|
|
250
337
|
getGlobalDiagnostics(withCheckerThreads = true) {
|
|
251
338
|
return this.checked.getGlobalDiagnostics(withCheckerThreads);
|
|
252
339
|
}
|
|
340
|
+
/**
|
|
341
|
+
* Whether the global diagnostics found by checking are reported after the semantic diagnostics. An
|
|
342
|
+
* incremental program has them in the semantic diagnostics of the files they were found in
|
|
343
|
+
* (`CheckedProgram.globalsInFileDiagnostics`).
|
|
344
|
+
*/
|
|
345
|
+
reportsGlobalDiagnosticsOfChecking() {
|
|
346
|
+
return !this.checked.globalsInFileDiagnostics;
|
|
347
|
+
}
|
|
253
348
|
}
|
|
254
349
|
/** Collects declaration emit errors without writing anything. */
|
|
255
350
|
class DiscardingWriter extends OutputWriter {
|
|
@@ -283,31 +378,36 @@ export class PlainProgram extends CompilerProgram {
|
|
|
283
378
|
}
|
|
284
379
|
emit(writer) {
|
|
285
380
|
const options = this.options;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
381
|
+
// A `noEmit` program emits nothing, and its emit is not skipped (tsgo's `HandleNoEmitOptions`): its
|
|
382
|
+
// declaration errors come with its other diagnostics (`getDiagnosticsOfProgram`).
|
|
383
|
+
if (options.noEmit === true)
|
|
384
|
+
return new EmitResult();
|
|
385
|
+
const skipped = handleNoEmitOnError(this);
|
|
386
|
+
if (skipped !== undefined)
|
|
387
|
+
return skipped;
|
|
291
388
|
const program = this.program;
|
|
292
389
|
const files = program.getSourceFiles();
|
|
293
390
|
const parallel = this.checked.emittedInParallel;
|
|
294
|
-
// Checker threads emitted the files they checked (parallel-check.ts)
|
|
391
|
+
// Checker threads emitted the files they checked (parallel-check.ts), or emit threads their JavaScript
|
|
392
|
+
// (parallel-emit.ts); the rest is emitted here, in order.
|
|
295
393
|
const result = parallel === undefined
|
|
296
394
|
? this.emitter.emit(files, 0 /* EmitOnly.All */, writer)
|
|
297
395
|
: combineEmitResults(files.map((file, i) => {
|
|
298
396
|
const emitted = parallel[i];
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
397
|
+
// The declaration thread emitted the declarations of the files it could (parallel-emit.ts).
|
|
398
|
+
const ahead = this.checked.declarationsEmittedAhead;
|
|
399
|
+
// The file's JavaScript is emitted too, here or on an emit thread.
|
|
400
|
+
const declarations = () => ahead?.[i] ?? this.emitter.emit([file], 4 /* EmitOnly.DtsAfterJs */, writer);
|
|
401
|
+
if (emitted === undefined)
|
|
402
|
+
return ahead !== undefined
|
|
403
|
+
? combineEmitResults([this.emitter.emit([file], 1 /* EmitOnly.Js */, writer), declarations()])
|
|
404
|
+
: this.emitter.emit([file], 0 /* EmitOnly.All */, writer);
|
|
405
|
+
const written = writeHeldOutputs(emitted, writer);
|
|
406
|
+
// Emit threads emit JavaScript only.
|
|
407
|
+
if (!this.checked.javaScriptEmittedOnThreads || !getEmitDeclarations(options))
|
|
408
|
+
return written;
|
|
409
|
+
return combineEmitResults([written, declarations()]);
|
|
302
410
|
}));
|
|
303
|
-
if (options.noEmit === true) {
|
|
304
|
-
// Emit is skipped only for files that would have been emitted.
|
|
305
|
-
result.emitSkipped = files.some((file) => program.sourceFileMayBeEmitted(file, false));
|
|
306
|
-
// Declaration emit still runs for its errors, as in tsgo, also when other errors were found.
|
|
307
|
-
if (getEmitDeclarations(options) && options.noEmitOnError !== true)
|
|
308
|
-
for (const d of this.getDeclarationDiagnostics())
|
|
309
|
-
result.diagnostics.push(d);
|
|
310
|
-
}
|
|
311
411
|
return result;
|
|
312
412
|
}
|
|
313
413
|
}
|
|
@@ -325,10 +425,11 @@ export function handleNoEmitOnError(program) {
|
|
|
325
425
|
return result;
|
|
326
426
|
}
|
|
327
427
|
/**
|
|
328
|
-
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and
|
|
329
|
-
* declaration errors under `noEmit` (or `withDeclarationDiagnostics`).
|
|
428
|
+
* Config and syntax errors; without syntax errors, program, global and semantic errors too, and, when
|
|
429
|
+
* there are none of these, declaration errors under `noEmit` (or `withDeclarationDiagnostics`). With
|
|
430
|
+
* `declarationsLater`, the declaration errors are left to the caller (`declarationDiagnosticsDue`).
|
|
330
431
|
*/
|
|
331
|
-
export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics) {
|
|
432
|
+
export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics, declarationsLater = false) {
|
|
332
433
|
const result = [...program.getConfigFileParsingDiagnostics()];
|
|
333
434
|
const configCount = result.length;
|
|
334
435
|
for (const d of program.getSyntacticDiagnostics())
|
|
@@ -348,22 +449,33 @@ export function getDiagnosticsOfProgram(program, withDeclarationDiagnostics) {
|
|
|
348
449
|
if (result.length === configCount) {
|
|
349
450
|
const checkStart = performance.now();
|
|
350
451
|
const semantic = program.getSemanticDiagnostics();
|
|
351
|
-
|
|
452
|
+
// Declaration emit that computed signatures while checking counts as emit time, as in TypeScript 7.1.
|
|
453
|
+
const nestedEmitTime = program.takeNestedEmitTime();
|
|
454
|
+
program.times.checkTime = Math.max(0, performance.now() - checkStart - nestedEmitTime);
|
|
455
|
+
program.times.emitTime += nestedEmitTime;
|
|
352
456
|
for (const d of semantic)
|
|
353
457
|
result.push(d);
|
|
354
458
|
// Checking may have found more, such as missing global types.
|
|
355
|
-
|
|
356
|
-
|
|
459
|
+
if (program.reportsGlobalDiagnosticsOfChecking())
|
|
460
|
+
for (const d of program.getGlobalDiagnostics())
|
|
461
|
+
result.push(d);
|
|
357
462
|
mark('semantic diagnostics');
|
|
358
463
|
}
|
|
359
|
-
if (
|
|
360
|
-
getEmitDeclarations(options) &&
|
|
361
|
-
result.length === configCount) {
|
|
464
|
+
if (!declarationsLater && declarationDiagnosticsDue(program, result, withDeclarationDiagnostics))
|
|
362
465
|
for (const d of program.getDeclarationDiagnostics())
|
|
363
466
|
result.push(d);
|
|
364
|
-
}
|
|
365
467
|
return result;
|
|
366
468
|
}
|
|
469
|
+
/**
|
|
470
|
+
* Whether `getDiagnosticsOfProgram` adds the declaration errors to `diagnostics`: under `noEmit` (or
|
|
471
|
+
* `withDeclarationDiagnostics`) with declarations, when only config errors were found.
|
|
472
|
+
*/
|
|
473
|
+
export function declarationDiagnosticsDue(program, diagnostics, withDeclarationDiagnostics) {
|
|
474
|
+
const options = program.options;
|
|
475
|
+
return ((withDeclarationDiagnostics || options.noEmit === true) &&
|
|
476
|
+
getEmitDeclarations(options) &&
|
|
477
|
+
diagnostics.length === program.getConfigFileParsingDiagnostics().length);
|
|
478
|
+
}
|
|
367
479
|
/** Combines emit results in order. */
|
|
368
480
|
export function combineEmitResults(results) {
|
|
369
481
|
const result = new EmitResult();
|