tsc-ts 0.0.4 → 0.0.6
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 +34 -2
- 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 +2351 -0
- package/dist/api/compiler/ast.js +11212 -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 +1241 -0
- package/dist/api/compiler/binder.d.ts +33 -0
- package/dist/api/compiler/binder.js +2359 -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 +1641 -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 +357 -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 +788 -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 +314 -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 +291 -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 +580 -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 +2587 -0
- package/dist/api/compiler/checker-heritage.d.ts +28 -0
- package/dist/api/compiler/checker-heritage.js +901 -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 +442 -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 +200 -0
- package/dist/api/compiler/checker-members.js +2148 -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 +483 -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 +271 -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 +789 -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 +51 -0
- package/dist/api/compiler/checker-symbol-types.js +955 -0
- package/dist/api/compiler/checker-symbols.d.ts +181 -0
- package/dist/api/compiler/checker-symbols.js +1784 -0
- package/dist/api/compiler/checker-type-factory.d.ts +142 -0
- package/dist/api/compiler/checker-type-factory.js +2542 -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 +1093 -0
- package/dist/api/compiler/checker-types.js +1874 -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 +512 -0
- package/dist/api/compiler/checker.js +932 -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 +161 -0
- package/dist/api/compiler/diagnostics.js +784 -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 +144 -0
- package/dist/api/compiler/file-include.js +599 -0
- package/dist/api/compiler/file-loader.d.ts +290 -0
- package/dist/api/compiler/file-loader.js +1323 -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 +835 -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 +105 -0
- package/dist/api/compiler/link-tables.js +319 -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 +745 -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 +221 -0
- package/dist/api/compiler/parallel-parse.js +541 -0
- package/dist/api/compiler/parser.d.ts +604 -0
- package/dist/api/compiler/parser.js +6426 -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 +157 -0
- package/dist/api/compiler/printer/emit-context.js +582 -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 +529 -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 +1019 -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 +991 -0
- package/dist/api/compiler/symbol.d.ts +282 -0
- package/dist/api/compiler/symbol.js +339 -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 +677 -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 +539 -0
- package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
- package/dist/api/compiler/transformers/declarations-pseudo.js +799 -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 +198 -0
- package/dist/api/compiler/transformers/declarations.d.ts +175 -0
- package/dist/api/compiler/transformers/declarations.js +2381 -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 +129 -0
- package/dist/api/compiler/transformers/reference-resolver.js +1157 -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 +10 -0
- package/dist/api/compiler/transformers/subtree-facts.js +205 -0
- package/dist/api/compiler/transformers/syntax-facts.d.ts +52 -0
- package/dist/api/compiler/transformers/syntax-facts.js +258 -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 +12870 -0
- package/src/compiler/astnav.ts +799 -0
- package/src/compiler/binder-utilities.ts +1392 -0
- package/src/compiler/binder.ts +2707 -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 +1201 -0
- package/src/compiler/checker-declared-types.ts +919 -0
- package/src/compiler/checker-decorators.ts +694 -0
- package/src/compiler/checker-deprecation.ts +355 -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 +3596 -0
- package/src/compiler/checker-heritage.ts +1240 -0
- package/src/compiler/checker-inference.ts +2584 -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 +1928 -0
- package/src/compiler/checker-literals.ts +61 -0
- package/src/compiler/checker-members.ts +2480 -0
- package/src/compiler/checker-modules.ts +2896 -0
- package/src/compiler/checker-narrowing.ts +3230 -0
- package/src/compiler/checker-object-literals.ts +591 -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 +1187 -0
- package/src/compiler/checker-symbols.ts +2157 -0
- package/src/compiler/checker-type-factory.ts +2616 -0
- package/src/compiler/checker-type-nodes.ts +1033 -0
- package/src/compiler/checker-type-operators.ts +2510 -0
- package/src/compiler/checker-types.ts +2520 -0
- package/src/compiler/checker-unused.ts +642 -0
- package/src/compiler/checker-utilities.ts +161 -0
- package/src/compiler/checker.ts +1138 -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 +858 -0
- package/src/compiler/emitter.ts +434 -0
- package/src/compiler/encoder.ts +1945 -0
- package/src/compiler/file-include.ts +741 -0
- package/src/compiler/file-loader.ts +1597 -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 +2818 -0
- package/src/compiler/init.ts +141 -0
- package/src/compiler/instantiation.ts +938 -0
- package/src/compiler/jsdoc.ts +1386 -0
- package/src/compiler/link-tables.ts +343 -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 +1071 -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 +3433 -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 +1954 -0
- package/src/compiler/parallel-parse.ts +595 -0
- package/src/compiler/parse-thread.ts +136 -0
- package/src/compiler/parser.ts +7766 -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 +684 -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 +594 -0
- package/src/compiler/program-utilities.ts +435 -0
- package/src/compiler/program.ts +1426 -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 +1166 -0
- package/src/compiler/symbol.ts +557 -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 +833 -0
- package/src/compiler/transformers/declarations-pseudo.ts +969 -0
- package/src/compiler/transformers/declarations-resolver.ts +249 -0
- package/src/compiler/transformers/declarations-syntactic.ts +1867 -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 +1213 -0
- package/src/compiler/transformers/runtime-syntax.ts +942 -0
- package/src/compiler/transformers/subtree-facts.ts +253 -0
- package/src/compiler/transformers/syntax-facts.ts +358 -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 +1422 -0
- package/src/compiler/tsc-cli.ts +669 -0
- package/src/compiler/tsc-compile.ts +446 -0
- package/src/compiler/tsc-watch.ts +922 -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,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Option and syntax queries of program construction: libraries, module formats and resolution modes.
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
ExportDeclaration,
|
|
6
|
+
ExternalModuleIndicatorOptions,
|
|
7
|
+
ImportAttribute,
|
|
8
|
+
ImportAttributes,
|
|
9
|
+
ImportClause,
|
|
10
|
+
ImportDeclaration,
|
|
11
|
+
ImportEqualsDeclaration,
|
|
12
|
+
ImportTypeNode,
|
|
13
|
+
JSDocImportTag,
|
|
14
|
+
LiteralTypeNode,
|
|
15
|
+
NoSubstitutionTemplateLiteral,
|
|
16
|
+
ParenthesizedExpression,
|
|
17
|
+
ScriptKind,
|
|
18
|
+
StringLiteral,
|
|
19
|
+
type Node,
|
|
20
|
+
type SourceFile,
|
|
21
|
+
} from './ast.js';
|
|
22
|
+
import { isImportCall, isRequireCall } from './ast-utilities.js';
|
|
23
|
+
import { libMap } from './option-declarations.js';
|
|
24
|
+
import {
|
|
25
|
+
getEmitModuleDetectionKind,
|
|
26
|
+
getEmitModuleKind,
|
|
27
|
+
getEmitScriptTarget,
|
|
28
|
+
getModuleResolutionKind,
|
|
29
|
+
getResolvePackageJsonExports,
|
|
30
|
+
getResolvePackageJsonImports,
|
|
31
|
+
JsxEmit,
|
|
32
|
+
ModuleDetectionKind,
|
|
33
|
+
ModuleKind,
|
|
34
|
+
ModuleResolutionKind,
|
|
35
|
+
ScriptTarget,
|
|
36
|
+
type CompilerOptions,
|
|
37
|
+
} from './options.js';
|
|
38
|
+
import { fileExtensionIsOneOf, isDeclarationFileName, toFileNameLowerCase } from './path.js';
|
|
39
|
+
import { SyntaxKind } from './syntax-kind.js';
|
|
40
|
+
|
|
41
|
+
// ---- Libraries
|
|
42
|
+
|
|
43
|
+
/** `--lib` names in declaration order. */
|
|
44
|
+
export const libNames: readonly string[] = [...libMap.keys()];
|
|
45
|
+
|
|
46
|
+
const libFileNames = new Set<string>();
|
|
47
|
+
for (const value of libMap.values()) if (typeof value === 'string') libFileNames.add(value);
|
|
48
|
+
|
|
49
|
+
/** The bundled file of a `lib` name or file name, or `''`. */
|
|
50
|
+
export function getLibFileName(name: string): string {
|
|
51
|
+
const lower = toFileNameLowerCase(name);
|
|
52
|
+
if (libFileNames.has(lower)) return lower;
|
|
53
|
+
const fileName = libMap.get(lower);
|
|
54
|
+
return typeof fileName === 'string' ? fileName : '';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** The library included by default for the target. */
|
|
58
|
+
export function getDefaultLibFileName(options: CompilerOptions): string {
|
|
59
|
+
switch (getEmitScriptTarget(options)) {
|
|
60
|
+
case ScriptTarget.ESNext:
|
|
61
|
+
return 'lib.esnext.full.d.ts';
|
|
62
|
+
case ScriptTarget.ES2025:
|
|
63
|
+
return 'lib.es2025.full.d.ts';
|
|
64
|
+
case ScriptTarget.ES2024:
|
|
65
|
+
return 'lib.es2024.full.d.ts';
|
|
66
|
+
case ScriptTarget.ES2023:
|
|
67
|
+
return 'lib.es2023.full.d.ts';
|
|
68
|
+
case ScriptTarget.ES2022:
|
|
69
|
+
return 'lib.es2022.full.d.ts';
|
|
70
|
+
case ScriptTarget.ES2021:
|
|
71
|
+
return 'lib.es2021.full.d.ts';
|
|
72
|
+
case ScriptTarget.ES2020:
|
|
73
|
+
return 'lib.es2020.full.d.ts';
|
|
74
|
+
case ScriptTarget.ES2019:
|
|
75
|
+
return 'lib.es2019.full.d.ts';
|
|
76
|
+
case ScriptTarget.ES2018:
|
|
77
|
+
return 'lib.es2018.full.d.ts';
|
|
78
|
+
case ScriptTarget.ES2017:
|
|
79
|
+
return 'lib.es2017.full.d.ts';
|
|
80
|
+
case ScriptTarget.ES2016:
|
|
81
|
+
return 'lib.es2016.full.d.ts';
|
|
82
|
+
case ScriptTarget.ES2015:
|
|
83
|
+
// Not `lib.es2015.full.d.ts`, which would be a breaking change.
|
|
84
|
+
return 'lib.es6.d.ts';
|
|
85
|
+
default:
|
|
86
|
+
return 'lib.d.ts';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ---- Enum names, as tsgo prints them
|
|
91
|
+
|
|
92
|
+
export function scriptTargetName(target: ScriptTarget): string {
|
|
93
|
+
switch (target) {
|
|
94
|
+
case ScriptTarget.ES5:
|
|
95
|
+
return 'ES5';
|
|
96
|
+
case ScriptTarget.ES2015:
|
|
97
|
+
return 'ES2015';
|
|
98
|
+
case ScriptTarget.ES2016:
|
|
99
|
+
return 'ES2016';
|
|
100
|
+
case ScriptTarget.ES2017:
|
|
101
|
+
return 'ES2017';
|
|
102
|
+
case ScriptTarget.ES2018:
|
|
103
|
+
return 'ES2018';
|
|
104
|
+
case ScriptTarget.ES2019:
|
|
105
|
+
return 'ES2019';
|
|
106
|
+
case ScriptTarget.ES2020:
|
|
107
|
+
return 'ES2020';
|
|
108
|
+
case ScriptTarget.ES2021:
|
|
109
|
+
return 'ES2021';
|
|
110
|
+
case ScriptTarget.ES2022:
|
|
111
|
+
return 'ES2022';
|
|
112
|
+
case ScriptTarget.ES2023:
|
|
113
|
+
return 'ES2023';
|
|
114
|
+
case ScriptTarget.ES2024:
|
|
115
|
+
return 'ES2024';
|
|
116
|
+
case ScriptTarget.ES2025:
|
|
117
|
+
return 'ES2025';
|
|
118
|
+
case ScriptTarget.ESNext:
|
|
119
|
+
return 'ESNext';
|
|
120
|
+
case ScriptTarget.JSON:
|
|
121
|
+
return 'JSON';
|
|
122
|
+
}
|
|
123
|
+
return '';
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function moduleKindName(kind: ModuleKind): string {
|
|
127
|
+
switch (kind) {
|
|
128
|
+
case ModuleKind.None:
|
|
129
|
+
return 'None';
|
|
130
|
+
case ModuleKind.CommonJS:
|
|
131
|
+
return 'CommonJS';
|
|
132
|
+
case ModuleKind.AMD:
|
|
133
|
+
return 'AMD';
|
|
134
|
+
case ModuleKind.UMD:
|
|
135
|
+
return 'UMD';
|
|
136
|
+
case ModuleKind.System:
|
|
137
|
+
return 'System';
|
|
138
|
+
case ModuleKind.ES2015:
|
|
139
|
+
return 'ES2015';
|
|
140
|
+
case ModuleKind.ES2020:
|
|
141
|
+
return 'ES2020';
|
|
142
|
+
case ModuleKind.ES2022:
|
|
143
|
+
return 'ES2022';
|
|
144
|
+
case ModuleKind.ESNext:
|
|
145
|
+
return 'ESNext';
|
|
146
|
+
case ModuleKind.Node16:
|
|
147
|
+
return 'Node16';
|
|
148
|
+
case ModuleKind.Node18:
|
|
149
|
+
return 'Node18';
|
|
150
|
+
case ModuleKind.Node20:
|
|
151
|
+
return 'Node20';
|
|
152
|
+
case ModuleKind.NodeNext:
|
|
153
|
+
return 'NodeNext';
|
|
154
|
+
case ModuleKind.Preserve:
|
|
155
|
+
return 'Preserve';
|
|
156
|
+
}
|
|
157
|
+
return '';
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export function jsxEmitName(jsx: JsxEmit): string {
|
|
161
|
+
switch (jsx) {
|
|
162
|
+
case JsxEmit.Preserve:
|
|
163
|
+
return 'preserve';
|
|
164
|
+
case JsxEmit.ReactNative:
|
|
165
|
+
return 'react-native';
|
|
166
|
+
case JsxEmit.React:
|
|
167
|
+
return 'react';
|
|
168
|
+
case JsxEmit.ReactJSX:
|
|
169
|
+
return 'react-jsx';
|
|
170
|
+
case JsxEmit.ReactJSXDev:
|
|
171
|
+
return 'react-jsxdev';
|
|
172
|
+
}
|
|
173
|
+
return '';
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// ---- Module formats
|
|
177
|
+
|
|
178
|
+
/** What a file's nearest `package.json` says about its module format. */
|
|
179
|
+
export class SourceFileMetadata {
|
|
180
|
+
constructor(
|
|
181
|
+
/** `type` of the nearest `package.json`, where it applies; `''` otherwise. */
|
|
182
|
+
readonly packageJsonType: string,
|
|
183
|
+
/** Directory of the nearest `package.json`, or `''`. */
|
|
184
|
+
readonly packageJsonDirectory: string,
|
|
185
|
+
/** `ESNext`, `CommonJS` or `None` (formats other than JavaScript and TypeScript). */
|
|
186
|
+
readonly impliedNodeFormat: ModuleKind,
|
|
187
|
+
) {}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export const libFileMetadata = new SourceFileMetadata('', '', ModuleKind.CommonJS);
|
|
191
|
+
|
|
192
|
+
export function getImpliedNodeFormatForFile(path: string, packageJsonType: string): ModuleKind {
|
|
193
|
+
if (fileExtensionIsOneOf(path, ['.d.mts', '.mts', '.mjs'])) return ModuleKind.ESNext;
|
|
194
|
+
if (fileExtensionIsOneOf(path, ['.d.cts', '.cts', '.cjs'])) return ModuleKind.CommonJS;
|
|
195
|
+
if (fileExtensionIsOneOf(path, ['.d.ts', '.ts', '.tsx', '.js', '.jsx'])) {
|
|
196
|
+
return packageJsonType === 'module' ? ModuleKind.ESNext : ModuleKind.CommonJS;
|
|
197
|
+
}
|
|
198
|
+
return ModuleKind.None;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** The format a file is emitted in when it differs from `module`, else `None`. */
|
|
202
|
+
export function getImpliedNodeFormatForEmit(
|
|
203
|
+
fileName: string,
|
|
204
|
+
emitModuleKind: ModuleKind,
|
|
205
|
+
metadata: SourceFileMetadata,
|
|
206
|
+
): ModuleKind {
|
|
207
|
+
if (ModuleKind.Node16 <= emitModuleKind && emitModuleKind <= ModuleKind.NodeNext) return metadata.impliedNodeFormat;
|
|
208
|
+
if (
|
|
209
|
+
metadata.impliedNodeFormat === ModuleKind.CommonJS &&
|
|
210
|
+
(metadata.packageJsonType === 'commonjs' || fileExtensionIsOneOf(fileName, ['.cjs', '.cts']))
|
|
211
|
+
) {
|
|
212
|
+
return ModuleKind.CommonJS;
|
|
213
|
+
}
|
|
214
|
+
if (
|
|
215
|
+
metadata.impliedNodeFormat === ModuleKind.ESNext &&
|
|
216
|
+
(metadata.packageJsonType === 'module' || fileExtensionIsOneOf(fileName, ['.mjs', '.mts']))
|
|
217
|
+
) {
|
|
218
|
+
return ModuleKind.ESNext;
|
|
219
|
+
}
|
|
220
|
+
return ModuleKind.None;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export function getEmitModuleFormatOfFile(
|
|
224
|
+
fileName: string,
|
|
225
|
+
options: CompilerOptions,
|
|
226
|
+
metadata: SourceFileMetadata,
|
|
227
|
+
): ModuleKind {
|
|
228
|
+
const result = getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata);
|
|
229
|
+
return result !== ModuleKind.None ? result : getEmitModuleKind(options);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** What makes a file a module, besides imports and exports. */
|
|
233
|
+
export function getExternalModuleIndicatorOptions(
|
|
234
|
+
fileName: string,
|
|
235
|
+
options: CompilerOptions,
|
|
236
|
+
metadata: SourceFileMetadata,
|
|
237
|
+
): ExternalModuleIndicatorOptions {
|
|
238
|
+
if (isDeclarationFileName(fileName)) return new ExternalModuleIndicatorOptions(false, false);
|
|
239
|
+
switch (getEmitModuleDetectionKind(options)) {
|
|
240
|
+
case ModuleDetectionKind.Force:
|
|
241
|
+
return new ExternalModuleIndicatorOptions(false, true);
|
|
242
|
+
case ModuleDetectionKind.Auto: {
|
|
243
|
+
const jsx = options.jsx === JsxEmit.ReactJSX || options.jsx === JsxEmit.ReactJSXDev;
|
|
244
|
+
const forced =
|
|
245
|
+
getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata) === ModuleKind.ESNext ||
|
|
246
|
+
fileExtensionIsOneOf(fileName, ['.cjs', '.cts', '.mjs', '.mts']);
|
|
247
|
+
return new ExternalModuleIndicatorOptions(jsx, forced);
|
|
248
|
+
}
|
|
249
|
+
default:
|
|
250
|
+
return new ExternalModuleIndicatorOptions(false, false);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export function isExternalModule(file: SourceFile): boolean {
|
|
255
|
+
return file.externalModuleIndicator !== undefined;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export function isExternalOrCommonJSModule(file: SourceFile): boolean {
|
|
259
|
+
return file.externalModuleIndicator !== undefined || file.commonJSModuleIndicator !== undefined;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export function isSourceFileJS(file: SourceFile): boolean {
|
|
263
|
+
return file.scriptKind === ScriptKind.JS || file.scriptKind === ScriptKind.JSX;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export function isCheckJsEnabledForFile(file: SourceFile, options: CompilerOptions): boolean {
|
|
267
|
+
if (file.checkJsDirective !== undefined) return file.checkJsDirective.enabled;
|
|
268
|
+
return options.checkJs === true;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// ---- JSX runtime
|
|
272
|
+
|
|
273
|
+
function pragmaArgument(file: SourceFile, name: string, argument: string): string | undefined {
|
|
274
|
+
let result: string | undefined;
|
|
275
|
+
// The last pragma wins.
|
|
276
|
+
for (const pragma of file.pragmas) {
|
|
277
|
+
if (pragma.name === name) result = pragma.args.get(argument)?.value ?? '';
|
|
278
|
+
}
|
|
279
|
+
return result;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/** The package providing the JSX runtime, or `''` when JSX compiles to factory calls. */
|
|
283
|
+
export function getJSXImplicitImportBase(options: CompilerOptions, file: SourceFile): string {
|
|
284
|
+
const importSource = pragmaArgument(file, 'jsximportsource', 'factory');
|
|
285
|
+
const runtime = pragmaArgument(file, 'jsxruntime', 'factory');
|
|
286
|
+
if (runtime === 'classic') return '';
|
|
287
|
+
if (
|
|
288
|
+
options.jsx === JsxEmit.ReactJSX ||
|
|
289
|
+
options.jsx === JsxEmit.ReactJSXDev ||
|
|
290
|
+
options.jsxImportSource !== undefined ||
|
|
291
|
+
importSource !== undefined ||
|
|
292
|
+
runtime === 'automatic'
|
|
293
|
+
) {
|
|
294
|
+
if (importSource !== undefined && importSource !== '') return importSource;
|
|
295
|
+
return options.jsxImportSource ?? 'react';
|
|
296
|
+
}
|
|
297
|
+
return '';
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
export function getJSXRuntimeImport(base: string, options: CompilerOptions): string {
|
|
301
|
+
if (base === '') return '';
|
|
302
|
+
return base + '/' + (options.jsx === JsxEmit.ReactJSXDev ? 'jsx-dev-runtime' : 'jsx-runtime');
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// ---- Resolution modes
|
|
306
|
+
|
|
307
|
+
function isStringLiteralLike(node: Node | undefined): boolean {
|
|
308
|
+
return node instanceof StringLiteral || node instanceof NoSubstitutionTemplateLiteral;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
function literalText(node: Node): string {
|
|
312
|
+
if (node instanceof StringLiteral) return node.text;
|
|
313
|
+
if (node instanceof NoSubstitutionTemplateLiteral) return node.text;
|
|
314
|
+
return '';
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/** The `resolution-mode` of `import type` attributes, or `None`. */
|
|
318
|
+
export function getResolutionModeOverride(attributes: ImportAttributes | undefined): ModuleKind {
|
|
319
|
+
if (attributes === undefined) return ModuleKind.None;
|
|
320
|
+
const elements = attributes.attributes.nodes;
|
|
321
|
+
if (elements.length !== 1) return ModuleKind.None;
|
|
322
|
+
const attribute = elements[0]!;
|
|
323
|
+
if (!(attribute instanceof ImportAttribute)) return ModuleKind.None;
|
|
324
|
+
const name = attribute.name;
|
|
325
|
+
if (name === undefined || !isStringLiteralLike(name) || literalText(name) !== 'resolution-mode')
|
|
326
|
+
return ModuleKind.None;
|
|
327
|
+
if (!isStringLiteralLike(attribute.value)) return ModuleKind.None;
|
|
328
|
+
const text = literalText(attribute.value);
|
|
329
|
+
if (text === 'import') return ModuleKind.ESNext;
|
|
330
|
+
if (text === 'require') return ModuleKind.CommonJS;
|
|
331
|
+
return ModuleKind.None;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/** The attributes of an import or export declaration or a JSDoc `@import`, if any. */
|
|
335
|
+
function importOrExportAttributes(node: Node | undefined): ImportAttributes | undefined {
|
|
336
|
+
if (node instanceof ImportDeclaration) return node.attributes;
|
|
337
|
+
if (node instanceof ExportDeclaration) return node.attributes;
|
|
338
|
+
if (node instanceof JSDocImportTag) return node.attributes;
|
|
339
|
+
return undefined;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function isClauseTypeOnly(clause: ImportClause | undefined): boolean {
|
|
343
|
+
return clause !== undefined && clause.phaseModifier === SyntaxKind.TypeKeyword;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function isExclusivelyTypeOnlyImportOrExport(node: Node): boolean {
|
|
347
|
+
if (node instanceof ExportDeclaration) return node.isTypeOnly;
|
|
348
|
+
if (node instanceof ImportDeclaration) return isClauseTypeOnly(node.importClause);
|
|
349
|
+
if (node instanceof JSDocImportTag) return isClauseTypeOnly(node.importClause);
|
|
350
|
+
return false;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/** Whether `import` syntax decides how a specifier resolves: Node16-style resolution or `exports`/`imports`. */
|
|
354
|
+
export function importSyntaxAffectsModuleResolution(options: CompilerOptions): boolean {
|
|
355
|
+
const kind = getModuleResolutionKind(options);
|
|
356
|
+
return (
|
|
357
|
+
(ModuleResolutionKind.Node16 <= kind && kind <= ModuleResolutionKind.NodeNext) ||
|
|
358
|
+
getResolvePackageJsonExports(options) ||
|
|
359
|
+
getResolvePackageJsonImports(options)
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/** The mode a module specifier resolves in: from attributes, the import syntax, or the file's format. */
|
|
364
|
+
export function getModeForUsageLocation(
|
|
365
|
+
fileName: string,
|
|
366
|
+
metadata: SourceFileMetadata,
|
|
367
|
+
usage: Node,
|
|
368
|
+
options: CompilerOptions,
|
|
369
|
+
): ModuleKind {
|
|
370
|
+
const parent = usage.parent;
|
|
371
|
+
const attributes = importOrExportAttributes(parent);
|
|
372
|
+
if (attributes !== undefined && parent !== undefined && isExclusivelyTypeOnlyImportOrExport(parent)) {
|
|
373
|
+
const override = getResolutionModeOverride(attributes);
|
|
374
|
+
if (override !== ModuleKind.None) return override;
|
|
375
|
+
}
|
|
376
|
+
if (parent instanceof LiteralTypeNode && parent.parent instanceof ImportTypeNode) {
|
|
377
|
+
const override = getResolutionModeOverride(parent.parent.attributes);
|
|
378
|
+
if (override !== ModuleKind.None) return override;
|
|
379
|
+
}
|
|
380
|
+
if (importSyntaxAffectsModuleResolution(options))
|
|
381
|
+
return getEmitSyntaxForUsageLocation(fileName, metadata, usage, options);
|
|
382
|
+
return ModuleKind.None;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function walkUpParenthesizedExpressions(node: Node | undefined): Node | undefined {
|
|
386
|
+
while (node instanceof ParenthesizedExpression) node = node.parent;
|
|
387
|
+
return node;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
export function getEmitSyntaxForUsageLocation(
|
|
391
|
+
fileName: string,
|
|
392
|
+
metadata: SourceFileMetadata,
|
|
393
|
+
usage: Node,
|
|
394
|
+
options: CompilerOptions,
|
|
395
|
+
): ModuleKind {
|
|
396
|
+
const parent = usage.parent;
|
|
397
|
+
if (parent === undefined) return ModuleKind.None;
|
|
398
|
+
if (
|
|
399
|
+
isRequireCall(parent, false) ||
|
|
400
|
+
(parent.kind === SyntaxKind.ExternalModuleReference && parent.parent instanceof ImportEqualsDeclaration)
|
|
401
|
+
) {
|
|
402
|
+
return ModuleKind.CommonJS;
|
|
403
|
+
}
|
|
404
|
+
const fileEmitMode = getEmitModuleFormatOfFile(fileName, options, metadata);
|
|
405
|
+
const call = walkUpParenthesizedExpressions(parent);
|
|
406
|
+
if (call !== undefined && isImportCall(call)) {
|
|
407
|
+
return shouldTransformImportCall(options, fileEmitMode) ? ModuleKind.CommonJS : ModuleKind.ESNext;
|
|
408
|
+
}
|
|
409
|
+
if (fileEmitMode === ModuleKind.CommonJS) return ModuleKind.CommonJS;
|
|
410
|
+
if (
|
|
411
|
+
(ModuleKind.ES2015 <= fileEmitMode && fileEmitMode <= ModuleKind.ESNext) ||
|
|
412
|
+
fileEmitMode === ModuleKind.Preserve
|
|
413
|
+
) {
|
|
414
|
+
return ModuleKind.ESNext;
|
|
415
|
+
}
|
|
416
|
+
return ModuleKind.None;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function shouldTransformImportCall(options: CompilerOptions, impliedNodeFormatForEmit: ModuleKind): boolean {
|
|
420
|
+
const moduleKind = getEmitModuleKind(options);
|
|
421
|
+
if ((ModuleKind.Node16 <= moduleKind && moduleKind <= ModuleKind.NodeNext) || moduleKind === ModuleKind.Preserve) {
|
|
422
|
+
return false;
|
|
423
|
+
}
|
|
424
|
+
return impliedNodeFormatForEmit < ModuleKind.ES2015;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export function getDefaultResolutionModeForFile(
|
|
428
|
+
fileName: string,
|
|
429
|
+
metadata: SourceFileMetadata,
|
|
430
|
+
options: CompilerOptions,
|
|
431
|
+
): ModuleKind {
|
|
432
|
+
return importSyntaxAffectsModuleResolution(options)
|
|
433
|
+
? getImpliedNodeFormatForEmit(fileName, getEmitModuleKind(options), metadata)
|
|
434
|
+
: ModuleKind.None;
|
|
435
|
+
}
|