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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Checker, CheckerHost, disposeChecker } from './checker.js';
|
|
2
|
-
import { createDiagnostic, messageCode } from './diagnostics.js';
|
|
2
|
+
import { compareDiagnostics, createDiagnostic, messageCode, } from './diagnostics.js';
|
|
3
3
|
import { ModuleSpecifierHost } from './module-specifiers.js';
|
|
4
4
|
import { sortAndDeduplicateDiagnostics } from './program.js';
|
|
5
5
|
import { getEmitModuleFormatOfFile, getEmitSyntaxForUsageLocation, isCheckJsEnabledForFile, } from './program-utilities.js';
|
|
@@ -199,6 +199,12 @@ export class CheckedProgram {
|
|
|
199
199
|
*/
|
|
200
200
|
referenceThreads = 1;
|
|
201
201
|
parallelGlobalDiagnostics = [];
|
|
202
|
+
/**
|
|
203
|
+
* Whether the semantic diagnostics of a file include the global diagnostics its checker found while
|
|
204
|
+
* checking it, as an incremental program caches them (IncrementalProgram). Such a program doesn't report
|
|
205
|
+
* the global diagnostics found by checking otherwise (`reportsGlobalDiagnosticsOfChecking`, compile-program.ts).
|
|
206
|
+
*/
|
|
207
|
+
globalsInFileDiagnostics = false;
|
|
202
208
|
/**
|
|
203
209
|
* The declaration diagnostics checker threads computed under `noEmit` (PlainProgram,
|
|
204
210
|
* IncrementalProgram), by file index; `undefined` for files they did not. Set once every file is
|
|
@@ -210,6 +216,10 @@ export class CheckedProgram {
|
|
|
210
216
|
* emit. Set once every file is checked, when checker threads emit (parallel-check.ts).
|
|
211
217
|
*/
|
|
212
218
|
emittedInParallel = undefined;
|
|
219
|
+
/** Emit threads emitted only the JavaScript of `emittedInParallel`: declarations are emitted here. */
|
|
220
|
+
javaScriptEmittedOnThreads = false;
|
|
221
|
+
/** The declaration emit of each file on the declaration thread (parallel-emit.ts); undefined for one it didn't emit. */
|
|
222
|
+
declarationsEmittedAhead = undefined;
|
|
213
223
|
/**
|
|
214
224
|
* The global diagnostics of this thread's checker before it emitted files while checker threads
|
|
215
225
|
* checked (`emitUncheckedFiles`), reported instead of its current ones.
|
|
@@ -333,10 +343,10 @@ export class CheckedProgram {
|
|
|
333
343
|
return own;
|
|
334
344
|
return sortAndDeduplicateDiagnostics([...own, ...parallel]);
|
|
335
345
|
}
|
|
336
|
-
/** Whether `file`'s bind and check diagnostics are
|
|
337
|
-
skipTypeChecking(file) {
|
|
346
|
+
/** Whether `file`'s bind and check diagnostics are skipped; `ignoreNoCheck` leaves `noCheck` out. */
|
|
347
|
+
skipTypeChecking(file, ignoreNoCheck = false) {
|
|
338
348
|
const options = this.program.options;
|
|
339
|
-
return (options.noCheck === true ||
|
|
349
|
+
return ((!ignoreNoCheck && options.noCheck === true) ||
|
|
340
350
|
(options.skipLibCheck === true && file.isDeclarationFile) ||
|
|
341
351
|
(options.skipDefaultLibCheck === true && this.program.isSourceFileDefaultLibrary(file.path)) ||
|
|
342
352
|
this.program.getProjectReferenceFromSource(file.path) !== undefined ||
|
|
@@ -367,8 +377,23 @@ export class CheckedProgram {
|
|
|
367
377
|
getBindAndCheckDiagnostics(file, checks) {
|
|
368
378
|
const options = this.program.options;
|
|
369
379
|
const diagnostics = file.bindDiagnostics.slice();
|
|
370
|
-
|
|
371
|
-
|
|
380
|
+
if (checks !== undefined)
|
|
381
|
+
for (const d of checks)
|
|
382
|
+
diagnostics.push(d);
|
|
383
|
+
else if (this.globalsInFileDiagnostics) {
|
|
384
|
+
const checker = this.checker;
|
|
385
|
+
const before = checker.getGlobalDiagnostics();
|
|
386
|
+
for (const d of checker.getDiagnostics(file))
|
|
387
|
+
diagnostics.push(d);
|
|
388
|
+
const after = checker.getGlobalDiagnostics();
|
|
389
|
+
if (after.length > before.length)
|
|
390
|
+
for (const d of after)
|
|
391
|
+
if (!containsSortedDiagnostic(before, d))
|
|
392
|
+
diagnostics.push(d);
|
|
393
|
+
}
|
|
394
|
+
else
|
|
395
|
+
for (const d of this.checker.getDiagnostics(file))
|
|
396
|
+
diagnostics.push(d);
|
|
372
397
|
if (isPlainJSFile(file, options)) {
|
|
373
398
|
const result = [];
|
|
374
399
|
for (const d of diagnostics)
|
|
@@ -383,7 +408,7 @@ export class CheckedProgram {
|
|
|
383
408
|
const directives = new Directives(file);
|
|
384
409
|
const filtered = directives.filter(diagnostics);
|
|
385
410
|
for (const directive of directives.unused()) {
|
|
386
|
-
filtered.push(createDiagnostic(file.diagnosticFile(), directive.pos, directive.end,
|
|
411
|
+
filtered.push(createDiagnostic(file.diagnosticFile(), directive.pos, directive.end, 736 /* Diagnostics.Unused_ts_expect_error_directive */));
|
|
387
412
|
}
|
|
388
413
|
return filtered;
|
|
389
414
|
}
|
|
@@ -394,6 +419,22 @@ export class CheckedProgram {
|
|
|
394
419
|
return diagnostics.length === 0 ? diagnostics : new Directives(file).filter(diagnostics);
|
|
395
420
|
}
|
|
396
421
|
}
|
|
422
|
+
/** Whether `sorted`, in `compareDiagnostics` order, has a diagnostic equal to `diagnostic`. */
|
|
423
|
+
function containsSortedDiagnostic(sorted, diagnostic) {
|
|
424
|
+
let low = 0;
|
|
425
|
+
let high = sorted.length - 1;
|
|
426
|
+
while (low <= high) {
|
|
427
|
+
const middle = (low + high) >>> 1;
|
|
428
|
+
const c = compareDiagnostics(sorted[middle], diagnostic);
|
|
429
|
+
if (c === 0)
|
|
430
|
+
return true;
|
|
431
|
+
if (c < 0)
|
|
432
|
+
low = middle + 1;
|
|
433
|
+
else
|
|
434
|
+
high = middle - 1;
|
|
435
|
+
}
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
397
438
|
/** The `@ts-ignore` and `@ts-expect-error` comments of a file, by line. */
|
|
398
439
|
class Directives {
|
|
399
440
|
file;
|
|
@@ -417,6 +458,11 @@ class Directives {
|
|
|
417
458
|
const lineStarts = this.file.diagnosticFile().getLineStarts();
|
|
418
459
|
const result = [];
|
|
419
460
|
for (const diagnostic of diagnostics) {
|
|
461
|
+
// A global diagnostic, or one of another file, has no line here.
|
|
462
|
+
if (diagnostic.file === undefined || diagnostic.file.fileName !== this.file.fileName) {
|
|
463
|
+
result.push(diagnostic);
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
420
466
|
let ignored = false;
|
|
421
467
|
for (let line = computeLineOfPosition(lineStarts, diagnostic.pos) - 1; line >= 0; line--) {
|
|
422
468
|
const directive = this.byLine.get(line);
|
|
@@ -472,14 +518,14 @@ function canIncludeBindAndCheckDiagnostics(file, options) {
|
|
|
472
518
|
}
|
|
473
519
|
/** The errors reported in JavaScript files that aren't type checked. */
|
|
474
520
|
const plainJSErrors = codesOf([
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
521
|
+
626 /* Diagnostics.Cannot_redeclare_block_scoped_variable_0 */,
|
|
522
|
+
693 /* Diagnostics.A_module_cannot_have_multiple_default_exports */,
|
|
523
|
+
892 /* Diagnostics.Another_export_default_is_here */,
|
|
524
|
+
891 /* Diagnostics.The_first_export_default_is_here */,
|
|
479
525
|
211 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module */,
|
|
480
526
|
167 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode */,
|
|
481
527
|
293 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here */,
|
|
482
|
-
|
|
528
|
+
1854 /* Diagnostics.X_constructor_is_a_reserved_word */,
|
|
483
529
|
71 /* Diagnostics.X_delete_cannot_be_called_on_an_identifier_in_strict_mode */,
|
|
484
530
|
163 /* Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode */,
|
|
485
531
|
168 /* Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode */,
|
|
@@ -495,56 +541,57 @@ const plainJSErrors = codesOf([
|
|
|
495
541
|
83 /* Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement */,
|
|
496
542
|
81 /* Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement */,
|
|
497
543
|
207 /* Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration */,
|
|
544
|
+
1952 /* Diagnostics.A_deferred_import_must_specify_a_namespace_binding */,
|
|
498
545
|
205 /* Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context */,
|
|
499
546
|
138 /* Diagnostics.A_destructuring_declaration_must_have_an_initializer */,
|
|
500
547
|
40 /* Diagnostics.A_get_accessor_cannot_have_parameters */,
|
|
501
|
-
|
|
502
|
-
|
|
548
|
+
668 /* Diagnostics.A_rest_element_cannot_contain_a_binding_pattern */,
|
|
549
|
+
727 /* Diagnostics.A_rest_element_cannot_have_a_property_name */,
|
|
503
550
|
142 /* Diagnostics.A_rest_element_cannot_have_an_initializer */,
|
|
504
|
-
|
|
551
|
+
635 /* Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern */,
|
|
505
552
|
35 /* Diagnostics.A_rest_parameter_cannot_have_an_initializer */,
|
|
506
553
|
10 /* Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list */,
|
|
507
554
|
9 /* Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma */,
|
|
508
|
-
|
|
555
|
+
1877 /* Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block */,
|
|
509
556
|
39 /* Diagnostics.A_set_accessor_cannot_have_rest_parameter */,
|
|
510
557
|
36 /* Diagnostics.A_set_accessor_must_have_exactly_one_parameter */,
|
|
511
|
-
|
|
558
|
+
387 /* Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module */,
|
|
512
559
|
149 /* Diagnostics.An_export_declaration_cannot_have_modifiers */,
|
|
513
|
-
|
|
560
|
+
386 /* Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module */,
|
|
514
561
|
147 /* Diagnostics.An_import_declaration_cannot_have_modifiers */,
|
|
515
562
|
119 /* Diagnostics.An_object_member_cannot_be_declared_optional */,
|
|
516
563
|
261 /* Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element */,
|
|
517
|
-
|
|
518
|
-
|
|
564
|
+
942 /* Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable */,
|
|
565
|
+
659 /* Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause */,
|
|
519
566
|
153 /* Diagnostics.Catch_clause_variable_cannot_have_an_initializer */,
|
|
520
|
-
|
|
567
|
+
1873 /* Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator */,
|
|
521
568
|
130 /* Diagnostics.Classes_can_only_extend_a_single_class */,
|
|
522
|
-
|
|
569
|
+
1849 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
|
|
523
570
|
248 /* Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern */,
|
|
524
571
|
82 /* Diagnostics.Duplicate_label_0 */,
|
|
525
572
|
372 /* Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments */,
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
573
|
+
1875 /* Diagnostics.X_for_await_loops_cannot_be_used_inside_a_class_static_block */,
|
|
574
|
+
1824 /* Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression */,
|
|
575
|
+
1825 /* Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name */,
|
|
576
|
+
1850 /* Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array */,
|
|
577
|
+
783 /* Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names */,
|
|
531
578
|
76 /* Diagnostics.Jump_target_cannot_cross_function_boundary */,
|
|
532
579
|
156 /* Diagnostics.Line_terminator_not_permitted_before_arrow */,
|
|
533
580
|
140 /* Diagnostics.Modifiers_cannot_appear_here */,
|
|
534
581
|
60 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement */,
|
|
535
582
|
144 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement */,
|
|
536
|
-
|
|
583
|
+
1858 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
|
|
537
584
|
373 /* Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression */,
|
|
538
|
-
|
|
585
|
+
1855 /* Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier */,
|
|
539
586
|
292 /* Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain */,
|
|
540
587
|
75 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async */,
|
|
541
588
|
145 /* Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer */,
|
|
542
589
|
146 /* Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer */,
|
|
543
590
|
5 /* Diagnostics.Trailing_comma_not_allowed */,
|
|
544
591
|
90 /* Diagnostics.Variable_declaration_list_cannot_be_empty */,
|
|
545
|
-
|
|
592
|
+
1158 /* Diagnostics.X_0_and_1_operations_cannot_be_mixed_without_parentheses */,
|
|
546
593
|
2 /* Diagnostics.X_0_expected */,
|
|
547
|
-
|
|
594
|
+
1835 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2 */,
|
|
548
595
|
66 /* Diagnostics.X_0_list_cannot_be_empty */,
|
|
549
596
|
23 /* Diagnostics.X_0_modifier_already_seen */,
|
|
550
597
|
58 /* Diagnostics.X_0_modifier_cannot_appear_on_a_constructor_declaration */,
|
|
@@ -556,13 +603,20 @@ const plainJSErrors = codesOf([
|
|
|
556
603
|
116 /* Diagnostics.X_0_declarations_can_only_be_declared_inside_a_block */,
|
|
557
604
|
115 /* Diagnostics.X_0_declarations_must_be_initialized */,
|
|
558
605
|
128 /* Diagnostics.X_extends_clause_already_seen */,
|
|
559
|
-
|
|
606
|
+
650 /* Diagnostics.X_let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations */,
|
|
560
607
|
302 /* Diagnostics.Class_constructor_may_not_be_a_generator */,
|
|
561
608
|
276 /* Diagnostics.Class_constructor_may_not_be_an_accessor */,
|
|
562
609
|
246 /* Diagnostics.X_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
|
|
563
|
-
|
|
610
|
+
979 /* Diagnostics.X_await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
|
|
564
611
|
80 /* Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class */,
|
|
565
|
-
|
|
612
|
+
968 /* Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value */,
|
|
613
|
+
1952 /* Diagnostics.A_deferred_import_must_specify_a_namespace_binding */,
|
|
614
|
+
1946 /* Diagnostics.A_source_phase_import_must_specify_a_local_binding */,
|
|
615
|
+
1947 /* Diagnostics.Named_and_namespace_imports_are_not_allowed_in_a_source_phase_import */,
|
|
616
|
+
1949 /* Diagnostics.Optional_chaining_cannot_be_used_with_import_source */,
|
|
617
|
+
1950 /* Diagnostics.Source_phase_imports_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls */,
|
|
618
|
+
1948 /* Diagnostics.Source_phase_imports_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve */,
|
|
619
|
+
1896 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_defer_or_source */,
|
|
566
620
|
]);
|
|
567
621
|
function codesOf(messages) {
|
|
568
622
|
const codes = new Set();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Option and syntax queries of program construction: libraries, module formats and resolution modes.
|
|
3
3
|
*/
|
|
4
|
-
import { ExternalModuleIndicatorOptions, ImportAttributes, type Node, type SourceFile } from './ast.js';
|
|
4
|
+
import { ExternalModuleIndicatorOptions, ImportAttribute, ImportAttributes, type Node, type SourceFile } from './ast.js';
|
|
5
5
|
import { JsxEmit, ModuleKind, ScriptTarget, type CompilerOptions } from './options.js';
|
|
6
6
|
/** `--lib` names in declaration order. */
|
|
7
7
|
export declare const libNames: readonly string[];
|
|
@@ -44,6 +44,8 @@ export declare function getJSXImplicitImportBase(options: CompilerOptions, file:
|
|
|
44
44
|
export declare function getJSXRuntimeImport(base: string, options: CompilerOptions): string;
|
|
45
45
|
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
46
46
|
export declare function getResolutionModeOverride(attributes: ImportAttributes | undefined): ModuleKind;
|
|
47
|
+
/** The `resolution-mode` attribute among import attributes, as tsgo's `GetResolutionModeOverride` finds it. */
|
|
48
|
+
export declare function resolutionModeAttribute(attributes: ImportAttributes | undefined): ImportAttribute | undefined;
|
|
47
49
|
/** Whether `import` syntax decides how a specifier resolves: Node16-style resolution or `exports`/`imports`. */
|
|
48
50
|
export declare function importSyntaxAffectsModuleResolution(options: CompilerOptions): boolean;
|
|
49
51
|
/** The mode a module specifier resolves in: from attributes, the import syntax, or the file's format. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Option and syntax queries of program construction: libraries, module formats and resolution modes.
|
|
3
3
|
*/
|
|
4
|
-
import { ExportDeclaration, ExternalModuleIndicatorOptions, ImportAttribute, ImportDeclaration, ImportEqualsDeclaration, ImportTypeNode, JSDocImportTag, LiteralTypeNode, NoSubstitutionTemplateLiteral, ParenthesizedExpression, StringLiteral, } from './ast.js';
|
|
5
|
-
import { isImportCall, isRequireCall } from './ast-utilities.js';
|
|
4
|
+
import { ExportDeclaration, ExternalModuleIndicatorOptions, Identifier, ImportAttribute, ImportDeclaration, ImportEqualsDeclaration, ImportTypeNode, JSDocImportTag, LiteralTypeNode, NoSubstitutionTemplateLiteral, ParenthesizedExpression, StringLiteral, } from './ast.js';
|
|
5
|
+
import { isImportCall, isRequireCall, isSourcePhaseImportCall } from './ast-utilities.js';
|
|
6
6
|
import { libMap } from './option-declarations.js';
|
|
7
7
|
import { getEmitModuleDetectionKind, getEmitModuleKind, getEmitScriptTarget, getModuleResolutionKind, getResolvePackageJsonExports, getResolvePackageJsonImports, JsxEmit, ModuleDetectionKind, ModuleKind, ModuleResolutionKind, ScriptTarget, } from './options.js';
|
|
8
8
|
import { fileExtensionIsOneOf, isDeclarationFileName, toFileNameLowerCase } from './path.js';
|
|
@@ -26,6 +26,8 @@ export function getDefaultLibFileName(options) {
|
|
|
26
26
|
switch (getEmitScriptTarget(options)) {
|
|
27
27
|
case ScriptTarget.ESNext:
|
|
28
28
|
return 'lib.esnext.full.d.ts';
|
|
29
|
+
case ScriptTarget.ES2026:
|
|
30
|
+
return 'lib.es2026.full.d.ts';
|
|
29
31
|
case ScriptTarget.ES2025:
|
|
30
32
|
return 'lib.es2025.full.d.ts';
|
|
31
33
|
case ScriptTarget.ES2024:
|
|
@@ -80,6 +82,8 @@ export function scriptTargetName(target) {
|
|
|
80
82
|
return 'ES2024';
|
|
81
83
|
case ScriptTarget.ES2025:
|
|
82
84
|
return 'ES2025';
|
|
85
|
+
case ScriptTarget.ES2026:
|
|
86
|
+
return 'ES2026';
|
|
83
87
|
case ScriptTarget.ESNext:
|
|
84
88
|
return 'ESNext';
|
|
85
89
|
case ScriptTarget.JSON:
|
|
@@ -258,18 +262,8 @@ function literalText(node) {
|
|
|
258
262
|
}
|
|
259
263
|
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
260
264
|
export function getResolutionModeOverride(attributes) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
const elements = attributes.attributes.nodes;
|
|
264
|
-
if (elements.length !== 1)
|
|
265
|
-
return ModuleKind.None;
|
|
266
|
-
const attribute = elements[0];
|
|
267
|
-
if (!(attribute instanceof ImportAttribute))
|
|
268
|
-
return ModuleKind.None;
|
|
269
|
-
const name = attribute.name;
|
|
270
|
-
if (name === undefined || !isStringLiteralLike(name) || literalText(name) !== 'resolution-mode')
|
|
271
|
-
return ModuleKind.None;
|
|
272
|
-
if (!isStringLiteralLike(attribute.value))
|
|
265
|
+
const attribute = resolutionModeAttribute(attributes);
|
|
266
|
+
if (attribute === undefined || !isStringLiteralLike(attribute.value))
|
|
273
267
|
return ModuleKind.None;
|
|
274
268
|
const text = literalText(attribute.value);
|
|
275
269
|
if (text === 'import')
|
|
@@ -278,6 +272,22 @@ export function getResolutionModeOverride(attributes) {
|
|
|
278
272
|
return ModuleKind.CommonJS;
|
|
279
273
|
return ModuleKind.None;
|
|
280
274
|
}
|
|
275
|
+
/** The `resolution-mode` attribute among import attributes, as tsgo's `GetResolutionModeOverride` finds it. */
|
|
276
|
+
export function resolutionModeAttribute(attributes) {
|
|
277
|
+
if (attributes === undefined)
|
|
278
|
+
return undefined;
|
|
279
|
+
for (const attribute of attributes.attributes.nodes) {
|
|
280
|
+
if (!(attribute instanceof ImportAttribute))
|
|
281
|
+
continue;
|
|
282
|
+
const name = attribute.name;
|
|
283
|
+
if (name === undefined)
|
|
284
|
+
continue;
|
|
285
|
+
const text = name instanceof Identifier ? name.text : literalText(name);
|
|
286
|
+
if (text === 'resolution-mode')
|
|
287
|
+
return attribute;
|
|
288
|
+
}
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
281
291
|
/** The attributes of an import or export declaration or a JSDoc `@import`, if any. */
|
|
282
292
|
function importOrExportAttributes(node) {
|
|
283
293
|
if (node instanceof ImportDeclaration)
|
|
@@ -335,12 +345,15 @@ export function getEmitSyntaxForUsageLocation(fileName, metadata, usage, options
|
|
|
335
345
|
if (parent === undefined)
|
|
336
346
|
return ModuleKind.None;
|
|
337
347
|
if (isRequireCall(parent, false) ||
|
|
338
|
-
(parent.kind ===
|
|
348
|
+
(parent.kind === 285 /* SyntaxKind.ExternalModuleReference */ && parent.parent instanceof ImportEqualsDeclaration)) {
|
|
339
349
|
return ModuleKind.CommonJS;
|
|
340
350
|
}
|
|
341
351
|
const fileEmitMode = getEmitModuleFormatOfFile(fileName, options, metadata);
|
|
342
352
|
const call = walkUpParenthesizedExpressions(parent);
|
|
343
353
|
if (call !== undefined && isImportCall(call)) {
|
|
354
|
+
// `import.source()` is never transformed to `require`.
|
|
355
|
+
if (isSourcePhaseImportCall(call))
|
|
356
|
+
return ModuleKind.ESNext;
|
|
344
357
|
return shouldTransformImportCall(options, fileEmitMode) ? ModuleKind.CommonJS : ModuleKind.ESNext;
|
|
345
358
|
}
|
|
346
359
|
if (fileEmitMode === ModuleKind.CommonJS)
|
|
@@ -84,6 +84,8 @@ export declare class Program implements OutputPathsHost {
|
|
|
84
84
|
getGlobalTypingsCacheLocation(): string;
|
|
85
85
|
/** Files of the same package version that redirect to the file at `path`. */
|
|
86
86
|
getRedirectTargets(path: string): readonly string[];
|
|
87
|
+
/** The nearest `package.json` lookup at or above `directory`. */
|
|
88
|
+
getPackageScopeForPath(directory: string): PackageJsonInfo | undefined;
|
|
87
89
|
/** The directory of the nearest `package.json` at or above `directory`, or `''`. */
|
|
88
90
|
getNearestAncestorDirectoryWithPackageJson(directory: string): string;
|
|
89
91
|
/** The `package.json` at `packageJsonPath`, if it exists and is the scope of its directory. */
|
|
@@ -111,12 +113,8 @@ export declare class Program implements OutputPathsHost {
|
|
|
111
113
|
/** Packages that modules resolved into, by name: whether any resolution into them was a declaration file. */
|
|
112
114
|
getPackagesMap(): ReadonlyMap<string, boolean>;
|
|
113
115
|
getResolvedModule(file: SourceFile, moduleName: string, mode: ModuleKind): ResolvedModule | undefined;
|
|
114
|
-
/** The
|
|
115
|
-
|
|
116
|
-
* The files `file` imports and references through type directives. `byFileName`, the program's
|
|
117
|
-
* files by file name, finds a file without computing its path when it is resolved by that name.
|
|
118
|
-
*/
|
|
119
|
-
getResolvedFilesOf(file: SourceFile, byFileName?: ReadonlyMap<string, SourceFile>): SourceFile[];
|
|
116
|
+
/** The files each file added to the program (`ProcessedFiles.addedFiles`), as indices of `getSourceFiles`. */
|
|
117
|
+
addedFiles(): readonly (readonly number[])[];
|
|
120
118
|
/** The specifier of the implicit JSX runtime import of `file`, if any. */
|
|
121
119
|
jsxRuntimeImportSpecifier(path: string): Node | undefined;
|
|
122
120
|
getResolvedModuleFromModuleSpecifier(file: SourceFile, specifier: Node): ResolvedModule | undefined;
|