tsc-ts 0.0.3 → 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 +46 -0
- 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 +74 -0
- package/dist/api/library/ast.generated.d.ts +1145 -0
- package/dist/api/library/ast.generated.js +3 -0
- package/dist/api/library/ast.js +5 -0
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/compiler-options.generated.d.ts +108 -0
- package/dist/api/library/compiler-options.generated.js +3 -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/enums.generated.d.ts +891 -0
- package/dist/api/library/enums.generated.js +916 -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 +14 -0
- package/dist/api/library/index.js +15 -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/symbols.d.ts +8 -0
- package/dist/api/library/symbols.js +11 -0
- package/dist/api/library/types.d.ts +313 -0
- package/dist/api/library/types.js +6 -0
- package/package.json +22 -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 +1685 -0
- package/src/library/ast.ts +104 -0
- package/src/library/checker.ts +384 -0
- package/src/library/compiler-options.generated.ts +114 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/enums.generated.ts +1024 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +71 -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/symbols.ts +15 -0
- package/src/library/types.ts +359 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Errors of tsc-ts's public API.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A failure inside tsc-ts while it answered an API call: an exception the compiler threw, as tsgo panics.
|
|
5
|
+
* `cause` is the exception. The program's checker may be inconsistent after one; dispose of the program.
|
|
6
|
+
*/
|
|
7
|
+
export class InternalCompilerError extends Error {
|
|
8
|
+
constructor(cause: unknown) {
|
|
9
|
+
super('panic: ' + (cause instanceof Error ? cause.message : String(cause)), { cause });
|
|
10
|
+
this.name = 'InternalCompilerError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** A call on a program, or on its checker, after `dispose()`. */
|
|
15
|
+
export class DisposedProgramError extends Error {
|
|
16
|
+
constructor() {
|
|
17
|
+
super('the program is disposed');
|
|
18
|
+
this.name = 'DisposedProgramError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** `e` as an InternalCompilerError; errors of using a disposed program are rethrown as they are. */
|
|
23
|
+
export function internalError(e: unknown): Error {
|
|
24
|
+
if (e instanceof InternalCompilerError || e instanceof DisposedProgramError) return e;
|
|
25
|
+
return new InternalCompilerError(e);
|
|
26
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// The file system a program of tsc-ts's public API reads through its host.
|
|
2
|
+
|
|
3
|
+
import { diskEntries, diskReadFile, diskRealpath, diskStat } from './disk.js';
|
|
4
|
+
import { ParseOptions, ScriptKind, type ExternalModuleIndicatorOptions, type SourceFile } from '../compiler/ast.js';
|
|
5
|
+
import { CompilerHost } from '../compiler/file-loader.js';
|
|
6
|
+
import { DirectoryEntries, FileSystem } from '../compiler/file-system.js';
|
|
7
|
+
import { takePreparedFile } from '../compiler/parallel-parse.js';
|
|
8
|
+
import { parseSourceFile } from '../compiler/parser.js';
|
|
9
|
+
import type { ProgramHost } from './types.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The host's answers, and the disk's where a callback is missing or answers undefined, as `tsc-ts --api`
|
|
13
|
+
* reads through its client's callbacks. `readFile` answering null means the file doesn't exist.
|
|
14
|
+
*/
|
|
15
|
+
export class HostFileSystem extends FileSystem {
|
|
16
|
+
constructor(private readonly host: ProgramHost) {
|
|
17
|
+
super(host.useCaseSensitiveFileNames());
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
fileExists(path: string): boolean {
|
|
21
|
+
const answer = this.host.fileExists?.(path);
|
|
22
|
+
return answer ?? diskStat(path)?.isDirectory === false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
directoryExists(path: string): boolean {
|
|
26
|
+
const answer = this.host.directoryExists?.(path);
|
|
27
|
+
return answer ?? diskStat(path)?.isDirectory === true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
readFile(path: string): string | undefined {
|
|
31
|
+
const answer = this.host.readFile?.(path);
|
|
32
|
+
if (answer === null) return undefined;
|
|
33
|
+
return answer ?? diskReadFile(path);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getAccessibleEntries(path: string): DirectoryEntries {
|
|
37
|
+
const entries = this.host.getAccessibleEntries?.(path) ?? diskEntries(path);
|
|
38
|
+
return new DirectoryEntries(entries.files.slice(), entries.directories.slice(), undefined);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
realpath(path: string): string {
|
|
42
|
+
return this.host.realpath?.(path) ?? diskRealpath(path);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The compiler host of a program of tsc-ts's public API. A file that parse threads prepared, reading the disk, is
|
|
48
|
+
* taken only when the host gives the same text for it; the program parses the host's text otherwise.
|
|
49
|
+
*/
|
|
50
|
+
export class LibraryCompilerHost extends CompilerHost {
|
|
51
|
+
getSourceFile(
|
|
52
|
+
fileName: string,
|
|
53
|
+
path: string,
|
|
54
|
+
externalModuleIndicatorOptions: ExternalModuleIndicatorOptions,
|
|
55
|
+
): SourceFile | undefined {
|
|
56
|
+
const text = this.readFile(fileName);
|
|
57
|
+
if (text === undefined) return undefined;
|
|
58
|
+
return (
|
|
59
|
+
takePreparedFile(fileName, path, externalModuleIndicatorOptions, text) ??
|
|
60
|
+
parseSourceFile(fileName, text, new ParseOptions(path, ScriptKind.Unknown, externalModuleIndicatorOptions))
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// tsc-ts's public API (`tsc-ts/api`): the types of programs, checkers, nodes, symbols, types and
|
|
2
|
+
// signatures, and the enums that number their kinds and flags as TypeScript 7's API does.
|
|
3
|
+
|
|
4
|
+
export * from './ast.js';
|
|
5
|
+
export * from './enums.generated.js';
|
|
6
|
+
export type { CompilerOptions } from './compiler-options.generated.js';
|
|
7
|
+
export { symbolName } from './symbols.js';
|
|
8
|
+
export { createProgram, createProgramFromConfigFile, getPreEmitDiagnostics, parseConfigFile } from './program.js';
|
|
9
|
+
export { DisposedProgramError, InternalCompilerError } from './errors.js';
|
|
10
|
+
export { parseSourceFile, type ParseSourceFileOptions } from './parse.js';
|
|
11
|
+
export {
|
|
12
|
+
canHaveModifiers,
|
|
13
|
+
flattenDiagnosticMessageText,
|
|
14
|
+
forEachChild,
|
|
15
|
+
getCombinedModifierFlags,
|
|
16
|
+
getCombinedNodeFlags,
|
|
17
|
+
getJSDoc,
|
|
18
|
+
getLineAndCharacterOfPosition,
|
|
19
|
+
getLineStarts,
|
|
20
|
+
getModifiers,
|
|
21
|
+
getPositionOfLineAndCharacter,
|
|
22
|
+
getSourceFileOfNode,
|
|
23
|
+
getTextOfNode,
|
|
24
|
+
tokenStartOfNode,
|
|
25
|
+
tokenToString,
|
|
26
|
+
walkPreorder,
|
|
27
|
+
} from './nodes.js';
|
|
28
|
+
export type {
|
|
29
|
+
__String,
|
|
30
|
+
BigIntLiteralType,
|
|
31
|
+
BooleanLiteralType,
|
|
32
|
+
ConditionalType,
|
|
33
|
+
CreateProgramOptions,
|
|
34
|
+
Diagnostic,
|
|
35
|
+
FileSystemEntries,
|
|
36
|
+
FreshableType,
|
|
37
|
+
IndexedAccessType,
|
|
38
|
+
IndexInfo,
|
|
39
|
+
IndexType,
|
|
40
|
+
InterfaceType,
|
|
41
|
+
IntersectionType,
|
|
42
|
+
IntrinsicType,
|
|
43
|
+
LiteralType,
|
|
44
|
+
NumberLiteralType,
|
|
45
|
+
ObjectType,
|
|
46
|
+
ParsedConfigFile,
|
|
47
|
+
Program,
|
|
48
|
+
ProgramHost,
|
|
49
|
+
Signature,
|
|
50
|
+
SourceFileMetadata,
|
|
51
|
+
StringLiteralType,
|
|
52
|
+
StringMappingType,
|
|
53
|
+
SubstitutionType,
|
|
54
|
+
Symbol,
|
|
55
|
+
TemplateLiteralType,
|
|
56
|
+
TupleType,
|
|
57
|
+
TupleTypeReference,
|
|
58
|
+
Type,
|
|
59
|
+
TypeChecker,
|
|
60
|
+
TypeParameter,
|
|
61
|
+
TypePredicate,
|
|
62
|
+
TypeReference,
|
|
63
|
+
UnionOrIntersectionType,
|
|
64
|
+
UnionType,
|
|
65
|
+
} from './types.js';
|
|
66
|
+
|
|
67
|
+
/** The kind of an index signature's key, as TypeScript 5 numbers it. */
|
|
68
|
+
export enum IndexKind {
|
|
69
|
+
String = 0,
|
|
70
|
+
Number = 1,
|
|
71
|
+
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
// Node functions of tsc-ts's public API, with TypeScript 7's behavior.
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
getModifiers as compilerGetModifiers,
|
|
5
|
+
type Node as CompilerNode,
|
|
6
|
+
type ModifierList as CompilerModifierList,
|
|
7
|
+
type NodeList as CompilerNodeList,
|
|
8
|
+
NodeVisitor,
|
|
9
|
+
type SourceFile as CompilerSourceFile,
|
|
10
|
+
} from '../compiler/ast.js';
|
|
11
|
+
import { getTokenPosOfNode } from '../compiler/astnav.js';
|
|
12
|
+
import {
|
|
13
|
+
getCombinedModifierFlags as compilerModifierFlags,
|
|
14
|
+
getCombinedNodeFlags as compilerNodeFlags,
|
|
15
|
+
getSourceFileOfNode as compilerSourceFileOfNode,
|
|
16
|
+
} from '../compiler/binder-utilities.js';
|
|
17
|
+
import { getJSDoc as compilerGetJSDoc } from '../compiler/parser.js';
|
|
18
|
+
import { computeLineOfPosition, tokenToString as compilerTokenToString } from '../compiler/scanner.js';
|
|
19
|
+
import { SyntaxKind as CompilerSyntaxKind } from '../compiler/syntax-kind.js';
|
|
20
|
+
import type { JSDoc, LineAndCharacter, ModifierList, Node, NodeList, SourceFile } from './ast.js';
|
|
21
|
+
import type { ModifierFlags, NodeFlags, SyntaxKind } from './enums.generated.js';
|
|
22
|
+
import type { Diagnostic } from './types.js';
|
|
23
|
+
|
|
24
|
+
const compilerNode = (node: Node): CompilerNode => node as unknown as CompilerNode;
|
|
25
|
+
|
|
26
|
+
/** Visits the children of a node; stops at the first callback that answers a truthy value. */
|
|
27
|
+
class CallbackVisitor extends NodeVisitor {
|
|
28
|
+
result: unknown = undefined;
|
|
29
|
+
|
|
30
|
+
constructor(
|
|
31
|
+
private readonly cbNode: (node: Node) => unknown,
|
|
32
|
+
private readonly cbNodes: ((nodes: NodeList) => unknown) | undefined,
|
|
33
|
+
) {
|
|
34
|
+
super();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
visitNode(node: CompilerNode): boolean {
|
|
38
|
+
const result = this.cbNode(node as unknown as Node);
|
|
39
|
+
if (!result) return false;
|
|
40
|
+
this.result = result;
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
visitList(list: CompilerNodeList): boolean {
|
|
45
|
+
if (this.cbNodes === undefined) return super.visitList(list);
|
|
46
|
+
const result = this.cbNodes(list as unknown as NodeList);
|
|
47
|
+
if (!result) return false;
|
|
48
|
+
this.result = result;
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
visitModifiers(list: CompilerModifierList): boolean {
|
|
53
|
+
return this.visitList(list);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Calls `cbNode` for each child of `node`, in source order, or `cbNodes` for each list of children when it
|
|
59
|
+
* is given; returns the first truthy value a callback answers. JSDoc is not visited (`getJSDoc`).
|
|
60
|
+
*/
|
|
61
|
+
export function forEachChild<T>(
|
|
62
|
+
node: Node,
|
|
63
|
+
cbNode: (node: Node) => T | undefined,
|
|
64
|
+
cbNodes?: (nodes: NodeList) => T | undefined,
|
|
65
|
+
): T | undefined {
|
|
66
|
+
const visitor = new CallbackVisitor(cbNode, cbNodes);
|
|
67
|
+
compilerNode(node).forEachChild(visitor);
|
|
68
|
+
return visitor.result as T | undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Collects the children of a node, in source order. */
|
|
72
|
+
class ChildCollector extends NodeVisitor {
|
|
73
|
+
readonly children: CompilerNode[] = [];
|
|
74
|
+
|
|
75
|
+
visitNode(node: CompilerNode): boolean {
|
|
76
|
+
this.children.push(node);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Visits `root` and its descendants in preorder, with `depth` the number of levels below `root`, without
|
|
83
|
+
* recursion. The callback may answer 'skip' to leave a node's children unvisited, or 'stop' to end the walk.
|
|
84
|
+
*/
|
|
85
|
+
export function walkPreorder(root: Node, cb: (node: Node, depth: number) => void | 'skip' | 'stop'): void {
|
|
86
|
+
const stack: CompilerNode[] = [compilerNode(root)];
|
|
87
|
+
const depths: number[] = [0];
|
|
88
|
+
const collector = new ChildCollector();
|
|
89
|
+
// Declared outside the loop: scriptc compiles the node's conversion to the public Node from a variable there.
|
|
90
|
+
let node: CompilerNode;
|
|
91
|
+
while (stack.length > 0) {
|
|
92
|
+
node = stack.pop()!;
|
|
93
|
+
const depth = depths.pop()!;
|
|
94
|
+
const verdict = cb(node as unknown as Node, depth);
|
|
95
|
+
if (verdict === 'stop') return;
|
|
96
|
+
if (verdict === 'skip') continue;
|
|
97
|
+
collector.children.length = 0;
|
|
98
|
+
node.forEachChild(collector);
|
|
99
|
+
const children = collector.children;
|
|
100
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
101
|
+
stack.push(children[i]!);
|
|
102
|
+
depths.push(depth + 1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* The start of the first token of `node`, after its leading trivia; with `includeJSDoc`, the start of its
|
|
109
|
+
* first JSDoc comment where it has one.
|
|
110
|
+
*/
|
|
111
|
+
export function tokenStartOfNode(node: Node, includeJSDoc = false): number {
|
|
112
|
+
const file = compilerSourceFileOfNode(compilerNode(node));
|
|
113
|
+
return getTokenPosOfNode(compilerNode(node), file, includeJSDoc);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** The source file `node` is in: the root of its parents. */
|
|
117
|
+
export function getSourceFileOfNode(node: Node): SourceFile {
|
|
118
|
+
let current = node;
|
|
119
|
+
while (current.parent !== undefined) current = current.parent;
|
|
120
|
+
return current as SourceFile;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The text of `node` in its source file, from the start of its first token (`tokenStartOfNode`) to its end:
|
|
125
|
+
* TypeScript's `node.getText()`.
|
|
126
|
+
*/
|
|
127
|
+
export function getTextOfNode(node: Node): string {
|
|
128
|
+
const file = compilerSourceFileOfNode(compilerNode(node));
|
|
129
|
+
return file.text.substring(getTokenPosOfNode(compilerNode(node), file, false), node.end);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** The JSDoc comments of `node`, as the JSDoc nodes TypeScript 7 attaches to it (parsed on first use). */
|
|
133
|
+
export function getJSDoc(node: Node): readonly JSDoc[] {
|
|
134
|
+
const file = compilerSourceFileOfNode(compilerNode(node));
|
|
135
|
+
return compilerGetJSDoc(file, compilerNode(node)) as unknown as readonly JSDoc[];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** The modifiers of a declaration, decorators included, as TypeScript 7 keeps them. */
|
|
139
|
+
export function getModifiers(node: Node): ModifierList | undefined {
|
|
140
|
+
return compilerGetModifiers(compilerNode(node)) as unknown as ModifierList | undefined;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/** Whether a node of this kind can have modifiers (TypeScript 7's CanHaveModifiers). */
|
|
144
|
+
export function canHaveModifiers(node: Node): boolean {
|
|
145
|
+
switch (compilerNode(node).kind) {
|
|
146
|
+
case CompilerSyntaxKind.TypeParameter:
|
|
147
|
+
case CompilerSyntaxKind.Parameter:
|
|
148
|
+
case CompilerSyntaxKind.PropertySignature:
|
|
149
|
+
case CompilerSyntaxKind.PropertyDeclaration:
|
|
150
|
+
case CompilerSyntaxKind.MethodSignature:
|
|
151
|
+
case CompilerSyntaxKind.MethodDeclaration:
|
|
152
|
+
case CompilerSyntaxKind.Constructor:
|
|
153
|
+
case CompilerSyntaxKind.GetAccessor:
|
|
154
|
+
case CompilerSyntaxKind.SetAccessor:
|
|
155
|
+
case CompilerSyntaxKind.IndexSignature:
|
|
156
|
+
case CompilerSyntaxKind.ConstructorType:
|
|
157
|
+
case CompilerSyntaxKind.FunctionExpression:
|
|
158
|
+
case CompilerSyntaxKind.ArrowFunction:
|
|
159
|
+
case CompilerSyntaxKind.ClassExpression:
|
|
160
|
+
case CompilerSyntaxKind.VariableStatement:
|
|
161
|
+
case CompilerSyntaxKind.FunctionDeclaration:
|
|
162
|
+
case CompilerSyntaxKind.ClassDeclaration:
|
|
163
|
+
case CompilerSyntaxKind.InterfaceDeclaration:
|
|
164
|
+
case CompilerSyntaxKind.TypeAliasDeclaration:
|
|
165
|
+
case CompilerSyntaxKind.EnumDeclaration:
|
|
166
|
+
case CompilerSyntaxKind.ModuleDeclaration:
|
|
167
|
+
case CompilerSyntaxKind.ImportEqualsDeclaration:
|
|
168
|
+
case CompilerSyntaxKind.ImportDeclaration:
|
|
169
|
+
case CompilerSyntaxKind.JSImportDeclaration:
|
|
170
|
+
case CompilerSyntaxKind.ExportAssignment:
|
|
171
|
+
case CompilerSyntaxKind.ExportDeclaration:
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The modifier flags of a declaration with those of the declarations it is part of: for a binding element,
|
|
179
|
+
* of the declaration of its outermost pattern; for a variable declaration, of its list and statement.
|
|
180
|
+
*/
|
|
181
|
+
export function getCombinedModifierFlags(node: Node): ModifierFlags {
|
|
182
|
+
return compilerModifierFlags(compilerNode(node)) as number as ModifierFlags;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/** The node flags of a declaration with those of the declarations it is part of, as getCombinedModifierFlags. */
|
|
186
|
+
export function getCombinedNodeFlags(node: Node): NodeFlags {
|
|
187
|
+
return compilerNodeFlags(compilerNode(node)) as number as NodeFlags;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/** The UTF-16 offset at which each line of the file starts. */
|
|
191
|
+
export function getLineStarts(file: SourceFile): readonly number[] {
|
|
192
|
+
return (file as unknown as CompilerSourceFile).lineStarts();
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/** The 0-based line and character of a UTF-16 position in the file. */
|
|
196
|
+
export function getLineAndCharacterOfPosition(file: SourceFile, position: number): LineAndCharacter {
|
|
197
|
+
const lineStarts = getLineStarts(file);
|
|
198
|
+
const line = computeLineOfPosition(lineStarts, position);
|
|
199
|
+
return { line, character: position - lineStarts[line]! };
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/** The UTF-16 position of a 0-based line and character in the file. */
|
|
203
|
+
export function getPositionOfLineAndCharacter(file: SourceFile, line: number, character: number): number {
|
|
204
|
+
return getLineStarts(file)[line]! + character;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/** The text of a punctuation or keyword token kind, or undefined for other kinds. */
|
|
208
|
+
export function tokenToString(kind: SyntaxKind): string | undefined {
|
|
209
|
+
const text = compilerTokenToString(kind as number as CompilerSyntaxKind);
|
|
210
|
+
return text === '' ? undefined : text;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* A diagnostic's text with its chain of messages, each on its own line, indented two spaces per level of
|
|
215
|
+
* the chain, as TypeScript prints them.
|
|
216
|
+
*/
|
|
217
|
+
export function flattenDiagnosticMessageText(
|
|
218
|
+
diagnostic: Diagnostic | string | undefined,
|
|
219
|
+
newLine: string,
|
|
220
|
+
indent = 0,
|
|
221
|
+
): string {
|
|
222
|
+
if (diagnostic === undefined) return '';
|
|
223
|
+
if (typeof diagnostic === 'string') return diagnostic;
|
|
224
|
+
let result = '';
|
|
225
|
+
if (indent > 0) {
|
|
226
|
+
result += newLine;
|
|
227
|
+
for (let i = 0; i < indent; i++) result += ' ';
|
|
228
|
+
}
|
|
229
|
+
result += diagnostic.text;
|
|
230
|
+
for (const child of diagnostic.messageChain) result += flattenDiagnosticMessageText(child, newLine, indent + 1);
|
|
231
|
+
return result;
|
|
232
|
+
}
|