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,63 @@
|
|
|
1
|
+
// Parsing one file with tsc-ts's public API.
|
|
2
|
+
|
|
3
|
+
import { ParseOptions, type ScriptKind as CompilerScriptKind } from '../compiler/ast.js';
|
|
4
|
+
import { CompilerHost, sourceFileMetadataOf } from '../compiler/file-loader.js';
|
|
5
|
+
import { CachedFileSystem } from '../compiler/file-system.js';
|
|
6
|
+
import { Resolver } from '../compiler/module-resolution.js';
|
|
7
|
+
import { parseSourceFile as parse } from '../compiler/parser.js';
|
|
8
|
+
import { getNormalizedAbsolutePath, toPath } from '../compiler/path.js';
|
|
9
|
+
import { getExternalModuleIndicatorOptions } from '../compiler/program-utilities.js';
|
|
10
|
+
import type { SourceFile } from './ast.js';
|
|
11
|
+
import type { CompilerOptions } from './compiler-options.generated.js';
|
|
12
|
+
import { ScriptKind } from './enums.generated.js';
|
|
13
|
+
import { internalError } from './errors.js';
|
|
14
|
+
import { HostFileSystem } from './host.js';
|
|
15
|
+
import { type ApiCompilerOptions, compilerOptionsFromApi } from './options.js';
|
|
16
|
+
import type { ProgramHost } from './types.js';
|
|
17
|
+
|
|
18
|
+
export interface ParseSourceFileOptions {
|
|
19
|
+
/** The options of the program the file would be in: they decide what makes it a module. */
|
|
20
|
+
readonly compilerOptions?: CompilerOptions;
|
|
21
|
+
/** Where the nearest package.json of the file is looked up; the disk without a host. */
|
|
22
|
+
readonly host?: ProgramHost;
|
|
23
|
+
/** The script kind; by default, the kind the file name's extension implies. */
|
|
24
|
+
readonly scriptKind?: ScriptKind;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* `fileName` (absolute, or relative to the host's current directory) with the contents `text`, parsed
|
|
29
|
+
* as a program with `compilerOptions` parses it: the same tree `tsc-ts --api` gives for the file in a
|
|
30
|
+
* project of that file alone, with parents set. Whether the file is a module depends on its nearest
|
|
31
|
+
* package.json, as in a program. The tree is not bound.
|
|
32
|
+
*/
|
|
33
|
+
export function parseSourceFile(fileName: string, text: string, options: ParseSourceFileOptions = {}): SourceFile {
|
|
34
|
+
try {
|
|
35
|
+
const host = options.host ?? diskHost();
|
|
36
|
+
const currentDirectory = host.getCurrentDirectory();
|
|
37
|
+
const compilerOptions = compilerOptionsFromApi((options.compilerOptions ?? {}) as ApiCompilerOptions);
|
|
38
|
+
const normalized = getNormalizedAbsolutePath(fileName, currentDirectory);
|
|
39
|
+
const path = toPath(normalized, currentDirectory, host.useCaseSensitiveFileNames());
|
|
40
|
+
const compilerHost = new CompilerHost(
|
|
41
|
+
new CachedFileSystem(new HostFileSystem(host)),
|
|
42
|
+
currentDirectory,
|
|
43
|
+
host.getDefaultLibraryDirectory(),
|
|
44
|
+
);
|
|
45
|
+
const metadata = sourceFileMetadataOf(new Resolver(compilerHost, compilerOptions), compilerOptions, normalized);
|
|
46
|
+
const parseOptions = new ParseOptions(
|
|
47
|
+
path,
|
|
48
|
+
(options.scriptKind ?? ScriptKind.Unknown) as number as CompilerScriptKind,
|
|
49
|
+
getExternalModuleIndicatorOptions(normalized, compilerOptions, metadata),
|
|
50
|
+
);
|
|
51
|
+
return parse(normalized, text, parseOptions) as unknown as SourceFile;
|
|
52
|
+
} catch (e) {
|
|
53
|
+
throw internalError(e);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function diskHost(): ProgramHost {
|
|
58
|
+
return {
|
|
59
|
+
getCurrentDirectory: () => process.cwd(),
|
|
60
|
+
useCaseSensitiveFileNames: () => process.platform !== 'win32' && process.platform !== 'darwin',
|
|
61
|
+
getDefaultLibraryDirectory: () => '',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
// Programs of tsc-ts's public API: createProgram, parseConfigFile and Program.
|
|
2
|
+
|
|
3
|
+
// The emit pipeline, loaded first as tsc-ts's command line loads it: programs and checked programs refer to its
|
|
4
|
+
// classes (EmitIndexes, EmitResult), which scriptc compiles only when the program imports their modules as values.
|
|
5
|
+
// CheckedProgram is imported through it, not as a side effect, so that the declarations of tsc-ts/api don't import
|
|
6
|
+
// the compiler's modules.
|
|
7
|
+
import { CheckedProgram } from '../compiler/compile-program.js';
|
|
8
|
+
import type { SourceFile as CompilerSourceFile } from '../compiler/ast.js';
|
|
9
|
+
import { dropLibGlobals } from '../compiler/checker-symbols.js';
|
|
10
|
+
import type { Diagnostic as CompilerDiagnostic } from '../compiler/diagnostics.js';
|
|
11
|
+
import { CachedFileSystem } from '../compiler/file-system.js';
|
|
12
|
+
import { getNormalizedAbsolutePath } from '../compiler/path.js';
|
|
13
|
+
import { Program as CompilerProgram, sortAndDeduplicateDiagnostics } from '../compiler/program.js';
|
|
14
|
+
import { ConfigParser, ParsedCommandLine } from '../compiler/tsconfig.js';
|
|
15
|
+
import type { SourceFile } from './ast.js';
|
|
16
|
+
import { LibraryTypeChecker } from './checker.js';
|
|
17
|
+
import type { CompilerOptions } from './compiler-options.generated.js';
|
|
18
|
+
import { type DiagnosticKind, diagnosticOf, programDiagnostics } from './diagnostics.js';
|
|
19
|
+
import { DisposedProgramError, internalError } from './errors.js';
|
|
20
|
+
import { HostFileSystem, LibraryCompilerHost } from './host.js';
|
|
21
|
+
import { type ApiCompilerOptions, compilerOptionsFromApi, compilerOptionsOf } from './options.js';
|
|
22
|
+
import type {
|
|
23
|
+
CreateProgramOptions,
|
|
24
|
+
Diagnostic,
|
|
25
|
+
ParsedConfigFile,
|
|
26
|
+
Program,
|
|
27
|
+
ProgramHost,
|
|
28
|
+
SourceFileMetadata,
|
|
29
|
+
TypeChecker,
|
|
30
|
+
} from './types.js';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A program of `rootNames` with `options`, reading files through `host`. It loads its files as `tsc-ts`
|
|
34
|
+
* loads a project's: resolving imports and references from the root files, with the default libraries of
|
|
35
|
+
* the options from the host's default library directory.
|
|
36
|
+
*/
|
|
37
|
+
export function createProgram(options: CreateProgramOptions): Program {
|
|
38
|
+
try {
|
|
39
|
+
const host = options.host;
|
|
40
|
+
const currentDirectory = host.getCurrentDirectory();
|
|
41
|
+
const rootNames = options.rootNames.map((name) => getNormalizedAbsolutePath(name, currentDirectory));
|
|
42
|
+
const config = new ParsedCommandLine(
|
|
43
|
+
compilerOptionsFromApi(options.options as ApiCompilerOptions),
|
|
44
|
+
undefined,
|
|
45
|
+
rootNames,
|
|
46
|
+
[],
|
|
47
|
+
undefined,
|
|
48
|
+
[],
|
|
49
|
+
currentDirectory,
|
|
50
|
+
host.useCaseSensitiveFileNames(),
|
|
51
|
+
rootNames.length,
|
|
52
|
+
);
|
|
53
|
+
return programOf(config, host);
|
|
54
|
+
} catch (e) {
|
|
55
|
+
throw internalError(e);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** The program of a config file (`parseConfigFile`'s options and files), reading files through `host`. */
|
|
60
|
+
export function createProgramFromConfigFile(configFileName: string, host: ProgramHost): Program {
|
|
61
|
+
try {
|
|
62
|
+
return programOf(parsedConfig(configFileName, host).config, host);
|
|
63
|
+
} catch (e) {
|
|
64
|
+
throw internalError(e);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The options and root files of a config file, with the diagnostics of reading it, as `tsc-ts --api`'s
|
|
70
|
+
* parseConfigFile returns them. A config file that can't be read gives one diagnostic and no files.
|
|
71
|
+
*/
|
|
72
|
+
export function parseConfigFile(configFileName: string, host: ProgramHost): ParsedConfigFile {
|
|
73
|
+
try {
|
|
74
|
+
const { config, errors } = parsedConfig(configFileName, host);
|
|
75
|
+
return {
|
|
76
|
+
options: compilerOptionsOf(config.options) as CompilerOptions,
|
|
77
|
+
fileNames: config.fileNames.slice(),
|
|
78
|
+
diagnostics: errors.map(diagnosticOf),
|
|
79
|
+
};
|
|
80
|
+
} catch (e) {
|
|
81
|
+
throw internalError(e);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function parsedConfig(
|
|
86
|
+
configFileName: string,
|
|
87
|
+
host: ProgramHost,
|
|
88
|
+
): { config: ParsedCommandLine; errors: CompilerDiagnostic[] } {
|
|
89
|
+
const currentDirectory = host.getCurrentDirectory();
|
|
90
|
+
const errors: CompilerDiagnostic[] = [];
|
|
91
|
+
const config =
|
|
92
|
+
new ConfigParser(new HostFileSystem(host), currentDirectory).parseConfigFile(
|
|
93
|
+
getNormalizedAbsolutePath(configFileName, currentDirectory),
|
|
94
|
+
undefined,
|
|
95
|
+
undefined,
|
|
96
|
+
errors,
|
|
97
|
+
) ??
|
|
98
|
+
new ParsedCommandLine(
|
|
99
|
+
{},
|
|
100
|
+
undefined,
|
|
101
|
+
[],
|
|
102
|
+
[],
|
|
103
|
+
undefined,
|
|
104
|
+
errors,
|
|
105
|
+
currentDirectory,
|
|
106
|
+
host.useCaseSensitiveFileNames(),
|
|
107
|
+
0,
|
|
108
|
+
);
|
|
109
|
+
return { config, errors: config.errors };
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function programOf(config: ParsedCommandLine, host: ProgramHost): Program {
|
|
113
|
+
const fs = new CachedFileSystem(new HostFileSystem(host));
|
|
114
|
+
const compilerHost = new LibraryCompilerHost(fs, host.getCurrentDirectory(), host.getDefaultLibraryDirectory());
|
|
115
|
+
return new LibraryProgram(new CheckedProgram(new CompilerProgram(config, compilerHost)));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* TypeScript's `getPreEmitDiagnostics`: the config file parsing, program, syntactic, global and semantic
|
|
120
|
+
* diagnostics of `program` (of `sourceFile` only, for the syntactic and semantic ones), sorted and without
|
|
121
|
+
* duplicates as tsc-ts sorts them. `program` must be one tsc-ts/api created.
|
|
122
|
+
*/
|
|
123
|
+
export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile): readonly Diagnostic[] {
|
|
124
|
+
if (!(program instanceof LibraryProgram))
|
|
125
|
+
throw new TypeError('getPreEmitDiagnostics takes a program created by tsc-ts/api');
|
|
126
|
+
return program.preEmitDiagnostics(sourceFile);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
class LibraryProgram implements Program {
|
|
130
|
+
private options: CompilerOptions | undefined = undefined;
|
|
131
|
+
private typeChecker: LibraryTypeChecker | undefined = undefined;
|
|
132
|
+
private disposed = false;
|
|
133
|
+
|
|
134
|
+
constructor(private readonly checked: CheckedProgram) {}
|
|
135
|
+
|
|
136
|
+
private get program(): CompilerProgram {
|
|
137
|
+
this.checkNotDisposed();
|
|
138
|
+
return this.checked.program;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
private checkNotDisposed(): void {
|
|
142
|
+
if (this.disposed) throw new DisposedProgramError();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
getCompilerOptions(): CompilerOptions {
|
|
146
|
+
try {
|
|
147
|
+
this.options ??= compilerOptionsOf(this.program.options) as CompilerOptions;
|
|
148
|
+
return this.options;
|
|
149
|
+
} catch (e) {
|
|
150
|
+
throw internalError(e);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
getSourceFile(fileName: string): SourceFile | undefined {
|
|
155
|
+
try {
|
|
156
|
+
return this.program.getSourceFile(fileName) as unknown as SourceFile | undefined;
|
|
157
|
+
} catch (e) {
|
|
158
|
+
throw internalError(e);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
getSourceFiles(): readonly SourceFile[] {
|
|
163
|
+
try {
|
|
164
|
+
return this.program.getSourceFiles() as unknown as readonly SourceFile[];
|
|
165
|
+
} catch (e) {
|
|
166
|
+
throw internalError(e);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getSourceFileNames(): readonly string[] {
|
|
171
|
+
try {
|
|
172
|
+
return this.program.getSourceFiles().map((file) => file.fileName);
|
|
173
|
+
} catch (e) {
|
|
174
|
+
throw internalError(e);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
getSourceFileMetadata(fileName: string): SourceFileMetadata | undefined {
|
|
179
|
+
try {
|
|
180
|
+
const program = this.program;
|
|
181
|
+
const file = program.getSourceFile(fileName);
|
|
182
|
+
if (file === undefined) return undefined;
|
|
183
|
+
const metadata = program.sourceFileMetadata(file.path);
|
|
184
|
+
return {
|
|
185
|
+
isDefaultLibrary: program.isSourceFileDefaultLibrary(file.path),
|
|
186
|
+
isFromExternalLibrary: program.isSourceFileFromExternalLibrary(file),
|
|
187
|
+
packageJsonType: metadata.packageJsonType,
|
|
188
|
+
packageJsonDirectory: metadata.packageJsonDirectory,
|
|
189
|
+
impliedNodeFormat: metadata.impliedNodeFormat,
|
|
190
|
+
};
|
|
191
|
+
} catch (e) {
|
|
192
|
+
throw internalError(e);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
isSourceFileDefaultLibrary(file: SourceFile): boolean {
|
|
197
|
+
try {
|
|
198
|
+
return this.program.isSourceFileDefaultLibrary((file as unknown as CompilerSourceFile).path);
|
|
199
|
+
} catch (e) {
|
|
200
|
+
throw internalError(e);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
isSourceFileFromExternalLibrary(file: SourceFile): boolean {
|
|
205
|
+
try {
|
|
206
|
+
return this.program.isSourceFileFromExternalLibrary(file as unknown as CompilerSourceFile);
|
|
207
|
+
} catch (e) {
|
|
208
|
+
throw internalError(e);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
getTypeChecker(): TypeChecker {
|
|
213
|
+
try {
|
|
214
|
+
if (this.typeChecker === undefined) {
|
|
215
|
+
this.checkNotDisposed();
|
|
216
|
+
this.typeChecker = new LibraryTypeChecker(this.checked.createChecker());
|
|
217
|
+
}
|
|
218
|
+
return this.typeChecker;
|
|
219
|
+
} catch (e) {
|
|
220
|
+
throw internalError(e);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
private diagnostics(kind: DiagnosticKind, file: SourceFile | undefined): readonly Diagnostic[] {
|
|
225
|
+
try {
|
|
226
|
+
this.checkNotDisposed();
|
|
227
|
+
return programDiagnostics(this.checked, kind, file as unknown as CompilerSourceFile | undefined).map(
|
|
228
|
+
diagnosticOf,
|
|
229
|
+
);
|
|
230
|
+
} catch (e) {
|
|
231
|
+
throw internalError(e);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
preEmitDiagnostics(file: SourceFile | undefined): readonly Diagnostic[] {
|
|
236
|
+
try {
|
|
237
|
+
this.checkNotDisposed();
|
|
238
|
+
const compilerFile = file as unknown as CompilerSourceFile | undefined;
|
|
239
|
+
const all: CompilerDiagnostic[] = [];
|
|
240
|
+
for (const kind of ['config', 'program', 'syntactic', 'global', 'semantic'] as const)
|
|
241
|
+
for (const d of programDiagnostics(
|
|
242
|
+
this.checked,
|
|
243
|
+
kind,
|
|
244
|
+
kind === 'syntactic' || kind === 'semantic' ? compilerFile : undefined,
|
|
245
|
+
))
|
|
246
|
+
all.push(d);
|
|
247
|
+
return sortAndDeduplicateDiagnostics(all).map(diagnosticOf);
|
|
248
|
+
} catch (e) {
|
|
249
|
+
throw internalError(e);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
getSyntacticDiagnostics(file?: SourceFile): readonly Diagnostic[] {
|
|
254
|
+
return this.diagnostics('syntactic', file);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
getBindDiagnostics(file?: SourceFile): readonly Diagnostic[] {
|
|
258
|
+
return this.diagnostics('bind', file);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
getSemanticDiagnostics(file?: SourceFile): readonly Diagnostic[] {
|
|
262
|
+
return this.diagnostics('semantic', file);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
getSuggestionDiagnostics(file?: SourceFile): readonly Diagnostic[] {
|
|
266
|
+
return this.diagnostics('suggestion', file);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
getDeclarationDiagnostics(file?: SourceFile): readonly Diagnostic[] {
|
|
270
|
+
return this.diagnostics('declaration', file);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
getProgramDiagnostics(): readonly Diagnostic[] {
|
|
274
|
+
return this.diagnostics('program', undefined);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
getGlobalDiagnostics(): readonly Diagnostic[] {
|
|
278
|
+
return this.diagnostics('global', undefined);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
getConfigFileParsingDiagnostics(): readonly Diagnostic[] {
|
|
282
|
+
return this.diagnostics('config', undefined);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
dispose(): void {
|
|
286
|
+
if (this.disposed) return;
|
|
287
|
+
this.typeChecker?.dispose();
|
|
288
|
+
this.typeChecker = undefined;
|
|
289
|
+
this.checked.disposeCheckers();
|
|
290
|
+
dropLibGlobals(this.checked.program.getSourceFiles());
|
|
291
|
+
this.disposed = true;
|
|
292
|
+
}
|
|
293
|
+
}
|
package/src/library/types.ts
CHANGED
|
@@ -52,6 +52,11 @@ export interface Symbol {
|
|
|
52
52
|
*/
|
|
53
53
|
export interface Type {
|
|
54
54
|
readonly flags: TypeFlags;
|
|
55
|
+
/**
|
|
56
|
+
* The object flags of an object type (TypeFlags.Object). Other types carry flags the checker keeps for
|
|
57
|
+
* itself, such as ObjectFlags.PrimitiveUnion, where TypeScript 7's API gives 0. Flags the checker
|
|
58
|
+
* caches, such as ObjectFlags.MembersResolved, are set as queries compute them.
|
|
59
|
+
*/
|
|
55
60
|
readonly objectFlags: ObjectFlags;
|
|
56
61
|
readonly id: number;
|
|
57
62
|
getSymbol(): Symbol | undefined;
|
|
@@ -146,6 +151,9 @@ export interface TupleType extends InterfaceType {
|
|
|
146
151
|
readonly readonly: boolean;
|
|
147
152
|
}
|
|
148
153
|
|
|
154
|
+
/** A reference to a tuple type (`[string, number]`): `getTarget()` is the TupleType (`isTupleType()`). */
|
|
155
|
+
export interface TupleTypeReference extends TypeReference {}
|
|
156
|
+
|
|
149
157
|
export interface UnionOrIntersectionType extends Type {}
|
|
150
158
|
|
|
151
159
|
export interface UnionType extends UnionOrIntersectionType {}
|
|
@@ -312,6 +320,7 @@ export interface TypeChecker {
|
|
|
312
320
|
/** The type of a symbol as narrowed at `location`. */
|
|
313
321
|
getTypeOfSymbolAtLocation(symbol: Symbol, location: Node): Type;
|
|
314
322
|
getTypeArguments(type: TypeReference): readonly Type[];
|
|
323
|
+
/** The target of an alias (SymbolFlags.Alias); throws an InternalCompilerError for any other symbol. */
|
|
315
324
|
getAliasedSymbol(symbol: Symbol): Symbol;
|
|
316
325
|
getPropertyOfType(type: Type, name: string): Symbol | undefined;
|
|
317
326
|
getPropertiesOfType(type: Type): readonly Symbol[];
|
|
@@ -333,8 +342,12 @@ export interface TypeChecker {
|
|
|
333
342
|
isArrayLikeType(type: Type): boolean;
|
|
334
343
|
isTypeAssignableTo(source: Type, target: Type): boolean;
|
|
335
344
|
resolveName(name: string, meaning: SymbolFlags, location?: Node, excludeGlobals?: boolean): Symbol | undefined;
|
|
345
|
+
/** The value `node` names where it is: `resolveName(node.text, SymbolFlags.Value | SymbolFlags.ExportValue, node)`. */
|
|
336
346
|
getResolvedSymbol(node: Identifier): Symbol | undefined;
|
|
337
|
-
/**
|
|
347
|
+
/**
|
|
348
|
+
* The text TypeScript 7's API gives for `type`, printed in `enclosingDeclaration` with `flags`; without
|
|
349
|
+
* flags, or with 0, with TypeFormatFlags.AllowUniqueESSymbolType and UseAliasDefinedOutsideCurrentScope.
|
|
350
|
+
*/
|
|
338
351
|
typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string;
|
|
339
352
|
getAnyType(): Type;
|
|
340
353
|
getUnknownType(): Type;
|