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,29 @@
|
|
|
1
|
+
import { ModifierList, type Node, NodeList } from '../ast.js';
|
|
2
|
+
import type { EmitContext } from '../printer/emit-context.js';
|
|
3
|
+
import type { NodeFactory } from '../printer/factory.js';
|
|
4
|
+
export declare abstract class VisitorHooks {
|
|
5
|
+
readonly context: EmitContext;
|
|
6
|
+
readonly factory: NodeFactory;
|
|
7
|
+
constructor(context: EmitContext);
|
|
8
|
+
/** Visits one node: return it, a replacement, a `SyntaxList` of several nodes, or undefined to remove it. */
|
|
9
|
+
abstract visit(node: Node): Node | undefined;
|
|
10
|
+
abstract visitEachChild(node: Node): Node;
|
|
11
|
+
visitNode(node: Node | undefined): Node | undefined;
|
|
12
|
+
visitToken(node: Node | undefined): Node | undefined;
|
|
13
|
+
/** The visited nodes, or `nodes` itself if nothing changed. */
|
|
14
|
+
visitArray(nodes: Node[]): Node[];
|
|
15
|
+
visitNodes(list: NodeList | undefined): NodeList | undefined;
|
|
16
|
+
visitModifiers(list: ModifierList | undefined): ModifierList | undefined;
|
|
17
|
+
liftToBlock(node: Node | undefined): Node;
|
|
18
|
+
/** A visited statement, as a block if it became several, or undefined if removed. */
|
|
19
|
+
visitStatement(node: Node | undefined): Node | undefined;
|
|
20
|
+
/** The body of an `if`, `with` or labeled statement; an elided statement becomes `;`. */
|
|
21
|
+
visitEmbeddedStatement(node: Node | undefined): Node | undefined;
|
|
22
|
+
visitIterationBody(node: Node | undefined): Node | undefined;
|
|
23
|
+
visitParameters(list: NodeList | undefined): NodeList | undefined;
|
|
24
|
+
visitFunctionBody(node: Node | undefined): Node | undefined;
|
|
25
|
+
visitTopLevelStatements(list: NodeList | undefined): NodeList | undefined;
|
|
26
|
+
/** Moves initializers and binding patterns of parameters into the body when temporaries were hoisted. */
|
|
27
|
+
private addDefaultValueAssignments;
|
|
28
|
+
private addDefaultValueAssignment;
|
|
29
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// Child traversal for transforms: visiting nodes and lists, with hoisted declarations tracked
|
|
2
|
+
// in the emit context's variable environments as tsgo's emit-context visitors do.
|
|
3
|
+
import { BindingPattern, Block, EmptyStatement, NodeList, NotEmittedStatement, ParameterDeclaration, SyntaxList, } from '../ast.js';
|
|
4
|
+
export class VisitorHooks {
|
|
5
|
+
context;
|
|
6
|
+
factory;
|
|
7
|
+
constructor(context) {
|
|
8
|
+
this.context = context;
|
|
9
|
+
this.factory = context.factory;
|
|
10
|
+
}
|
|
11
|
+
visitNode(node) {
|
|
12
|
+
if (node === undefined)
|
|
13
|
+
return undefined;
|
|
14
|
+
const visited = this.visit(node);
|
|
15
|
+
if (visited instanceof SyntaxList) {
|
|
16
|
+
if (visited.children.length !== 1)
|
|
17
|
+
throw new Error('Expected only a single node to be written to output');
|
|
18
|
+
return visited.children[0];
|
|
19
|
+
}
|
|
20
|
+
return visited;
|
|
21
|
+
}
|
|
22
|
+
visitToken(node) {
|
|
23
|
+
return this.visitNode(node);
|
|
24
|
+
}
|
|
25
|
+
/** The visited nodes, or `nodes` itself if nothing changed. */
|
|
26
|
+
visitArray(nodes) {
|
|
27
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
28
|
+
const node = nodes[i];
|
|
29
|
+
let visited = this.visit(node);
|
|
30
|
+
if (visited === node)
|
|
31
|
+
continue;
|
|
32
|
+
const updated = nodes.slice(0, i);
|
|
33
|
+
for (;;) {
|
|
34
|
+
if (visited instanceof SyntaxList)
|
|
35
|
+
for (let j = 0; j < visited.children.length; j++)
|
|
36
|
+
updated.push(visited.children[j]);
|
|
37
|
+
else if (visited !== undefined)
|
|
38
|
+
updated.push(visited);
|
|
39
|
+
if (++i >= nodes.length)
|
|
40
|
+
break;
|
|
41
|
+
visited = this.visit(nodes[i]);
|
|
42
|
+
}
|
|
43
|
+
return updated;
|
|
44
|
+
}
|
|
45
|
+
return nodes;
|
|
46
|
+
}
|
|
47
|
+
visitNodes(list) {
|
|
48
|
+
if (list === undefined)
|
|
49
|
+
return undefined;
|
|
50
|
+
const nodes = this.visitArray(list.nodes);
|
|
51
|
+
return nodes === list.nodes ? list : new NodeList(list.pos, list.end, nodes);
|
|
52
|
+
}
|
|
53
|
+
visitModifiers(list) {
|
|
54
|
+
if (list === undefined)
|
|
55
|
+
return undefined;
|
|
56
|
+
const nodes = this.visitArray(list.nodes);
|
|
57
|
+
if (nodes === list.nodes)
|
|
58
|
+
return list;
|
|
59
|
+
const updated = this.factory.createModifierList(nodes);
|
|
60
|
+
updated.pos = list.pos;
|
|
61
|
+
updated.end = list.end;
|
|
62
|
+
return updated;
|
|
63
|
+
}
|
|
64
|
+
liftToBlock(node) {
|
|
65
|
+
if (node instanceof SyntaxList) {
|
|
66
|
+
if (node.children.length === 1)
|
|
67
|
+
return node.children[0];
|
|
68
|
+
return this.factory.createBlock(node.children, true);
|
|
69
|
+
}
|
|
70
|
+
if (node === undefined)
|
|
71
|
+
return this.factory.createBlock([], true);
|
|
72
|
+
return node;
|
|
73
|
+
}
|
|
74
|
+
/** A visited statement, as a block if it became several, or undefined if removed. */
|
|
75
|
+
visitStatement(node) {
|
|
76
|
+
if (node === undefined)
|
|
77
|
+
return undefined;
|
|
78
|
+
const visited = this.visit(node);
|
|
79
|
+
return visited === undefined ? undefined : this.liftToBlock(visited);
|
|
80
|
+
}
|
|
81
|
+
/** The body of an `if`, `with` or labeled statement; an elided statement becomes `;`. */
|
|
82
|
+
visitEmbeddedStatement(node) {
|
|
83
|
+
if (node === undefined)
|
|
84
|
+
return undefined;
|
|
85
|
+
const visited = this.visit(node);
|
|
86
|
+
const statement = visited === undefined ? undefined : this.liftToBlock(visited);
|
|
87
|
+
if (statement === undefined || statement instanceof NotEmittedStatement) {
|
|
88
|
+
const empty = this.factory.created(new EmptyStatement());
|
|
89
|
+
empty.pos = node.pos;
|
|
90
|
+
empty.end = node.end;
|
|
91
|
+
this.context.setOriginal(empty, node);
|
|
92
|
+
this.context.assignCommentRange(empty, node);
|
|
93
|
+
return empty;
|
|
94
|
+
}
|
|
95
|
+
return statement;
|
|
96
|
+
}
|
|
97
|
+
visitIterationBody(node) {
|
|
98
|
+
if (node === undefined)
|
|
99
|
+
return undefined;
|
|
100
|
+
const context = this.context;
|
|
101
|
+
context.startLexicalEnvironment();
|
|
102
|
+
const updated = this.visitEmbeddedStatement(node);
|
|
103
|
+
const declarations = context.endLexicalEnvironment();
|
|
104
|
+
if (declarations.length === 0)
|
|
105
|
+
return updated;
|
|
106
|
+
if (updated instanceof Block) {
|
|
107
|
+
const statements = declarations.concat(updated.statements.nodes);
|
|
108
|
+
return this.factory.updateBlock(updated, new NodeList(updated.statements.pos, updated.statements.end, statements), updated.multiLine);
|
|
109
|
+
}
|
|
110
|
+
declarations.push(updated);
|
|
111
|
+
return this.factory.createBlock(declarations, true);
|
|
112
|
+
}
|
|
113
|
+
visitParameters(list) {
|
|
114
|
+
const context = this.context;
|
|
115
|
+
context.startVariableEnvironment();
|
|
116
|
+
const flags = context.enterParameters();
|
|
117
|
+
let result = this.visitNodes(list);
|
|
118
|
+
if (context.exitParameters(flags) && result !== undefined)
|
|
119
|
+
result = this.addDefaultValueAssignments(result);
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
visitFunctionBody(node) {
|
|
123
|
+
const updated = this.visitNode(node);
|
|
124
|
+
const declarations = this.context.endVariableEnvironment();
|
|
125
|
+
if (declarations.length === 0)
|
|
126
|
+
return updated;
|
|
127
|
+
const factory = this.factory;
|
|
128
|
+
if (updated === undefined)
|
|
129
|
+
return factory.createBlock(declarations, true);
|
|
130
|
+
if (!(updated instanceof Block))
|
|
131
|
+
return factory.createBlock(this.context.mergeEnvironment([factory.createReturnStatement(updated)], declarations), false);
|
|
132
|
+
return factory.updateBlock(updated, this.context.mergeEnvironmentList(updated.statements, declarations), updated.multiLine);
|
|
133
|
+
}
|
|
134
|
+
visitTopLevelStatements(list) {
|
|
135
|
+
const context = this.context;
|
|
136
|
+
context.startVariableEnvironment();
|
|
137
|
+
const visited = this.visitNodes(list);
|
|
138
|
+
if (visited === undefined)
|
|
139
|
+
return undefined;
|
|
140
|
+
return context.mergeEnvironmentList(visited, context.endVariableEnvironment());
|
|
141
|
+
}
|
|
142
|
+
/** Moves initializers and binding patterns of parameters into the body when temporaries were hoisted. */
|
|
143
|
+
addDefaultValueAssignments(list) {
|
|
144
|
+
let result = undefined;
|
|
145
|
+
for (let i = 0; i < list.nodes.length; i++) {
|
|
146
|
+
const parameter = list.nodes[i];
|
|
147
|
+
if (!(parameter instanceof ParameterDeclaration))
|
|
148
|
+
continue;
|
|
149
|
+
const updated = this.addDefaultValueAssignment(parameter);
|
|
150
|
+
if (updated !== parameter) {
|
|
151
|
+
if (result === undefined)
|
|
152
|
+
result = list.nodes.slice();
|
|
153
|
+
result[i] = updated;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return result === undefined ? list : new NodeList(list.pos, list.end, result);
|
|
157
|
+
}
|
|
158
|
+
addDefaultValueAssignment(parameter) {
|
|
159
|
+
if (parameter.dotDotDotToken !== undefined)
|
|
160
|
+
return parameter;
|
|
161
|
+
const factory = this.factory;
|
|
162
|
+
const context = this.context;
|
|
163
|
+
const name = parameter.name;
|
|
164
|
+
if (name instanceof BindingPattern) {
|
|
165
|
+
const temp = factory.createGeneratedNameForNode(parameter, 0, '', '');
|
|
166
|
+
const initializer = parameter.initializer === undefined
|
|
167
|
+
? factory.createGeneratedNameForNode(parameter, 0, '', '')
|
|
168
|
+
: factory.createConditionalExpression(factory.createStrictEquality(factory.createGeneratedNameForNode(parameter, 0, '', ''), factory.createVoidZero()), parameter.initializer, factory.createGeneratedNameForNode(parameter, 0, '', ''));
|
|
169
|
+
context.addInitializationStatement(factory.createVariableStatement(undefined, factory.createVariableDeclarationList(factory.createNodeList([factory.createVariableDeclaration(name, undefined, parameter.type, initializer)]), 0)));
|
|
170
|
+
return factory.updateParameterDeclaration(parameter, parameter.modifiers, parameter.dotDotDotToken, temp, parameter.questionToken, parameter.type, undefined);
|
|
171
|
+
}
|
|
172
|
+
const initializer = parameter.initializer;
|
|
173
|
+
if (initializer === undefined)
|
|
174
|
+
return parameter;
|
|
175
|
+
context.addEmitFlags(initializer, 12 /* EmitFlags.NoSourceMap */ | 384 /* EmitFlags.NoComments */);
|
|
176
|
+
const nameClone = factory.cloneNode(name, name.deepClone());
|
|
177
|
+
context.addEmitFlags(nameClone, 12 /* EmitFlags.NoSourceMap */);
|
|
178
|
+
const assignment = factory.createAssignment(nameClone, initializer);
|
|
179
|
+
assignment.pos = parameter.pos;
|
|
180
|
+
assignment.end = parameter.end;
|
|
181
|
+
context.addEmitFlags(assignment, 384 /* EmitFlags.NoComments */);
|
|
182
|
+
const block = factory.createBlock([factory.createExpressionStatement(assignment)], false);
|
|
183
|
+
block.pos = parameter.pos;
|
|
184
|
+
block.end = parameter.end;
|
|
185
|
+
context.addEmitFlags(block, 1 /* EmitFlags.SingleLine */ | 8 /* EmitFlags.NoTrailingSourceMap */ | 96 /* EmitFlags.NoTokenSourceMaps */ | 384 /* EmitFlags.NoComments */);
|
|
186
|
+
context.addInitializationStatement(factory.createIfStatement(factory.createTypeCheck(factory.cloneNode(name, name.deepClone()), 'undefined'), block, undefined));
|
|
187
|
+
return factory.updateParameterDeclaration(parameter, parameter.modifiers, parameter.dotDotDotToken, name, parameter.questionToken, parameter.type, undefined);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tsconfig.json: options, `extends`, `files`/`include`/`exclude` and project references, with tsgo's diagnostics.
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* const errors: Diagnostic[] = [];
|
|
6
|
+
* const config = new ConfigParser(fs, '/app').parseConfigFile('/app/tsconfig.json', {}, undefined, errors);
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
import { ObjectLiteralExpression, PropertyAssignment, StringLiteral, type Node, type SourceFile } from './ast.js';
|
|
10
|
+
import { Diagnostic, type DiagnosticMessage } from './diagnostics.js';
|
|
11
|
+
import type { FileSystem } from './file-system.js';
|
|
12
|
+
import { type OptionDeclaration } from './option-declarations.js';
|
|
13
|
+
import { type CompilerOptions, type OptionValue, type TypeAcquisition } from './options.js';
|
|
14
|
+
import { type OutputPathsHost } from './output-paths.js';
|
|
15
|
+
/** A value of a config file as JSON: `null`, a primitive, an array or an object. */
|
|
16
|
+
export type JsonValue = null | boolean | number | string | JsonArray | JsonObject;
|
|
17
|
+
export declare class JsonArray {
|
|
18
|
+
readonly items: JsonValue[];
|
|
19
|
+
/** A non-empty array whose items were all `null` or invalid, which tsgo treats like a missing array. */
|
|
20
|
+
readonly dropped: boolean;
|
|
21
|
+
constructor(items: JsonValue[],
|
|
22
|
+
/** A non-empty array whose items were all `null` or invalid, which tsgo treats like a missing array. */
|
|
23
|
+
dropped?: boolean);
|
|
24
|
+
}
|
|
25
|
+
/** Entries in source order; a repeated key keeps its first position and its last value. */
|
|
26
|
+
export declare class JsonObject {
|
|
27
|
+
readonly entries: Map<string, JsonValue>;
|
|
28
|
+
}
|
|
29
|
+
/** Extensions of root files, in priority groups. */
|
|
30
|
+
export declare function getSupportedExtensions(options: CompilerOptions): readonly (readonly string[])[];
|
|
31
|
+
export declare function getSupportedExtensionsWithJsonIfResolveJsonModule(options: CompilerOptions): readonly (readonly string[])[];
|
|
32
|
+
export declare function flattenExtensions(groups: readonly (readonly string[])[]): string[];
|
|
33
|
+
export declare class ProjectReference {
|
|
34
|
+
/** Absolute path of the referenced config file or directory. */
|
|
35
|
+
readonly path: string;
|
|
36
|
+
readonly originalPath: string;
|
|
37
|
+
readonly circular: boolean;
|
|
38
|
+
constructor(
|
|
39
|
+
/** Absolute path of the referenced config file or directory. */
|
|
40
|
+
path: string, originalPath: string, circular: boolean);
|
|
41
|
+
}
|
|
42
|
+
/** The config file `path` of a reference names: itself if a `.json` file, else its `tsconfig.json`. */
|
|
43
|
+
export declare function resolveProjectReferencePath(reference: ProjectReference): string;
|
|
44
|
+
/** `files`, `include` and `exclude` after validation. */
|
|
45
|
+
export declare class ConfigFileSpecs {
|
|
46
|
+
readonly validatedFilesSpec: readonly string[];
|
|
47
|
+
readonly validatedIncludeSpecs: readonly string[];
|
|
48
|
+
readonly validatedExcludeSpecs: readonly string[];
|
|
49
|
+
readonly validatedFilesSpecBeforeSubstitution: readonly string[];
|
|
50
|
+
readonly validatedIncludeSpecsBeforeSubstitution: readonly string[];
|
|
51
|
+
readonly isDefaultIncludeSpec: boolean;
|
|
52
|
+
constructor(validatedFilesSpec: readonly string[], validatedIncludeSpecs: readonly string[], validatedExcludeSpecs: readonly string[], validatedFilesSpecBeforeSubstitution: readonly string[], validatedIncludeSpecsBeforeSubstitution: readonly string[], isDefaultIncludeSpec: boolean);
|
|
53
|
+
matchesExclude(fileName: string, currentDirectory: string, useCaseSensitiveFileNames: boolean): boolean;
|
|
54
|
+
/** The `include` spec (as written) matching `fileName`, or `''`. */
|
|
55
|
+
getMatchedIncludeSpec(fileName: string, currentDirectory: string, useCaseSensitiveFileNames: boolean): string;
|
|
56
|
+
/** The `files` entry (as written) naming `fileName`, or `''`. */
|
|
57
|
+
getMatchedFileSpec(fileName: string, currentDirectory: string, useCaseSensitiveFileNames: boolean): string;
|
|
58
|
+
}
|
|
59
|
+
/** A parsed config file: its syntax tree and the config files it extends. */
|
|
60
|
+
export declare class TsConfigSourceFile {
|
|
61
|
+
readonly sourceFile: SourceFile;
|
|
62
|
+
/** Every config file this one extends, directly or not, sorted. */
|
|
63
|
+
extendedSourceFiles: string[];
|
|
64
|
+
configFileSpecs: ConfigFileSpecs | undefined;
|
|
65
|
+
constructor(sourceFile: SourceFile);
|
|
66
|
+
}
|
|
67
|
+
/** Options, root files and references of a project, from a config file or the command line. */
|
|
68
|
+
export declare class ParsedCommandLine implements OutputPathsHost {
|
|
69
|
+
readonly options: CompilerOptions;
|
|
70
|
+
readonly typeAcquisition: TypeAcquisition | undefined;
|
|
71
|
+
readonly fileNames: readonly string[];
|
|
72
|
+
readonly projectReferences: readonly ProjectReference[];
|
|
73
|
+
readonly configFile: TsConfigSourceFile | undefined;
|
|
74
|
+
readonly errors: Diagnostic[];
|
|
75
|
+
/** The config's directory, or the current directory without a config. */
|
|
76
|
+
readonly currentDirectory: string;
|
|
77
|
+
readonly useCaseSensitiveFileNames: boolean;
|
|
78
|
+
/** How many of `fileNames` come from `files`. */
|
|
79
|
+
readonly literalFileNamesLength: number;
|
|
80
|
+
/** The config file name, or `''`. */
|
|
81
|
+
readonly configName: string;
|
|
82
|
+
/** Where `getOutputDeclarationFileName` maps sources of this project, once computed. */
|
|
83
|
+
private sourceToReference;
|
|
84
|
+
private outputDtsToReference;
|
|
85
|
+
private commonSourceDirectoryValue;
|
|
86
|
+
private referencePaths;
|
|
87
|
+
constructor(options: CompilerOptions, typeAcquisition: TypeAcquisition | undefined, fileNames: readonly string[], projectReferences: readonly ProjectReference[], configFile: TsConfigSourceFile | undefined, errors: Diagnostic[],
|
|
88
|
+
/** The config's directory, or the current directory without a config. */
|
|
89
|
+
currentDirectory: string, useCaseSensitiveFileNames: boolean,
|
|
90
|
+
/** How many of `fileNames` come from `files`. */
|
|
91
|
+
literalFileNamesLength: number);
|
|
92
|
+
/** Config file paths of the references. */
|
|
93
|
+
resolvedProjectReferencePaths(): readonly string[];
|
|
94
|
+
/** Diagnostics of reading the config: syntax errors, then option errors. */
|
|
95
|
+
configFileParsingDiagnostics(): readonly Diagnostic[];
|
|
96
|
+
getMatchedFileSpec(fileName: string): string;
|
|
97
|
+
/** The `include` spec matching `fileName`, or `''`; the default spec `**\/*` matches everything. */
|
|
98
|
+
getMatchedIncludeSpec(fileName: string): string;
|
|
99
|
+
isDefaultIncludeSpec(): boolean;
|
|
100
|
+
/** The directory outputs are laid out relative to (with a trailing `/`), or `''`. */
|
|
101
|
+
commonSourceDirectory(): string;
|
|
102
|
+
private emittedRootFiles;
|
|
103
|
+
private checkSourceFilesBelongToPath;
|
|
104
|
+
/** Maps each source of this project to its declaration output and back. */
|
|
105
|
+
sourceToProjectReference(): ReadonlyMap<string, SourceOutputAndProjectReference>;
|
|
106
|
+
outputDtsToProjectReference(): ReadonlyMap<string, SourceOutputAndProjectReference>;
|
|
107
|
+
private parseInputOutputNames;
|
|
108
|
+
/** The `.tsbuildinfo` file of an incremental build, or `''`. */
|
|
109
|
+
buildInfoFileName(): string;
|
|
110
|
+
}
|
|
111
|
+
/** A source file of a referenced project and its declaration output. */
|
|
112
|
+
export declare class SourceOutputAndProjectReference {
|
|
113
|
+
readonly source: string;
|
|
114
|
+
/** `''` for declaration and JSON sources. */
|
|
115
|
+
readonly outputDts: string;
|
|
116
|
+
readonly resolved: ParsedCommandLine;
|
|
117
|
+
constructor(source: string,
|
|
118
|
+
/** `''` for declaration and JSON sources. */
|
|
119
|
+
outputDts: string, resolved: ParsedCommandLine);
|
|
120
|
+
}
|
|
121
|
+
/** A diagnostic at `node` without its leading trivia, or a compiler diagnostic without a node. */
|
|
122
|
+
export declare function diagnosticAtNode(file: SourceFile | undefined, node: Node | undefined, message: DiagnosticMessage, ...args: string[]): Diagnostic;
|
|
123
|
+
/** The root object of a config file. */
|
|
124
|
+
export declare function getTsConfigObjectLiteral(file: SourceFile | undefined): ObjectLiteralExpression | undefined;
|
|
125
|
+
/** The first property assignment of `object` named `key` (or `key2`). */
|
|
126
|
+
export declare function findPropertyAssignment(object: ObjectLiteralExpression | undefined, key: string, key2?: string): PropertyAssignment | undefined;
|
|
127
|
+
/** The string literal `value` in the array of the root property `key`. */
|
|
128
|
+
export declare function findTsConfigArrayElement(file: SourceFile | undefined, key: string, value: string): StringLiteral | undefined;
|
|
129
|
+
/** The string literal `value` in the array initializing `property`. */
|
|
130
|
+
export declare function findArrayElement(property: PropertyAssignment | undefined, value: string): StringLiteral | undefined;
|
|
131
|
+
/** The text of a property name, or `undefined` for computed names that aren't literals. */
|
|
132
|
+
export declare function propertyNameText(name: Node): string | undefined;
|
|
133
|
+
/** Rejects specs ending in `**` (for `include`) and `..` after a `**`. */
|
|
134
|
+
export declare function specToDiagnostic(spec: string, disallowTrailingRecursion: boolean): DiagnosticMessage | undefined;
|
|
135
|
+
/** Names of options given as `null` on the command line. */
|
|
136
|
+
export declare function nullKeysOfCommandLine(raw: ReadonlyMap<string, OptionValue> | undefined): Set<string> | undefined;
|
|
137
|
+
/** Reads config files with a file system, sharing parsed `extends` targets. */
|
|
138
|
+
export declare class ConfigParser {
|
|
139
|
+
readonly fs: FileSystem;
|
|
140
|
+
readonly currentDirectory: string;
|
|
141
|
+
private readonly extendedConfigs;
|
|
142
|
+
private readonly resolutionHost;
|
|
143
|
+
/**
|
|
144
|
+
* Whether parsed configs list their root files. Parse threads (parallel-parse.ts), which get the
|
|
145
|
+
* files to load from the main thread, read the config without matching `include` patterns.
|
|
146
|
+
*/
|
|
147
|
+
expandFileNames: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Called once, with the options of the config, before its `include` patterns are matched; what it
|
|
150
|
+
* returns is called with each root file name as it is found: literal `files` first, then the matched
|
|
151
|
+
* files a directory at a time, without those that a file of the same name with a higher priority
|
|
152
|
+
* extension leaves out.
|
|
153
|
+
*/
|
|
154
|
+
beforeRootFiles: ((options: CompilerOptions) => ((fileName: string) => void) | undefined) | undefined;
|
|
155
|
+
constructor(fs: FileSystem, currentDirectory: string);
|
|
156
|
+
/**
|
|
157
|
+
* Reads `configFileName` and applies command-line `options` (`raw` as given, for `null` resets) over it.
|
|
158
|
+
* Returns `undefined`, with `errors`, if the file can't be read.
|
|
159
|
+
*/
|
|
160
|
+
parseConfigFile(configFileName: string, options: CompilerOptions | undefined, raw: ReadonlyMap<string, OptionValue> | undefined, errors: Diagnostic[]): ParsedCommandLine | undefined;
|
|
161
|
+
/** Converts a parsed config file into options and root files. */
|
|
162
|
+
parseConfigFileContent(file: TsConfigSourceFile, basePath: string, existingOptions: CompilerOptions | undefined, existingRaw: ReadonlyMap<string, OptionValue> | undefined, configFileName: string): ParsedCommandLine;
|
|
163
|
+
/** A config file's options with what it extends applied. */
|
|
164
|
+
private parseConfig;
|
|
165
|
+
private applyExtendedConfig;
|
|
166
|
+
/** A parsed extended config; cached unless it is part of an `extends` cycle. */
|
|
167
|
+
private getExtendedConfig;
|
|
168
|
+
private parseExtendedConfig;
|
|
169
|
+
/** Converts a value of `option`, reporting invalid values at `valueExpression`. */
|
|
170
|
+
convertOption(option: OptionDeclaration, value: JsonValue, basePath: string, property: PropertyAssignment | undefined, valueExpression: Node | undefined, file: SourceFile | undefined, errors: Diagnostic[]): JsonValue;
|
|
171
|
+
private convertListOption;
|
|
172
|
+
/** Resolves `extends`: a path, a package, or an array of those. */
|
|
173
|
+
getExtendsConfigPaths(value: JsonValue, basePath: string, configFileName: string, property: PropertyAssignment, valueExpression: Node, file: SourceFile, errors: Diagnostic[]): string[];
|
|
174
|
+
private getExtendsConfigPath;
|
|
175
|
+
/** Root files: `files` as given, then `include` matches not excluded, then JSON files matched explicitly. */
|
|
176
|
+
private getFileNamesFromConfigSpecs;
|
|
177
|
+
}
|