tsc-ts 0.0.4 → 0.0.5
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 +33 -1
- package/dist/api/compiler/ast-utilities.d.ts +82 -0
- package/dist/api/compiler/ast-utilities.js +462 -0
- package/dist/api/compiler/ast.d.ts +2350 -0
- package/dist/api/compiler/ast.js +11206 -0
- package/dist/api/compiler/astnav.d.ts +37 -0
- package/dist/api/compiler/astnav.js +767 -0
- package/dist/api/compiler/binder-utilities.d.ts +182 -0
- package/dist/api/compiler/binder-utilities.js +1240 -0
- package/dist/api/compiler/binder.d.ts +33 -0
- package/dist/api/compiler/binder.js +2358 -0
- package/dist/api/compiler/character-codes.d.ts +161 -0
- package/dist/api/compiler/character-codes.js +160 -0
- package/dist/api/compiler/checker-calls.d.ts +46 -0
- package/dist/api/compiler/checker-calls.js +1640 -0
- package/dist/api/compiler/checker-classes.d.ts +30 -0
- package/dist/api/compiler/checker-classes.js +582 -0
- package/dist/api/compiler/checker-contextual.d.ts +77 -0
- package/dist/api/compiler/checker-contextual.js +1136 -0
- package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
- package/dist/api/compiler/checker-declaration-order.js +356 -0
- package/dist/api/compiler/checker-declarations.d.ts +33 -0
- package/dist/api/compiler/checker-declarations.js +888 -0
- package/dist/api/compiler/checker-declared-types.d.ts +48 -0
- package/dist/api/compiler/checker-declared-types.js +787 -0
- package/dist/api/compiler/checker-decorators.d.ts +26 -0
- package/dist/api/compiler/checker-decorators.js +562 -0
- package/dist/api/compiler/checker-deprecation.d.ts +33 -0
- package/dist/api/compiler/checker-deprecation.js +315 -0
- package/dist/api/compiler/checker-destructuring.d.ts +34 -0
- package/dist/api/compiler/checker-destructuring.js +584 -0
- package/dist/api/compiler/checker-elaboration.d.ts +15 -0
- package/dist/api/compiler/checker-elaboration.js +290 -0
- package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
- package/dist/api/compiler/checker-emit-helpers.js +154 -0
- package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
- package/dist/api/compiler/checker-emit-resolver.js +579 -0
- package/dist/api/compiler/checker-evaluator.d.ts +27 -0
- package/dist/api/compiler/checker-evaluator.js +188 -0
- package/dist/api/compiler/checker-expressions.d.ts +67 -0
- package/dist/api/compiler/checker-expressions.js +1351 -0
- package/dist/api/compiler/checker-features.d.ts +6 -0
- package/dist/api/compiler/checker-features.js +354 -0
- package/dist/api/compiler/checker-flow.d.ts +86 -0
- package/dist/api/compiler/checker-flow.js +169 -0
- package/dist/api/compiler/checker-functions.d.ts +43 -0
- package/dist/api/compiler/checker-functions.js +1002 -0
- package/dist/api/compiler/checker-generated-code.d.ts +25 -0
- package/dist/api/compiler/checker-generated-code.js +168 -0
- package/dist/api/compiler/checker-globals.d.ts +14 -0
- package/dist/api/compiler/checker-globals.js +37 -0
- package/dist/api/compiler/checker-grammar.d.ts +35 -0
- package/dist/api/compiler/checker-grammar.js +2573 -0
- package/dist/api/compiler/checker-heritage.d.ts +28 -0
- package/dist/api/compiler/checker-heritage.js +900 -0
- package/dist/api/compiler/checker-inference.d.ts +179 -0
- package/dist/api/compiler/checker-inference.js +2105 -0
- package/dist/api/compiler/checker-iteration.d.ts +115 -0
- package/dist/api/compiler/checker-iteration.js +857 -0
- package/dist/api/compiler/checker-javascript.d.ts +42 -0
- package/dist/api/compiler/checker-javascript.js +441 -0
- package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
- package/dist/api/compiler/checker-jsdoc.js +320 -0
- package/dist/api/compiler/checker-jsx.d.ts +94 -0
- package/dist/api/compiler/checker-jsx.js +1433 -0
- package/dist/api/compiler/checker-literals.d.ts +6 -0
- package/dist/api/compiler/checker-literals.js +43 -0
- package/dist/api/compiler/checker-members.d.ts +198 -0
- package/dist/api/compiler/checker-members.js +2126 -0
- package/dist/api/compiler/checker-modules.d.ts +85 -0
- package/dist/api/compiler/checker-modules.js +2141 -0
- package/dist/api/compiler/checker-narrowing.d.ts +120 -0
- package/dist/api/compiler/checker-narrowing.js +2797 -0
- package/dist/api/compiler/checker-object-literals.d.ts +14 -0
- package/dist/api/compiler/checker-object-literals.js +479 -0
- package/dist/api/compiler/checker-operators.d.ts +33 -0
- package/dist/api/compiler/checker-operators.js +1040 -0
- package/dist/api/compiler/checker-overloads.d.ts +7 -0
- package/dist/api/compiler/checker-overloads.js +270 -0
- package/dist/api/compiler/checker-property-access.d.ts +34 -0
- package/dist/api/compiler/checker-property-access.js +672 -0
- package/dist/api/compiler/checker-services.d.ts +49 -0
- package/dist/api/compiler/checker-services.js +995 -0
- package/dist/api/compiler/checker-signatures.d.ts +55 -0
- package/dist/api/compiler/checker-signatures.js +788 -0
- package/dist/api/compiler/checker-source-file.d.ts +27 -0
- package/dist/api/compiler/checker-source-file.js +619 -0
- package/dist/api/compiler/checker-statements.d.ts +18 -0
- package/dist/api/compiler/checker-statements.js +226 -0
- package/dist/api/compiler/checker-super.d.ts +13 -0
- package/dist/api/compiler/checker-super.js +241 -0
- package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
- package/dist/api/compiler/checker-symbol-types.js +1885 -0
- package/dist/api/compiler/checker-symbols.d.ts +181 -0
- package/dist/api/compiler/checker-symbols.js +1782 -0
- package/dist/api/compiler/checker-type-factory.d.ts +142 -0
- package/dist/api/compiler/checker-type-factory.js +2501 -0
- package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
- package/dist/api/compiler/checker-type-nodes.js +828 -0
- package/dist/api/compiler/checker-type-operators.d.ts +109 -0
- package/dist/api/compiler/checker-type-operators.js +1842 -0
- package/dist/api/compiler/checker-types.d.ts +1027 -0
- package/dist/api/compiler/checker-types.js +1697 -0
- package/dist/api/compiler/checker-unused.d.ts +19 -0
- package/dist/api/compiler/checker-unused.js +524 -0
- package/dist/api/compiler/checker-utilities.d.ts +33 -0
- package/dist/api/compiler/checker-utilities.js +141 -0
- package/dist/api/compiler/checker.d.ts +491 -0
- package/dist/api/compiler/checker.js +912 -0
- package/dist/api/compiler/command-line.d.ts +32 -0
- package/dist/api/compiler/command-line.js +383 -0
- package/dist/api/compiler/compile-program.d.ts +118 -0
- package/dist/api/compiler/compile-program.js +384 -0
- package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
- package/dist/api/compiler/diagnostic-locales.js +64 -0
- package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
- package/dist/api/compiler/diagnostic-messages.js +184 -0
- package/dist/api/compiler/diagnostics.d.ts +167 -0
- package/dist/api/compiler/diagnostics.js +820 -0
- package/dist/api/compiler/emitter.d.ts +71 -0
- package/dist/api/compiler/emitter.js +327 -0
- package/dist/api/compiler/file-include.d.ts +117 -0
- package/dist/api/compiler/file-include.js +536 -0
- package/dist/api/compiler/file-loader.d.ts +261 -0
- package/dist/api/compiler/file-loader.js +1257 -0
- package/dist/api/compiler/file-system.d.ts +51 -0
- package/dist/api/compiler/file-system.js +132 -0
- package/dist/api/compiler/flow.d.ts +60 -0
- package/dist/api/compiler/flow.js +45 -0
- package/dist/api/compiler/instantiation.d.ts +74 -0
- package/dist/api/compiler/instantiation.js +799 -0
- package/dist/api/compiler/jsdoc.d.ts +75 -0
- package/dist/api/compiler/jsdoc.js +1229 -0
- package/dist/api/compiler/link-tables.d.ts +36 -0
- package/dist/api/compiler/link-tables.js +83 -0
- package/dist/api/compiler/locale-data.d.ts +24 -0
- package/dist/api/compiler/locale-data.js +183 -0
- package/dist/api/compiler/locale.d.ts +4 -0
- package/dist/api/compiler/locale.js +317 -0
- package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
- package/dist/api/compiler/locales/cs-CZ.js +3 -0
- package/dist/api/compiler/locales/de-DE.d.ts +2 -0
- package/dist/api/compiler/locales/de-DE.js +3 -0
- package/dist/api/compiler/locales/es-ES.d.ts +2 -0
- package/dist/api/compiler/locales/es-ES.js +3 -0
- package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
- package/dist/api/compiler/locales/fr-FR.js +3 -0
- package/dist/api/compiler/locales/it-IT.d.ts +2 -0
- package/dist/api/compiler/locales/it-IT.js +3 -0
- package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
- package/dist/api/compiler/locales/ja-JP.js +3 -0
- package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
- package/dist/api/compiler/locales/ko-KR.js +3 -0
- package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
- package/dist/api/compiler/locales/pl-PL.js +3 -0
- package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
- package/dist/api/compiler/locales/pt-BR.js +3 -0
- package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
- package/dist/api/compiler/locales/ru-RU.js +3 -0
- package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
- package/dist/api/compiler/locales/tr-TR.js +3 -0
- package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
- package/dist/api/compiler/locales/zh-CN.js +3 -0
- package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
- package/dist/api/compiler/locales/zh-TW.js +3 -0
- package/dist/api/compiler/module-resolution-types.d.ts +83 -0
- package/dist/api/compiler/module-resolution-types.js +176 -0
- package/dist/api/compiler/module-resolution.d.ts +71 -0
- package/dist/api/compiler/module-resolution.js +1598 -0
- package/dist/api/compiler/module-specifiers.d.ts +64 -0
- package/dist/api/compiler/module-specifiers.js +1101 -0
- package/dist/api/compiler/name-resolver.d.ts +43 -0
- package/dist/api/compiler/name-resolver.js +509 -0
- package/dist/api/compiler/node-builder-names.d.ts +32 -0
- package/dist/api/compiler/node-builder-names.js +854 -0
- package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
- package/dist/api/compiler/node-builder-pseudo.js +744 -0
- package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
- package/dist/api/compiler/node-builder-reuse.js +647 -0
- package/dist/api/compiler/node-builder.d.ts +270 -0
- package/dist/api/compiler/node-builder.js +2645 -0
- package/dist/api/compiler/option-declarations.d.ts +90 -0
- package/dist/api/compiler/option-declarations.js +1460 -0
- package/dist/api/compiler/options.d.ts +289 -0
- package/dist/api/compiler/options.js +1197 -0
- package/dist/api/compiler/output-paths.d.ts +42 -0
- package/dist/api/compiler/output-paths.js +195 -0
- package/dist/api/compiler/package-json.d.ts +175 -0
- package/dist/api/compiler/package-json.js +1015 -0
- package/dist/api/compiler/parallel-parse.d.ts +219 -0
- package/dist/api/compiler/parallel-parse.js +537 -0
- package/dist/api/compiler/parser.d.ts +587 -0
- package/dist/api/compiler/parser.js +6407 -0
- package/dist/api/compiler/path.d.ts +91 -0
- package/dist/api/compiler/path.js +705 -0
- package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
- package/dist/api/compiler/printer/async-helpers.js +91 -0
- package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
- package/dist/api/compiler/printer/auto-generate.js +20 -0
- package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
- package/dist/api/compiler/printer/decorator-helpers.js +118 -0
- package/dist/api/compiler/printer/emit-context.d.ts +154 -0
- package/dist/api/compiler/printer/emit-context.js +576 -0
- package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
- package/dist/api/compiler/printer/emit-flags.js +2 -0
- package/dist/api/compiler/printer/factory-base.d.ts +171 -0
- package/dist/api/compiler/printer/factory-base.js +1505 -0
- package/dist/api/compiler/printer/factory.d.ts +147 -0
- package/dist/api/compiler/printer/factory.js +542 -0
- package/dist/api/compiler/printer/helpers.d.ts +27 -0
- package/dist/api/compiler/printer/helpers.js +164 -0
- package/dist/api/compiler/printer/name-generator.d.ts +41 -0
- package/dist/api/compiler/printer/name-generator.js +283 -0
- package/dist/api/compiler/printer/printer.d.ts +411 -0
- package/dist/api/compiler/printer/printer.js +4517 -0
- package/dist/api/compiler/printer/text-writer.d.ts +46 -0
- package/dist/api/compiler/printer/text-writer.js +172 -0
- package/dist/api/compiler/printer/utilities.d.ts +82 -0
- package/dist/api/compiler/printer/utilities.js +817 -0
- package/dist/api/compiler/program-checker.d.ts +156 -0
- package/dist/api/compiler/program-checker.js +526 -0
- package/dist/api/compiler/program-utilities.d.ts +52 -0
- package/dist/api/compiler/program-utilities.js +365 -0
- package/dist/api/compiler/program.d.ts +180 -0
- package/dist/api/compiler/program.js +1011 -0
- package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
- package/dist/api/compiler/pseudo-bigint.js +61 -0
- package/dist/api/compiler/regexp-checker.d.ts +38 -0
- package/dist/api/compiler/regexp-checker.js +942 -0
- package/dist/api/compiler/relations.d.ts +263 -0
- package/dist/api/compiler/relations.js +4002 -0
- package/dist/api/compiler/reparser.d.ts +48 -0
- package/dist/api/compiler/reparser.js +1323 -0
- package/dist/api/compiler/scanner.d.ts +256 -0
- package/dist/api/compiler/scanner.js +2853 -0
- package/dist/api/compiler/side-state.d.ts +16 -0
- package/dist/api/compiler/side-state.js +89 -0
- package/dist/api/compiler/sourcemap.d.ts +55 -0
- package/dist/api/compiler/sourcemap.js +340 -0
- package/dist/api/compiler/spelling.d.ts +14 -0
- package/dist/api/compiler/spelling.js +128 -0
- package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
- package/dist/api/compiler/symbol-accessibility.js +894 -0
- package/dist/api/compiler/symbol.d.ts +240 -0
- package/dist/api/compiler/symbol.js +228 -0
- package/dist/api/compiler/symlinks.d.ts +32 -0
- package/dist/api/compiler/symlinks.js +114 -0
- package/dist/api/compiler/syntax-kind.d.ts +389 -0
- package/dist/api/compiler/syntax-kind.js +2 -0
- package/dist/api/compiler/timeline.d.ts +9 -0
- package/dist/api/compiler/timeline.js +54 -0
- package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
- package/dist/api/compiler/transformers/alias-references.js +676 -0
- package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
- package/dist/api/compiler/transformers/async-utilities.js +260 -0
- package/dist/api/compiler/transformers/async.d.ts +53 -0
- package/dist/api/compiler/transformers/async.js +645 -0
- package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
- package/dist/api/compiler/transformers/class-fields.js +2418 -0
- package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
- package/dist/api/compiler/transformers/class-utilities.js +261 -0
- package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
- package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
- package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
- package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
- package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
- package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
- package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
- package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
- package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
- package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
- package/dist/api/compiler/transformers/declarations.d.ts +175 -0
- package/dist/api/compiler/transformers/declarations.js +2380 -0
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
- package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
- package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
- package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
- package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
- package/dist/api/compiler/transformers/destructuring.js +626 -0
- package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
- package/dist/api/compiler/transformers/downlevel.js +45 -0
- package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
- package/dist/api/compiler/transformers/emit-resolver.js +197 -0
- package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
- package/dist/api/compiler/transformers/es-decorators.js +1901 -0
- package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
- package/dist/api/compiler/transformers/exponentiation.js +76 -0
- package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
- package/dist/api/compiler/transformers/external-module-info.js +351 -0
- package/dist/api/compiler/transformers/for-await.d.ts +43 -0
- package/dist/api/compiler/transformers/for-await.js +469 -0
- package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
- package/dist/api/compiler/transformers/import-elision.js +124 -0
- package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
- package/dist/api/compiler/transformers/jsx-entities.js +256 -0
- package/dist/api/compiler/transformers/jsx.d.ts +71 -0
- package/dist/api/compiler/transformers/jsx.js +700 -0
- package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
- package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
- package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
- package/dist/api/compiler/transformers/logical-assignment.js +62 -0
- package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
- package/dist/api/compiler/transformers/module-utilities.js +36 -0
- package/dist/api/compiler/transformers/module.d.ts +49 -0
- package/dist/api/compiler/transformers/module.js +296 -0
- package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
- package/dist/api/compiler/transformers/named-evaluation.js +266 -0
- package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
- package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
- package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
- package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
- package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
- package/dist/api/compiler/transformers/optional-catch.js +20 -0
- package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
- package/dist/api/compiler/transformers/optional-chain.js +188 -0
- package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
- package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
- package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
- package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
- package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
- package/dist/api/compiler/transformers/subtree-facts.js +203 -0
- package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
- package/dist/api/compiler/transformers/syntax-facts.js +254 -0
- package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
- package/dist/api/compiler/transformers/tagged-template.js +148 -0
- package/dist/api/compiler/transformers/transformer.d.ts +17 -0
- package/dist/api/compiler/transformers/transformer.js +54 -0
- package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
- package/dist/api/compiler/transformers/type-eraser.js +346 -0
- package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
- package/dist/api/compiler/transformers/type-serialization.js +347 -0
- package/dist/api/compiler/transformers/using.d.ts +56 -0
- package/dist/api/compiler/transformers/using.js +453 -0
- package/dist/api/compiler/transformers/utilities.d.ts +50 -0
- package/dist/api/compiler/transformers/utilities.js +347 -0
- package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
- package/dist/api/compiler/transformers/visitor-base.js +817 -0
- package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
- package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
- package/dist/api/compiler/tsconfig.d.ts +177 -0
- package/dist/api/compiler/tsconfig.js +1311 -0
- package/dist/api/compiler/type-printer.d.ts +15 -0
- package/dist/api/compiler/type-printer.js +74 -0
- package/dist/api/compiler/types.d.ts +87 -0
- package/dist/api/compiler/types.js +23 -0
- package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
- package/dist/api/compiler/unicode-identifiers.js +209 -0
- package/dist/api/compiler/unicode-properties.d.ts +8 -0
- package/dist/api/compiler/unicode-properties.js +531 -0
- package/dist/api/compiler/vfs-match.d.ts +24 -0
- package/dist/api/compiler/vfs-match.js +587 -0
- package/dist/api/library/ast.d.ts +3 -2
- package/dist/api/library/ast.generated.d.ts +127 -139
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/diagnostics.d.ts +13 -0
- package/dist/api/library/diagnostics.js +50 -0
- package/dist/api/library/disk.d.ts +13 -0
- package/dist/api/library/disk.js +66 -0
- package/dist/api/library/errors.d.ts +13 -0
- package/dist/api/library/errors.js +24 -0
- package/dist/api/library/host.d.ts +24 -0
- package/dist/api/library/host.js +52 -0
- package/dist/api/library/index.d.ts +5 -1
- package/dist/api/library/index.js +4 -0
- package/dist/api/library/nodes.d.ts +51 -0
- package/dist/api/library/nodes.js +196 -0
- package/dist/api/library/options.d.ts +144 -0
- package/dist/api/library/options.js +308 -0
- package/dist/api/library/parse.d.ts +19 -0
- package/dist/api/library/parse.js +41 -0
- package/dist/api/library/program.d.ts +21 -0
- package/dist/api/library/program.js +234 -0
- package/dist/api/library/types.d.ts +14 -1
- package/package.json +12 -8
- package/src/compiler/ast-utilities.ts +548 -0
- package/src/compiler/ast.ts +12862 -0
- package/src/compiler/astnav.ts +799 -0
- package/src/compiler/binder-utilities.ts +1392 -0
- package/src/compiler/binder.ts +2703 -0
- package/src/compiler/build-info.ts +1197 -0
- package/src/compiler/character-codes.ts +323 -0
- package/src/compiler/checker-calls.ts +2155 -0
- package/src/compiler/checker-classes.ts +706 -0
- package/src/compiler/checker-contextual.ts +1457 -0
- package/src/compiler/checker-declaration-order.ts +438 -0
- package/src/compiler/checker-declarations.ts +1194 -0
- package/src/compiler/checker-declared-types.ts +919 -0
- package/src/compiler/checker-decorators.ts +694 -0
- package/src/compiler/checker-deprecation.ts +359 -0
- package/src/compiler/checker-destructuring.ts +805 -0
- package/src/compiler/checker-elaboration.ts +477 -0
- package/src/compiler/checker-emit-helpers.ts +224 -0
- package/src/compiler/checker-emit-resolver.ts +769 -0
- package/src/compiler/checker-evaluator.ts +243 -0
- package/src/compiler/checker-expressions.ts +1831 -0
- package/src/compiler/checker-features.ts +361 -0
- package/src/compiler/checker-flow.ts +394 -0
- package/src/compiler/checker-functions.ts +1296 -0
- package/src/compiler/checker-generated-code.ts +227 -0
- package/src/compiler/checker-globals.ts +52 -0
- package/src/compiler/checker-grammar.ts +3584 -0
- package/src/compiler/checker-heritage.ts +1233 -0
- package/src/compiler/checker-inference.ts +2576 -0
- package/src/compiler/checker-iteration.ts +1206 -0
- package/src/compiler/checker-javascript.ts +502 -0
- package/src/compiler/checker-jsdoc.ts +360 -0
- package/src/compiler/checker-jsx.ts +1924 -0
- package/src/compiler/checker-literals.ts +61 -0
- package/src/compiler/checker-members.ts +2436 -0
- package/src/compiler/checker-modules.ts +2886 -0
- package/src/compiler/checker-narrowing.ts +3230 -0
- package/src/compiler/checker-object-literals.ts +575 -0
- package/src/compiler/checker-operators.ts +1422 -0
- package/src/compiler/checker-overloads.ts +328 -0
- package/src/compiler/checker-property-access.ts +906 -0
- package/src/compiler/checker-services.ts +1149 -0
- package/src/compiler/checker-signatures.ts +1032 -0
- package/src/compiler/checker-source-file.ts +732 -0
- package/src/compiler/checker-statements.ts +292 -0
- package/src/compiler/checker-super.ts +261 -0
- package/src/compiler/checker-symbol-types.ts +2107 -0
- package/src/compiler/checker-symbols.ts +2150 -0
- package/src/compiler/checker-type-factory.ts +2579 -0
- package/src/compiler/checker-type-nodes.ts +1033 -0
- package/src/compiler/checker-type-operators.ts +2502 -0
- package/src/compiler/checker-types.ts +2340 -0
- package/src/compiler/checker-unused.ts +642 -0
- package/src/compiler/checker-utilities.ts +161 -0
- package/src/compiler/checker.ts +1116 -0
- package/src/compiler/command-line.ts +436 -0
- package/src/compiler/compile-program.ts +439 -0
- package/src/compiler/decoder.ts +1209 -0
- package/src/compiler/diagnostic-locales.ts +86 -0
- package/src/compiler/diagnostic-messages.ts +2349 -0
- package/src/compiler/diagnostics.ts +897 -0
- package/src/compiler/emitter.ts +434 -0
- package/src/compiler/encoder.ts +1945 -0
- package/src/compiler/file-include.ts +673 -0
- package/src/compiler/file-loader.ts +1528 -0
- package/src/compiler/file-system.ts +143 -0
- package/src/compiler/flow.ts +89 -0
- package/src/compiler/help.ts +473 -0
- package/src/compiler/incremental.ts +2784 -0
- package/src/compiler/init.ts +141 -0
- package/src/compiler/instantiation.ts +894 -0
- package/src/compiler/jsdoc.ts +1386 -0
- package/src/compiler/link-tables.ts +98 -0
- package/src/compiler/locale-data.ts +203 -0
- package/src/compiler/locale.ts +307 -0
- package/src/compiler/locales/cs-CZ.ts +5 -0
- package/src/compiler/locales/de-DE.ts +5 -0
- package/src/compiler/locales/es-ES.ts +5 -0
- package/src/compiler/locales/fr-FR.ts +5 -0
- package/src/compiler/locales/it-IT.ts +5 -0
- package/src/compiler/locales/ja-JP.ts +5 -0
- package/src/compiler/locales/ko-KR.ts +5 -0
- package/src/compiler/locales/pl-PL.ts +5 -0
- package/src/compiler/locales/pt-BR.ts +5 -0
- package/src/compiler/locales/ru-RU.ts +5 -0
- package/src/compiler/locales/tr-TR.ts +5 -0
- package/src/compiler/locales/zh-CN.ts +5 -0
- package/src/compiler/locales/zh-TW.ts +5 -0
- package/src/compiler/module-resolution-types.ts +243 -0
- package/src/compiler/module-resolution.ts +2072 -0
- package/src/compiler/module-specifiers.ts +1491 -0
- package/src/compiler/name-resolver.ts +646 -0
- package/src/compiler/node-builder-names.ts +1069 -0
- package/src/compiler/node-builder-pseudo.ts +892 -0
- package/src/compiler/node-builder-reuse.ts +764 -0
- package/src/compiler/node-builder.ts +3425 -0
- package/src/compiler/option-declarations.ts +1560 -0
- package/src/compiler/options.ts +1576 -0
- package/src/compiler/output-paths.ts +334 -0
- package/src/compiler/package-json.ts +1083 -0
- package/src/compiler/parallel-check.ts +1951 -0
- package/src/compiler/parallel-parse.ts +590 -0
- package/src/compiler/parse-thread.ts +140 -0
- package/src/compiler/parser.ts +7716 -0
- package/src/compiler/path.ts +717 -0
- package/src/compiler/printer/async-helpers.ts +183 -0
- package/src/compiler/printer/auto-generate.ts +27 -0
- package/src/compiler/printer/decorator-helpers.ts +218 -0
- package/src/compiler/printer/emit-context.ts +679 -0
- package/src/compiler/printer/emit-flags.ts +64 -0
- package/src/compiler/printer/factory-base.ts +2577 -0
- package/src/compiler/printer/factory.ts +764 -0
- package/src/compiler/printer/helpers.ts +291 -0
- package/src/compiler/printer/name-generator.ts +372 -0
- package/src/compiler/printer/printer.ts +5072 -0
- package/src/compiler/printer/text-writer.ts +183 -0
- package/src/compiler/printer/utilities.ts +884 -0
- package/src/compiler/program-checker.ts +592 -0
- package/src/compiler/program-utilities.ts +435 -0
- package/src/compiler/program.ts +1419 -0
- package/src/compiler/pseudo-bigint.ts +62 -0
- package/src/compiler/regexp-checker.ts +1142 -0
- package/src/compiler/relations.ts +5149 -0
- package/src/compiler/reparser.ts +1566 -0
- package/src/compiler/scanner.ts +2951 -0
- package/src/compiler/show-config.ts +239 -0
- package/src/compiler/side-state.ts +125 -0
- package/src/compiler/sourcemap.ts +366 -0
- package/src/compiler/spelling.ts +122 -0
- package/src/compiler/symbol-accessibility.ts +1071 -0
- package/src/compiler/symbol.ts +439 -0
- package/src/compiler/symlinks.ts +137 -0
- package/src/compiler/syntax-kind.ts +391 -0
- package/src/compiler/thread-entry.ts +191 -0
- package/src/compiler/timeline.ts +53 -0
- package/src/compiler/transformers/alias-references.ts +757 -0
- package/src/compiler/transformers/async-utilities.ts +335 -0
- package/src/compiler/transformers/async.ts +838 -0
- package/src/compiler/transformers/class-fields.ts +2967 -0
- package/src/compiler/transformers/class-utilities.ts +324 -0
- package/src/compiler/transformers/commonjs-module.ts +1621 -0
- package/src/compiler/transformers/const-enum-inliner.ts +50 -0
- package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
- package/src/compiler/transformers/declarations-pseudo.ts +966 -0
- package/src/compiler/transformers/declarations-resolver.ts +249 -0
- package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
- package/src/compiler/transformers/declarations-tracker.ts +269 -0
- package/src/compiler/transformers/declarations.ts +3120 -0
- package/src/compiler/transformers/decorator-metadata.ts +697 -0
- package/src/compiler/transformers/decorator-utilities.ts +283 -0
- package/src/compiler/transformers/destructuring.ts +708 -0
- package/src/compiler/transformers/downlevel.ts +50 -0
- package/src/compiler/transformers/emit-resolver.ts +258 -0
- package/src/compiler/transformers/es-decorators.ts +2682 -0
- package/src/compiler/transformers/exponentiation.ts +80 -0
- package/src/compiler/transformers/external-module-info.ts +412 -0
- package/src/compiler/transformers/for-await.ts +687 -0
- package/src/compiler/transformers/import-elision.ts +152 -0
- package/src/compiler/transformers/jsx-entities.ts +256 -0
- package/src/compiler/transformers/jsx.ts +824 -0
- package/src/compiler/transformers/legacy-decorators.ts +726 -0
- package/src/compiler/transformers/logical-assignment.ts +75 -0
- package/src/compiler/transformers/module-utilities.ts +42 -0
- package/src/compiler/transformers/module.ts +474 -0
- package/src/compiler/transformers/named-evaluation.ts +389 -0
- package/src/compiler/transformers/nullish-coalescing.ts +35 -0
- package/src/compiler/transformers/object-rest-spread.ts +577 -0
- package/src/compiler/transformers/optional-catch.ts +29 -0
- package/src/compiler/transformers/optional-chain.ts +246 -0
- package/src/compiler/transformers/reference-resolver.ts +1201 -0
- package/src/compiler/transformers/runtime-syntax.ts +942 -0
- package/src/compiler/transformers/subtree-facts.ts +245 -0
- package/src/compiler/transformers/syntax-facts.ts +353 -0
- package/src/compiler/transformers/tagged-template.ts +167 -0
- package/src/compiler/transformers/transformer.ts +56 -0
- package/src/compiler/transformers/type-eraser.ts +520 -0
- package/src/compiler/transformers/type-serialization.ts +374 -0
- package/src/compiler/transformers/using.ts +613 -0
- package/src/compiler/transformers/utilities.ts +419 -0
- package/src/compiler/transformers/visitor-base.ts +1601 -0
- package/src/compiler/transformers/visitor-hooks.ts +252 -0
- package/src/compiler/tsc-build.ts +1418 -0
- package/src/compiler/tsc-cli.ts +666 -0
- package/src/compiler/tsc-compile.ts +437 -0
- package/src/compiler/tsc-watch.ts +854 -0
- package/src/compiler/tsconfig.ts +1574 -0
- package/src/compiler/type-printer.ts +110 -0
- package/src/compiler/types.ts +115 -0
- package/src/compiler/unicode-identifiers.ts +212 -0
- package/src/compiler/unicode-properties.ts +537 -0
- package/src/compiler/vfs-match.ts +597 -0
- package/src/compiler/xxh3.ts +650 -0
- package/src/library/ast.generated.ts +141 -167
- package/src/library/ast.ts +4 -1
- package/src/library/checker.ts +384 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +21 -0
- package/src/library/nodes.ts +232 -0
- package/src/library/options.ts +449 -0
- package/src/library/parse.ts +63 -0
- package/src/library/program.ts +293 -0
- package/src/library/types.ts +14 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Option and syntax queries of program construction: libraries, module formats and resolution modes.
|
|
3
|
+
*/
|
|
4
|
+
import { ExternalModuleIndicatorOptions, ImportAttributes, type Node, type SourceFile } from './ast.js';
|
|
5
|
+
import { JsxEmit, ModuleKind, ScriptTarget, type CompilerOptions } from './options.js';
|
|
6
|
+
/** `--lib` names in declaration order. */
|
|
7
|
+
export declare const libNames: readonly string[];
|
|
8
|
+
/** The bundled file of a `lib` name or file name, or `''`. */
|
|
9
|
+
export declare function getLibFileName(name: string): string;
|
|
10
|
+
/** The library included by default for the target. */
|
|
11
|
+
export declare function getDefaultLibFileName(options: CompilerOptions): string;
|
|
12
|
+
export declare function scriptTargetName(target: ScriptTarget): string;
|
|
13
|
+
export declare function moduleKindName(kind: ModuleKind): string;
|
|
14
|
+
export declare function jsxEmitName(jsx: JsxEmit): string;
|
|
15
|
+
/** What a file's nearest `package.json` says about its module format. */
|
|
16
|
+
export declare class SourceFileMetadata {
|
|
17
|
+
/** `type` of the nearest `package.json`, where it applies; `''` otherwise. */
|
|
18
|
+
readonly packageJsonType: string;
|
|
19
|
+
/** Directory of the nearest `package.json`, or `''`. */
|
|
20
|
+
readonly packageJsonDirectory: string;
|
|
21
|
+
/** `ESNext`, `CommonJS` or `None` (formats other than JavaScript and TypeScript). */
|
|
22
|
+
readonly impliedNodeFormat: ModuleKind;
|
|
23
|
+
constructor(
|
|
24
|
+
/** `type` of the nearest `package.json`, where it applies; `''` otherwise. */
|
|
25
|
+
packageJsonType: string,
|
|
26
|
+
/** Directory of the nearest `package.json`, or `''`. */
|
|
27
|
+
packageJsonDirectory: string,
|
|
28
|
+
/** `ESNext`, `CommonJS` or `None` (formats other than JavaScript and TypeScript). */
|
|
29
|
+
impliedNodeFormat: ModuleKind);
|
|
30
|
+
}
|
|
31
|
+
export declare const libFileMetadata: SourceFileMetadata;
|
|
32
|
+
export declare function getImpliedNodeFormatForFile(path: string, packageJsonType: string): ModuleKind;
|
|
33
|
+
/** The format a file is emitted in when it differs from `module`, else `None`. */
|
|
34
|
+
export declare function getImpliedNodeFormatForEmit(fileName: string, emitModuleKind: ModuleKind, metadata: SourceFileMetadata): ModuleKind;
|
|
35
|
+
export declare function getEmitModuleFormatOfFile(fileName: string, options: CompilerOptions, metadata: SourceFileMetadata): ModuleKind;
|
|
36
|
+
/** What makes a file a module, besides imports and exports. */
|
|
37
|
+
export declare function getExternalModuleIndicatorOptions(fileName: string, options: CompilerOptions, metadata: SourceFileMetadata): ExternalModuleIndicatorOptions;
|
|
38
|
+
export declare function isExternalModule(file: SourceFile): boolean;
|
|
39
|
+
export declare function isExternalOrCommonJSModule(file: SourceFile): boolean;
|
|
40
|
+
export declare function isSourceFileJS(file: SourceFile): boolean;
|
|
41
|
+
export declare function isCheckJsEnabledForFile(file: SourceFile, options: CompilerOptions): boolean;
|
|
42
|
+
/** The package providing the JSX runtime, or `''` when JSX compiles to factory calls. */
|
|
43
|
+
export declare function getJSXImplicitImportBase(options: CompilerOptions, file: SourceFile): string;
|
|
44
|
+
export declare function getJSXRuntimeImport(base: string, options: CompilerOptions): string;
|
|
45
|
+
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
46
|
+
export declare function getResolutionModeOverride(attributes: ImportAttributes | undefined): ModuleKind;
|
|
47
|
+
/** Whether `import` syntax decides how a specifier resolves: Node16-style resolution or `exports`/`imports`. */
|
|
48
|
+
export declare function importSyntaxAffectsModuleResolution(options: CompilerOptions): boolean;
|
|
49
|
+
/** The mode a module specifier resolves in: from attributes, the import syntax, or the file's format. */
|
|
50
|
+
export declare function getModeForUsageLocation(fileName: string, metadata: SourceFileMetadata, usage: Node, options: CompilerOptions): ModuleKind;
|
|
51
|
+
export declare function getEmitSyntaxForUsageLocation(fileName: string, metadata: SourceFileMetadata, usage: Node, options: CompilerOptions): ModuleKind;
|
|
52
|
+
export declare function getDefaultResolutionModeForFile(fileName: string, metadata: SourceFileMetadata, options: CompilerOptions): ModuleKind;
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Option and syntax queries of program construction: libraries, module formats and resolution modes.
|
|
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';
|
|
6
|
+
import { libMap } from './option-declarations.js';
|
|
7
|
+
import { getEmitModuleDetectionKind, getEmitModuleKind, getEmitScriptTarget, getModuleResolutionKind, getResolvePackageJsonExports, getResolvePackageJsonImports, JsxEmit, ModuleDetectionKind, ModuleKind, ModuleResolutionKind, ScriptTarget, } from './options.js';
|
|
8
|
+
import { fileExtensionIsOneOf, isDeclarationFileName, toFileNameLowerCase } from './path.js';
|
|
9
|
+
// ---- Libraries
|
|
10
|
+
/** `--lib` names in declaration order. */
|
|
11
|
+
export const libNames = [...libMap.keys()];
|
|
12
|
+
const libFileNames = new Set();
|
|
13
|
+
for (const value of libMap.values())
|
|
14
|
+
if (typeof value === 'string')
|
|
15
|
+
libFileNames.add(value);
|
|
16
|
+
/** The bundled file of a `lib` name or file name, or `''`. */
|
|
17
|
+
export function getLibFileName(name) {
|
|
18
|
+
const lower = toFileNameLowerCase(name);
|
|
19
|
+
if (libFileNames.has(lower))
|
|
20
|
+
return lower;
|
|
21
|
+
const fileName = libMap.get(lower);
|
|
22
|
+
return typeof fileName === 'string' ? fileName : '';
|
|
23
|
+
}
|
|
24
|
+
/** The library included by default for the target. */
|
|
25
|
+
export function getDefaultLibFileName(options) {
|
|
26
|
+
switch (getEmitScriptTarget(options)) {
|
|
27
|
+
case ScriptTarget.ESNext:
|
|
28
|
+
return 'lib.esnext.full.d.ts';
|
|
29
|
+
case ScriptTarget.ES2025:
|
|
30
|
+
return 'lib.es2025.full.d.ts';
|
|
31
|
+
case ScriptTarget.ES2024:
|
|
32
|
+
return 'lib.es2024.full.d.ts';
|
|
33
|
+
case ScriptTarget.ES2023:
|
|
34
|
+
return 'lib.es2023.full.d.ts';
|
|
35
|
+
case ScriptTarget.ES2022:
|
|
36
|
+
return 'lib.es2022.full.d.ts';
|
|
37
|
+
case ScriptTarget.ES2021:
|
|
38
|
+
return 'lib.es2021.full.d.ts';
|
|
39
|
+
case ScriptTarget.ES2020:
|
|
40
|
+
return 'lib.es2020.full.d.ts';
|
|
41
|
+
case ScriptTarget.ES2019:
|
|
42
|
+
return 'lib.es2019.full.d.ts';
|
|
43
|
+
case ScriptTarget.ES2018:
|
|
44
|
+
return 'lib.es2018.full.d.ts';
|
|
45
|
+
case ScriptTarget.ES2017:
|
|
46
|
+
return 'lib.es2017.full.d.ts';
|
|
47
|
+
case ScriptTarget.ES2016:
|
|
48
|
+
return 'lib.es2016.full.d.ts';
|
|
49
|
+
case ScriptTarget.ES2015:
|
|
50
|
+
// Not `lib.es2015.full.d.ts`, which would be a breaking change.
|
|
51
|
+
return 'lib.es6.d.ts';
|
|
52
|
+
default:
|
|
53
|
+
return 'lib.d.ts';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// ---- Enum names, as tsgo prints them
|
|
57
|
+
export function scriptTargetName(target) {
|
|
58
|
+
switch (target) {
|
|
59
|
+
case ScriptTarget.ES5:
|
|
60
|
+
return 'ES5';
|
|
61
|
+
case ScriptTarget.ES2015:
|
|
62
|
+
return 'ES2015';
|
|
63
|
+
case ScriptTarget.ES2016:
|
|
64
|
+
return 'ES2016';
|
|
65
|
+
case ScriptTarget.ES2017:
|
|
66
|
+
return 'ES2017';
|
|
67
|
+
case ScriptTarget.ES2018:
|
|
68
|
+
return 'ES2018';
|
|
69
|
+
case ScriptTarget.ES2019:
|
|
70
|
+
return 'ES2019';
|
|
71
|
+
case ScriptTarget.ES2020:
|
|
72
|
+
return 'ES2020';
|
|
73
|
+
case ScriptTarget.ES2021:
|
|
74
|
+
return 'ES2021';
|
|
75
|
+
case ScriptTarget.ES2022:
|
|
76
|
+
return 'ES2022';
|
|
77
|
+
case ScriptTarget.ES2023:
|
|
78
|
+
return 'ES2023';
|
|
79
|
+
case ScriptTarget.ES2024:
|
|
80
|
+
return 'ES2024';
|
|
81
|
+
case ScriptTarget.ES2025:
|
|
82
|
+
return 'ES2025';
|
|
83
|
+
case ScriptTarget.ESNext:
|
|
84
|
+
return 'ESNext';
|
|
85
|
+
case ScriptTarget.JSON:
|
|
86
|
+
return 'JSON';
|
|
87
|
+
}
|
|
88
|
+
return '';
|
|
89
|
+
}
|
|
90
|
+
export function moduleKindName(kind) {
|
|
91
|
+
switch (kind) {
|
|
92
|
+
case ModuleKind.None:
|
|
93
|
+
return 'None';
|
|
94
|
+
case ModuleKind.CommonJS:
|
|
95
|
+
return 'CommonJS';
|
|
96
|
+
case ModuleKind.AMD:
|
|
97
|
+
return 'AMD';
|
|
98
|
+
case ModuleKind.UMD:
|
|
99
|
+
return 'UMD';
|
|
100
|
+
case ModuleKind.System:
|
|
101
|
+
return 'System';
|
|
102
|
+
case ModuleKind.ES2015:
|
|
103
|
+
return 'ES2015';
|
|
104
|
+
case ModuleKind.ES2020:
|
|
105
|
+
return 'ES2020';
|
|
106
|
+
case ModuleKind.ES2022:
|
|
107
|
+
return 'ES2022';
|
|
108
|
+
case ModuleKind.ESNext:
|
|
109
|
+
return 'ESNext';
|
|
110
|
+
case ModuleKind.Node16:
|
|
111
|
+
return 'Node16';
|
|
112
|
+
case ModuleKind.Node18:
|
|
113
|
+
return 'Node18';
|
|
114
|
+
case ModuleKind.Node20:
|
|
115
|
+
return 'Node20';
|
|
116
|
+
case ModuleKind.NodeNext:
|
|
117
|
+
return 'NodeNext';
|
|
118
|
+
case ModuleKind.Preserve:
|
|
119
|
+
return 'Preserve';
|
|
120
|
+
}
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
export function jsxEmitName(jsx) {
|
|
124
|
+
switch (jsx) {
|
|
125
|
+
case JsxEmit.Preserve:
|
|
126
|
+
return 'preserve';
|
|
127
|
+
case JsxEmit.ReactNative:
|
|
128
|
+
return 'react-native';
|
|
129
|
+
case JsxEmit.React:
|
|
130
|
+
return 'react';
|
|
131
|
+
case JsxEmit.ReactJSX:
|
|
132
|
+
return 'react-jsx';
|
|
133
|
+
case JsxEmit.ReactJSXDev:
|
|
134
|
+
return 'react-jsxdev';
|
|
135
|
+
}
|
|
136
|
+
return '';
|
|
137
|
+
}
|
|
138
|
+
// ---- Module formats
|
|
139
|
+
/** What a file's nearest `package.json` says about its module format. */
|
|
140
|
+
export class SourceFileMetadata {
|
|
141
|
+
packageJsonType;
|
|
142
|
+
packageJsonDirectory;
|
|
143
|
+
impliedNodeFormat;
|
|
144
|
+
constructor(
|
|
145
|
+
/** `type` of the nearest `package.json`, where it applies; `''` otherwise. */
|
|
146
|
+
packageJsonType,
|
|
147
|
+
/** Directory of the nearest `package.json`, or `''`. */
|
|
148
|
+
packageJsonDirectory,
|
|
149
|
+
/** `ESNext`, `CommonJS` or `None` (formats other than JavaScript and TypeScript). */
|
|
150
|
+
impliedNodeFormat) {
|
|
151
|
+
this.packageJsonType = packageJsonType;
|
|
152
|
+
this.packageJsonDirectory = packageJsonDirectory;
|
|
153
|
+
this.impliedNodeFormat = impliedNodeFormat;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export const libFileMetadata = new SourceFileMetadata('', '', ModuleKind.CommonJS);
|
|
157
|
+
export function getImpliedNodeFormatForFile(path, packageJsonType) {
|
|
158
|
+
if (fileExtensionIsOneOf(path, ['.d.mts', '.mts', '.mjs']))
|
|
159
|
+
return ModuleKind.ESNext;
|
|
160
|
+
if (fileExtensionIsOneOf(path, ['.d.cts', '.cts', '.cjs']))
|
|
161
|
+
return ModuleKind.CommonJS;
|
|
162
|
+
if (fileExtensionIsOneOf(path, ['.d.ts', '.ts', '.tsx', '.js', '.jsx'])) {
|
|
163
|
+
return packageJsonType === 'module' ? ModuleKind.ESNext : ModuleKind.CommonJS;
|
|
164
|
+
}
|
|
165
|
+
return ModuleKind.None;
|
|
166
|
+
}
|
|
167
|
+
/** The format a file is emitted in when it differs from `module`, else `None`. */
|
|
168
|
+
export function getImpliedNodeFormatForEmit(fileName, emitModuleKind, metadata) {
|
|
169
|
+
if (ModuleKind.Node16 <= emitModuleKind && emitModuleKind <= ModuleKind.NodeNext)
|
|
170
|
+
return metadata.impliedNodeFormat;
|
|
171
|
+
if (metadata.impliedNodeFormat === ModuleKind.CommonJS &&
|
|
172
|
+
(metadata.packageJsonType === 'commonjs' || fileExtensionIsOneOf(fileName, ['.cjs', '.cts']))) {
|
|
173
|
+
return ModuleKind.CommonJS;
|
|
174
|
+
}
|
|
175
|
+
if (metadata.impliedNodeFormat === ModuleKind.ESNext &&
|
|
176
|
+
(metadata.packageJsonType === 'module' || fileExtensionIsOneOf(fileName, ['.mjs', '.mts']))) {
|
|
177
|
+
return ModuleKind.ESNext;
|
|
178
|
+
}
|
|
179
|
+
return ModuleKind.None;
|
|
180
|
+
}
|
|
181
|
+
export function getEmitModuleFormatOfFile(fileName, options, metadata) {
|
|
182
|
+
const result = getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata);
|
|
183
|
+
return result !== ModuleKind.None ? result : getEmitModuleKind(options);
|
|
184
|
+
}
|
|
185
|
+
/** What makes a file a module, besides imports and exports. */
|
|
186
|
+
export function getExternalModuleIndicatorOptions(fileName, options, metadata) {
|
|
187
|
+
if (isDeclarationFileName(fileName))
|
|
188
|
+
return new ExternalModuleIndicatorOptions(false, false);
|
|
189
|
+
switch (getEmitModuleDetectionKind(options)) {
|
|
190
|
+
case ModuleDetectionKind.Force:
|
|
191
|
+
return new ExternalModuleIndicatorOptions(false, true);
|
|
192
|
+
case ModuleDetectionKind.Auto: {
|
|
193
|
+
const jsx = options.jsx === JsxEmit.ReactJSX || options.jsx === JsxEmit.ReactJSXDev;
|
|
194
|
+
const forced = getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata) === ModuleKind.ESNext ||
|
|
195
|
+
fileExtensionIsOneOf(fileName, ['.cjs', '.cts', '.mjs', '.mts']);
|
|
196
|
+
return new ExternalModuleIndicatorOptions(jsx, forced);
|
|
197
|
+
}
|
|
198
|
+
default:
|
|
199
|
+
return new ExternalModuleIndicatorOptions(false, false);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
export function isExternalModule(file) {
|
|
203
|
+
return file.externalModuleIndicator !== undefined;
|
|
204
|
+
}
|
|
205
|
+
export function isExternalOrCommonJSModule(file) {
|
|
206
|
+
return file.externalModuleIndicator !== undefined || file.commonJSModuleIndicator !== undefined;
|
|
207
|
+
}
|
|
208
|
+
export function isSourceFileJS(file) {
|
|
209
|
+
return file.scriptKind === 1 /* ScriptKind.JS */ || file.scriptKind === 2 /* ScriptKind.JSX */;
|
|
210
|
+
}
|
|
211
|
+
export function isCheckJsEnabledForFile(file, options) {
|
|
212
|
+
if (file.checkJsDirective !== undefined)
|
|
213
|
+
return file.checkJsDirective.enabled;
|
|
214
|
+
return options.checkJs === true;
|
|
215
|
+
}
|
|
216
|
+
// ---- JSX runtime
|
|
217
|
+
function pragmaArgument(file, name, argument) {
|
|
218
|
+
let result;
|
|
219
|
+
// The last pragma wins.
|
|
220
|
+
for (const pragma of file.pragmas) {
|
|
221
|
+
if (pragma.name === name)
|
|
222
|
+
result = pragma.args.get(argument)?.value ?? '';
|
|
223
|
+
}
|
|
224
|
+
return result;
|
|
225
|
+
}
|
|
226
|
+
/** The package providing the JSX runtime, or `''` when JSX compiles to factory calls. */
|
|
227
|
+
export function getJSXImplicitImportBase(options, file) {
|
|
228
|
+
const importSource = pragmaArgument(file, 'jsximportsource', 'factory');
|
|
229
|
+
const runtime = pragmaArgument(file, 'jsxruntime', 'factory');
|
|
230
|
+
if (runtime === 'classic')
|
|
231
|
+
return '';
|
|
232
|
+
if (options.jsx === JsxEmit.ReactJSX ||
|
|
233
|
+
options.jsx === JsxEmit.ReactJSXDev ||
|
|
234
|
+
options.jsxImportSource !== undefined ||
|
|
235
|
+
importSource !== undefined ||
|
|
236
|
+
runtime === 'automatic') {
|
|
237
|
+
if (importSource !== undefined && importSource !== '')
|
|
238
|
+
return importSource;
|
|
239
|
+
return options.jsxImportSource ?? 'react';
|
|
240
|
+
}
|
|
241
|
+
return '';
|
|
242
|
+
}
|
|
243
|
+
export function getJSXRuntimeImport(base, options) {
|
|
244
|
+
if (base === '')
|
|
245
|
+
return '';
|
|
246
|
+
return base + '/' + (options.jsx === JsxEmit.ReactJSXDev ? 'jsx-dev-runtime' : 'jsx-runtime');
|
|
247
|
+
}
|
|
248
|
+
// ---- Resolution modes
|
|
249
|
+
function isStringLiteralLike(node) {
|
|
250
|
+
return node instanceof StringLiteral || node instanceof NoSubstitutionTemplateLiteral;
|
|
251
|
+
}
|
|
252
|
+
function literalText(node) {
|
|
253
|
+
if (node instanceof StringLiteral)
|
|
254
|
+
return node.text;
|
|
255
|
+
if (node instanceof NoSubstitutionTemplateLiteral)
|
|
256
|
+
return node.text;
|
|
257
|
+
return '';
|
|
258
|
+
}
|
|
259
|
+
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
260
|
+
export function getResolutionModeOverride(attributes) {
|
|
261
|
+
if (attributes === undefined)
|
|
262
|
+
return ModuleKind.None;
|
|
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))
|
|
273
|
+
return ModuleKind.None;
|
|
274
|
+
const text = literalText(attribute.value);
|
|
275
|
+
if (text === 'import')
|
|
276
|
+
return ModuleKind.ESNext;
|
|
277
|
+
if (text === 'require')
|
|
278
|
+
return ModuleKind.CommonJS;
|
|
279
|
+
return ModuleKind.None;
|
|
280
|
+
}
|
|
281
|
+
/** The attributes of an import or export declaration or a JSDoc `@import`, if any. */
|
|
282
|
+
function importOrExportAttributes(node) {
|
|
283
|
+
if (node instanceof ImportDeclaration)
|
|
284
|
+
return node.attributes;
|
|
285
|
+
if (node instanceof ExportDeclaration)
|
|
286
|
+
return node.attributes;
|
|
287
|
+
if (node instanceof JSDocImportTag)
|
|
288
|
+
return node.attributes;
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
function isClauseTypeOnly(clause) {
|
|
292
|
+
return clause !== undefined && clause.phaseModifier === 156 /* SyntaxKind.TypeKeyword */;
|
|
293
|
+
}
|
|
294
|
+
function isExclusivelyTypeOnlyImportOrExport(node) {
|
|
295
|
+
if (node instanceof ExportDeclaration)
|
|
296
|
+
return node.isTypeOnly;
|
|
297
|
+
if (node instanceof ImportDeclaration)
|
|
298
|
+
return isClauseTypeOnly(node.importClause);
|
|
299
|
+
if (node instanceof JSDocImportTag)
|
|
300
|
+
return isClauseTypeOnly(node.importClause);
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
/** Whether `import` syntax decides how a specifier resolves: Node16-style resolution or `exports`/`imports`. */
|
|
304
|
+
export function importSyntaxAffectsModuleResolution(options) {
|
|
305
|
+
const kind = getModuleResolutionKind(options);
|
|
306
|
+
return ((ModuleResolutionKind.Node16 <= kind && kind <= ModuleResolutionKind.NodeNext) ||
|
|
307
|
+
getResolvePackageJsonExports(options) ||
|
|
308
|
+
getResolvePackageJsonImports(options));
|
|
309
|
+
}
|
|
310
|
+
/** The mode a module specifier resolves in: from attributes, the import syntax, or the file's format. */
|
|
311
|
+
export function getModeForUsageLocation(fileName, metadata, usage, options) {
|
|
312
|
+
const parent = usage.parent;
|
|
313
|
+
const attributes = importOrExportAttributes(parent);
|
|
314
|
+
if (attributes !== undefined && parent !== undefined && isExclusivelyTypeOnlyImportOrExport(parent)) {
|
|
315
|
+
const override = getResolutionModeOverride(attributes);
|
|
316
|
+
if (override !== ModuleKind.None)
|
|
317
|
+
return override;
|
|
318
|
+
}
|
|
319
|
+
if (parent instanceof LiteralTypeNode && parent.parent instanceof ImportTypeNode) {
|
|
320
|
+
const override = getResolutionModeOverride(parent.parent.attributes);
|
|
321
|
+
if (override !== ModuleKind.None)
|
|
322
|
+
return override;
|
|
323
|
+
}
|
|
324
|
+
if (importSyntaxAffectsModuleResolution(options))
|
|
325
|
+
return getEmitSyntaxForUsageLocation(fileName, metadata, usage, options);
|
|
326
|
+
return ModuleKind.None;
|
|
327
|
+
}
|
|
328
|
+
function walkUpParenthesizedExpressions(node) {
|
|
329
|
+
while (node instanceof ParenthesizedExpression)
|
|
330
|
+
node = node.parent;
|
|
331
|
+
return node;
|
|
332
|
+
}
|
|
333
|
+
export function getEmitSyntaxForUsageLocation(fileName, metadata, usage, options) {
|
|
334
|
+
const parent = usage.parent;
|
|
335
|
+
if (parent === undefined)
|
|
336
|
+
return ModuleKind.None;
|
|
337
|
+
if (isRequireCall(parent, false) ||
|
|
338
|
+
(parent.kind === 284 /* SyntaxKind.ExternalModuleReference */ && parent.parent instanceof ImportEqualsDeclaration)) {
|
|
339
|
+
return ModuleKind.CommonJS;
|
|
340
|
+
}
|
|
341
|
+
const fileEmitMode = getEmitModuleFormatOfFile(fileName, options, metadata);
|
|
342
|
+
const call = walkUpParenthesizedExpressions(parent);
|
|
343
|
+
if (call !== undefined && isImportCall(call)) {
|
|
344
|
+
return shouldTransformImportCall(options, fileEmitMode) ? ModuleKind.CommonJS : ModuleKind.ESNext;
|
|
345
|
+
}
|
|
346
|
+
if (fileEmitMode === ModuleKind.CommonJS)
|
|
347
|
+
return ModuleKind.CommonJS;
|
|
348
|
+
if ((ModuleKind.ES2015 <= fileEmitMode && fileEmitMode <= ModuleKind.ESNext) ||
|
|
349
|
+
fileEmitMode === ModuleKind.Preserve) {
|
|
350
|
+
return ModuleKind.ESNext;
|
|
351
|
+
}
|
|
352
|
+
return ModuleKind.None;
|
|
353
|
+
}
|
|
354
|
+
function shouldTransformImportCall(options, impliedNodeFormatForEmit) {
|
|
355
|
+
const moduleKind = getEmitModuleKind(options);
|
|
356
|
+
if ((ModuleKind.Node16 <= moduleKind && moduleKind <= ModuleKind.NodeNext) || moduleKind === ModuleKind.Preserve) {
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
return impliedNodeFormatForEmit < ModuleKind.ES2015;
|
|
360
|
+
}
|
|
361
|
+
export function getDefaultResolutionModeForFile(fileName, metadata, options) {
|
|
362
|
+
return importSyntaxAffectsModuleResolution(options)
|
|
363
|
+
? getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata)
|
|
364
|
+
: ModuleKind.None;
|
|
365
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A program: the files of a compilation and the diagnostics found building it, before binding and checking.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* const program = new Program(config, new CompilerHost(fs, cwd, libDirectory));
|
|
6
|
+
* for (const file of program.getSourceFiles()) console.log(file.fileName);
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
import { type Node, type SourceFile } from './ast.js';
|
|
10
|
+
import { Diagnostic, type Locale } from './diagnostics.js';
|
|
11
|
+
import { FileLoader, type CompilerHost, type LibFile, type ProcessedFiles, type RedirectFile } from './file-loader.js';
|
|
12
|
+
import { type PackageJsonInfo, PackageJsonLookup } from './package-json.js';
|
|
13
|
+
import type { MergedGlobals } from './checker-symbols.js';
|
|
14
|
+
import type { EmitIndexes } from './compile-program.js';
|
|
15
|
+
import { type IncludeProcessor } from './file-include.js';
|
|
16
|
+
import type { ResolvedModule } from './module-resolution-types.js';
|
|
17
|
+
import { ModuleKind, ScriptTarget, type CompilerOptions } from './options.js';
|
|
18
|
+
import { type OutputPathsHost } from './output-paths.js';
|
|
19
|
+
import { SourceFileMetadata } from './program-utilities.js';
|
|
20
|
+
import { type ParsedCommandLine, type SourceOutputAndProjectReference } from './tsconfig.js';
|
|
21
|
+
import { KnownSymlinks } from './symlinks.js';
|
|
22
|
+
export declare class Program implements OutputPathsHost {
|
|
23
|
+
readonly commandLine: ParsedCommandLine;
|
|
24
|
+
readonly host: CompilerHost;
|
|
25
|
+
readonly options: CompilerOptions;
|
|
26
|
+
readonly currentDirectory: string;
|
|
27
|
+
readonly useCaseSensitiveFileNames: boolean;
|
|
28
|
+
readonly includeProcessor: IncludeProcessor;
|
|
29
|
+
private readonly processed;
|
|
30
|
+
private readonly programDiagnosticsList;
|
|
31
|
+
private readonly emitBlockingPaths;
|
|
32
|
+
private commonSourceDirectoryValue;
|
|
33
|
+
private packagesMap;
|
|
34
|
+
private symlinks;
|
|
35
|
+
/** Set by `prepareForSharing`: the program is immutable from then on. */
|
|
36
|
+
private shared;
|
|
37
|
+
/** The globals and module augmentations as the main thread's checker merged them, for checker threads. */
|
|
38
|
+
mergedGlobals: MergedGlobals | undefined;
|
|
39
|
+
/** What emit resolvers index for all files, built by the main thread for checker threads. */
|
|
40
|
+
emitIndexes: EmitIndexes | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* `loader`, if given, is a FileLoader of `host` and `commandLine` that has not loaded yet. With `previous`
|
|
43
|
+
* and `processed` (`updateFile`), the program takes `processed` as its files and the option diagnostics of
|
|
44
|
+
* `previous`.
|
|
45
|
+
*/
|
|
46
|
+
constructor(commandLine: ParsedCommandLine, host: CompilerHost, loader?: FileLoader, previous?: Program, processed?: ProcessedFiles);
|
|
47
|
+
/**
|
|
48
|
+
* The program with the file at `path` read again from `host` and everything else taken from this program,
|
|
49
|
+
* as tsgo's UpdateProgram makes it: `undefined` when the file is not in the program, belongs to a package
|
|
50
|
+
* that is installed more than once, or no longer imports, references or needs the same modules
|
|
51
|
+
* (`canReplaceFile`, and the tslib and JSX runtime imports the program kept for the file), so the program
|
|
52
|
+
* must be loaded again.
|
|
53
|
+
*/
|
|
54
|
+
updateFile(path: string, host: CompilerHost): Program | undefined;
|
|
55
|
+
/** Libraries first, then the other files in the order they were found. */
|
|
56
|
+
getSourceFiles(): readonly SourceFile[];
|
|
57
|
+
getSourceFileByPath(path: string): SourceFile | undefined;
|
|
58
|
+
getSourceFile(fileName: string): SourceFile | undefined;
|
|
59
|
+
/** Files that were referenced but could not be read. */
|
|
60
|
+
missingFiles(): readonly string[];
|
|
61
|
+
toPath(fileName: string): string;
|
|
62
|
+
emitScriptTarget(): ScriptTarget;
|
|
63
|
+
/** `fileName` as given, or relative to the current directory. */
|
|
64
|
+
displayFileName(fileName: string, relative: boolean): string;
|
|
65
|
+
isSourceFileFromExternalLibrary(file: SourceFile): boolean;
|
|
66
|
+
isSourceFileDefaultLibrary(path: string): boolean;
|
|
67
|
+
/** The bundled library loaded as `path`, if any. */
|
|
68
|
+
getDefaultLibFile(path: string): LibFile | undefined;
|
|
69
|
+
/** The declaration output loaded instead of a source of a referenced project, or `''`. */
|
|
70
|
+
getParseFileRedirect(fileName: string): string;
|
|
71
|
+
/** Files the type reference directives of a file resolved to. */
|
|
72
|
+
getResolvedTypeReferenceDirectiveFiles(path: string): string[];
|
|
73
|
+
/**
|
|
74
|
+
* Whether `packageJsonLookups` has every lookup of the program's module resolution: not where it
|
|
75
|
+
* took resolutions from parse threads whose lookups may miss some (`preparedPackageJsonLookups`).
|
|
76
|
+
*/
|
|
77
|
+
hasAllPackageJsonLookups(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* The `package.json` lookups of module resolution: this program's, and those of the parse threads
|
|
80
|
+
* whose resolutions it took. A directory can be among both.
|
|
81
|
+
*/
|
|
82
|
+
packageJsonLookups(): PackageJsonLookup[];
|
|
83
|
+
/** The typings cache of automatic type acquisition, or `''`. */
|
|
84
|
+
getGlobalTypingsCacheLocation(): string;
|
|
85
|
+
/** Files of the same package version that redirect to the file at `path`. */
|
|
86
|
+
getRedirectTargets(path: string): readonly string[];
|
|
87
|
+
/** The directory of the nearest `package.json` at or above `directory`, or `''`. */
|
|
88
|
+
getNearestAncestorDirectoryWithPackageJson(directory: string): string;
|
|
89
|
+
/** The `package.json` at `packageJsonPath`, if it exists and is the scope of its directory. */
|
|
90
|
+
getPackageJsonInfo(packageJsonPath: string): PackageJsonInfo | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Directory symlinks seen by module resolution, and those of the runtime dependencies of the
|
|
93
|
+
* packages that contain emitted files.
|
|
94
|
+
*/
|
|
95
|
+
getSymlinkCache(): KnownSymlinks;
|
|
96
|
+
private computeSymlinkCache;
|
|
97
|
+
sourceFileMetadata(path: string): SourceFileMetadata;
|
|
98
|
+
redirectFile(path: string): RedirectFile | undefined;
|
|
99
|
+
/** The source of a referenced project whose declaration output was loaded as `path`, else `fileName`. */
|
|
100
|
+
getSourceOfProjectReferenceIfOutputIncluded(path: string, fileName: string): string;
|
|
101
|
+
getProjectReferenceFromSource(path: string): SourceOutputAndProjectReference | undefined;
|
|
102
|
+
/** The configs of the project's references; `undefined` for those that couldn't be read. */
|
|
103
|
+
getResolvedProjectReferences(): (ParsedCommandLine | undefined)[];
|
|
104
|
+
getCompilerOptionsForFile(file: SourceFile): CompilerOptions;
|
|
105
|
+
importHelpersImportSpecifier(path: string): Node | undefined;
|
|
106
|
+
getModeForUsageLocation(file: SourceFile, location: Node): ModuleKind;
|
|
107
|
+
getImpliedNodeFormatForEmit(file: SourceFile): ModuleKind;
|
|
108
|
+
getDefaultResolutionModeForFile(file: SourceFile): ModuleKind;
|
|
109
|
+
/** The program file for a resolved file name, or the source file a referenced project's output redirects to. */
|
|
110
|
+
getSourceFileForResolvedModule(fileName: string): SourceFile | undefined;
|
|
111
|
+
/** Packages that modules resolved into, by name: whether any resolution into them was a declaration file. */
|
|
112
|
+
getPackagesMap(): ReadonlyMap<string, boolean>;
|
|
113
|
+
getResolvedModule(file: SourceFile, moduleName: string, mode: ModuleKind): ResolvedModule | undefined;
|
|
114
|
+
/** The program files that the imports and type reference directives of `file` resolved to. */
|
|
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[];
|
|
120
|
+
/** The specifier of the implicit JSX runtime import of `file`, if any. */
|
|
121
|
+
jsxRuntimeImportSpecifier(path: string): Node | undefined;
|
|
122
|
+
getResolvedModuleFromModuleSpecifier(file: SourceFile, specifier: Node): ResolvedModule | undefined;
|
|
123
|
+
/** Whether emit writes outputs for `file`. */
|
|
124
|
+
sourceFileMayBeEmitted(file: SourceFile, forceDtsEmit: boolean): boolean;
|
|
125
|
+
/** The directory outputs are laid out relative to, with a trailing `/`. */
|
|
126
|
+
commonSourceDirectory(): string;
|
|
127
|
+
private emittedNonDeclarationFiles;
|
|
128
|
+
private checkSourceFilesBelongToPath;
|
|
129
|
+
/**
|
|
130
|
+
* Computes what checking, reporting and emit would otherwise compute on first use, so that they
|
|
131
|
+
* never write to the program: a program shared with other threads (parallel-check.ts) is
|
|
132
|
+
* immutable. Neither adds diagnostics. File inclusion diagnostics are fixed first, as tsgo fixes
|
|
133
|
+
* them on first use: computing the common source directory checks that files are under `rootDir`
|
|
134
|
+
* (or the config file's directory), which reports only when options compute it while the program
|
|
135
|
+
* is created (verifyCompilerOptions), not when emit or declaration diagnostics compute it later.
|
|
136
|
+
*/
|
|
137
|
+
/**
|
|
138
|
+
* Whether the program was prepared for sharing (`prepareForSharing`): its objects are immutable, so what is
|
|
139
|
+
* computed on first use after that is not kept in them.
|
|
140
|
+
*/
|
|
141
|
+
isShared(): boolean;
|
|
142
|
+
prepareForSharing(): void;
|
|
143
|
+
isEmitBlocked(fileName: string): boolean;
|
|
144
|
+
/** Diagnostics of reading the config file. */
|
|
145
|
+
getConfigFileParsingDiagnostics(): readonly Diagnostic[];
|
|
146
|
+
/** Parse errors of `file`, or of every file, sorted. */
|
|
147
|
+
getSyntacticDiagnostics(file?: SourceFile): Diagnostic[];
|
|
148
|
+
/** Option errors and file inclusion errors without a location in a source file. */
|
|
149
|
+
getProgramDiagnostics(): Diagnostic[];
|
|
150
|
+
/** File inclusion errors located in `file`, reported with its semantic diagnostics. */
|
|
151
|
+
getIncludeProcessorDiagnostics(file: SourceFile): Diagnostic[];
|
|
152
|
+
/** Diagnostics of module and type reference resolution. */
|
|
153
|
+
resolutionDiagnostics(): Diagnostic[];
|
|
154
|
+
/** What `--explainFiles` prints: each file and why it is in the program. */
|
|
155
|
+
explainFiles(locale: Locale): string;
|
|
156
|
+
private configSourceFile;
|
|
157
|
+
private compilerOptionsProperty;
|
|
158
|
+
private compilerOptionsObject;
|
|
159
|
+
private addProgramDiagnostic;
|
|
160
|
+
/** At `key1` (or `key2`) of `object`, on the key or the value; `undefined` if neither is there. */
|
|
161
|
+
private optionDiagnosticInObject;
|
|
162
|
+
/** At `compilerOptions` of the config, or without a location. */
|
|
163
|
+
private compilerOptionsDiagnostic;
|
|
164
|
+
private optionDiagnostic;
|
|
165
|
+
/** At the name of `option1` (or `option2`), with both names as the first arguments. */
|
|
166
|
+
private optionNameDiagnostic;
|
|
167
|
+
private optionValueDiagnostic;
|
|
168
|
+
private removedOptionDiagnostic;
|
|
169
|
+
private pathsDiagnostic;
|
|
170
|
+
private pathsValueDiagnostic;
|
|
171
|
+
private verifyCompilerOptions;
|
|
172
|
+
private verifyEmitFilePath;
|
|
173
|
+
private blockEmittingOfFile;
|
|
174
|
+
private verifyProjectReferences;
|
|
175
|
+
private verifyProjectReference;
|
|
176
|
+
/** At the reference's entry of `references` in the parent config. */
|
|
177
|
+
private referenceDiagnostic;
|
|
178
|
+
}
|
|
179
|
+
/** Sorts diagnostics and merges duplicates, combining their related information. */
|
|
180
|
+
export declare function sortAndDeduplicateDiagnostics(diagnostics: readonly Diagnostic[]): Diagnostic[];
|