tsc-ts 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -1
- package/dist/api/compiler/ast-utilities.d.ts +82 -0
- package/dist/api/compiler/ast-utilities.js +462 -0
- package/dist/api/compiler/ast.d.ts +2350 -0
- package/dist/api/compiler/ast.js +11206 -0
- package/dist/api/compiler/astnav.d.ts +37 -0
- package/dist/api/compiler/astnav.js +767 -0
- package/dist/api/compiler/binder-utilities.d.ts +182 -0
- package/dist/api/compiler/binder-utilities.js +1240 -0
- package/dist/api/compiler/binder.d.ts +33 -0
- package/dist/api/compiler/binder.js +2358 -0
- package/dist/api/compiler/character-codes.d.ts +161 -0
- package/dist/api/compiler/character-codes.js +160 -0
- package/dist/api/compiler/checker-calls.d.ts +46 -0
- package/dist/api/compiler/checker-calls.js +1640 -0
- package/dist/api/compiler/checker-classes.d.ts +30 -0
- package/dist/api/compiler/checker-classes.js +582 -0
- package/dist/api/compiler/checker-contextual.d.ts +77 -0
- package/dist/api/compiler/checker-contextual.js +1136 -0
- package/dist/api/compiler/checker-declaration-order.d.ts +12 -0
- package/dist/api/compiler/checker-declaration-order.js +356 -0
- package/dist/api/compiler/checker-declarations.d.ts +33 -0
- package/dist/api/compiler/checker-declarations.js +888 -0
- package/dist/api/compiler/checker-declared-types.d.ts +48 -0
- package/dist/api/compiler/checker-declared-types.js +787 -0
- package/dist/api/compiler/checker-decorators.d.ts +26 -0
- package/dist/api/compiler/checker-decorators.js +562 -0
- package/dist/api/compiler/checker-deprecation.d.ts +33 -0
- package/dist/api/compiler/checker-deprecation.js +315 -0
- package/dist/api/compiler/checker-destructuring.d.ts +34 -0
- package/dist/api/compiler/checker-destructuring.js +584 -0
- package/dist/api/compiler/checker-elaboration.d.ts +15 -0
- package/dist/api/compiler/checker-elaboration.js +290 -0
- package/dist/api/compiler/checker-emit-helpers.d.ts +58 -0
- package/dist/api/compiler/checker-emit-helpers.js +154 -0
- package/dist/api/compiler/checker-emit-resolver.d.ts +75 -0
- package/dist/api/compiler/checker-emit-resolver.js +579 -0
- package/dist/api/compiler/checker-evaluator.d.ts +27 -0
- package/dist/api/compiler/checker-evaluator.js +188 -0
- package/dist/api/compiler/checker-expressions.d.ts +67 -0
- package/dist/api/compiler/checker-expressions.js +1351 -0
- package/dist/api/compiler/checker-features.d.ts +6 -0
- package/dist/api/compiler/checker-features.js +354 -0
- package/dist/api/compiler/checker-flow.d.ts +86 -0
- package/dist/api/compiler/checker-flow.js +169 -0
- package/dist/api/compiler/checker-functions.d.ts +43 -0
- package/dist/api/compiler/checker-functions.js +1002 -0
- package/dist/api/compiler/checker-generated-code.d.ts +25 -0
- package/dist/api/compiler/checker-generated-code.js +168 -0
- package/dist/api/compiler/checker-globals.d.ts +14 -0
- package/dist/api/compiler/checker-globals.js +37 -0
- package/dist/api/compiler/checker-grammar.d.ts +35 -0
- package/dist/api/compiler/checker-grammar.js +2573 -0
- package/dist/api/compiler/checker-heritage.d.ts +28 -0
- package/dist/api/compiler/checker-heritage.js +900 -0
- package/dist/api/compiler/checker-inference.d.ts +179 -0
- package/dist/api/compiler/checker-inference.js +2105 -0
- package/dist/api/compiler/checker-iteration.d.ts +115 -0
- package/dist/api/compiler/checker-iteration.js +857 -0
- package/dist/api/compiler/checker-javascript.d.ts +42 -0
- package/dist/api/compiler/checker-javascript.js +441 -0
- package/dist/api/compiler/checker-jsdoc.d.ts +30 -0
- package/dist/api/compiler/checker-jsdoc.js +320 -0
- package/dist/api/compiler/checker-jsx.d.ts +94 -0
- package/dist/api/compiler/checker-jsx.js +1433 -0
- package/dist/api/compiler/checker-literals.d.ts +6 -0
- package/dist/api/compiler/checker-literals.js +43 -0
- package/dist/api/compiler/checker-members.d.ts +198 -0
- package/dist/api/compiler/checker-members.js +2126 -0
- package/dist/api/compiler/checker-modules.d.ts +85 -0
- package/dist/api/compiler/checker-modules.js +2141 -0
- package/dist/api/compiler/checker-narrowing.d.ts +120 -0
- package/dist/api/compiler/checker-narrowing.js +2797 -0
- package/dist/api/compiler/checker-object-literals.d.ts +14 -0
- package/dist/api/compiler/checker-object-literals.js +479 -0
- package/dist/api/compiler/checker-operators.d.ts +33 -0
- package/dist/api/compiler/checker-operators.js +1040 -0
- package/dist/api/compiler/checker-overloads.d.ts +7 -0
- package/dist/api/compiler/checker-overloads.js +270 -0
- package/dist/api/compiler/checker-property-access.d.ts +34 -0
- package/dist/api/compiler/checker-property-access.js +672 -0
- package/dist/api/compiler/checker-services.d.ts +49 -0
- package/dist/api/compiler/checker-services.js +995 -0
- package/dist/api/compiler/checker-signatures.d.ts +55 -0
- package/dist/api/compiler/checker-signatures.js +788 -0
- package/dist/api/compiler/checker-source-file.d.ts +27 -0
- package/dist/api/compiler/checker-source-file.js +619 -0
- package/dist/api/compiler/checker-statements.d.ts +18 -0
- package/dist/api/compiler/checker-statements.js +226 -0
- package/dist/api/compiler/checker-super.d.ts +13 -0
- package/dist/api/compiler/checker-super.js +241 -0
- package/dist/api/compiler/checker-symbol-types.d.ts +67 -0
- package/dist/api/compiler/checker-symbol-types.js +1885 -0
- package/dist/api/compiler/checker-symbols.d.ts +181 -0
- package/dist/api/compiler/checker-symbols.js +1782 -0
- package/dist/api/compiler/checker-type-factory.d.ts +142 -0
- package/dist/api/compiler/checker-type-factory.js +2501 -0
- package/dist/api/compiler/checker-type-nodes.d.ts +26 -0
- package/dist/api/compiler/checker-type-nodes.js +828 -0
- package/dist/api/compiler/checker-type-operators.d.ts +109 -0
- package/dist/api/compiler/checker-type-operators.js +1842 -0
- package/dist/api/compiler/checker-types.d.ts +1027 -0
- package/dist/api/compiler/checker-types.js +1697 -0
- package/dist/api/compiler/checker-unused.d.ts +19 -0
- package/dist/api/compiler/checker-unused.js +524 -0
- package/dist/api/compiler/checker-utilities.d.ts +33 -0
- package/dist/api/compiler/checker-utilities.js +141 -0
- package/dist/api/compiler/checker.d.ts +491 -0
- package/dist/api/compiler/checker.js +912 -0
- package/dist/api/compiler/command-line.d.ts +32 -0
- package/dist/api/compiler/command-line.js +383 -0
- package/dist/api/compiler/compile-program.d.ts +118 -0
- package/dist/api/compiler/compile-program.js +384 -0
- package/dist/api/compiler/diagnostic-locales.d.ts +22 -0
- package/dist/api/compiler/diagnostic-locales.js +64 -0
- package/dist/api/compiler/diagnostic-messages.d.ts +2166 -0
- package/dist/api/compiler/diagnostic-messages.js +184 -0
- package/dist/api/compiler/diagnostics.d.ts +167 -0
- package/dist/api/compiler/diagnostics.js +820 -0
- package/dist/api/compiler/emitter.d.ts +71 -0
- package/dist/api/compiler/emitter.js +327 -0
- package/dist/api/compiler/file-include.d.ts +117 -0
- package/dist/api/compiler/file-include.js +536 -0
- package/dist/api/compiler/file-loader.d.ts +261 -0
- package/dist/api/compiler/file-loader.js +1257 -0
- package/dist/api/compiler/file-system.d.ts +51 -0
- package/dist/api/compiler/file-system.js +132 -0
- package/dist/api/compiler/flow.d.ts +60 -0
- package/dist/api/compiler/flow.js +45 -0
- package/dist/api/compiler/instantiation.d.ts +74 -0
- package/dist/api/compiler/instantiation.js +799 -0
- package/dist/api/compiler/jsdoc.d.ts +75 -0
- package/dist/api/compiler/jsdoc.js +1229 -0
- package/dist/api/compiler/link-tables.d.ts +36 -0
- package/dist/api/compiler/link-tables.js +83 -0
- package/dist/api/compiler/locale-data.d.ts +24 -0
- package/dist/api/compiler/locale-data.js +183 -0
- package/dist/api/compiler/locale.d.ts +4 -0
- package/dist/api/compiler/locale.js +317 -0
- package/dist/api/compiler/locales/cs-CZ.d.ts +2 -0
- package/dist/api/compiler/locales/cs-CZ.js +3 -0
- package/dist/api/compiler/locales/de-DE.d.ts +2 -0
- package/dist/api/compiler/locales/de-DE.js +3 -0
- package/dist/api/compiler/locales/es-ES.d.ts +2 -0
- package/dist/api/compiler/locales/es-ES.js +3 -0
- package/dist/api/compiler/locales/fr-FR.d.ts +2 -0
- package/dist/api/compiler/locales/fr-FR.js +3 -0
- package/dist/api/compiler/locales/it-IT.d.ts +2 -0
- package/dist/api/compiler/locales/it-IT.js +3 -0
- package/dist/api/compiler/locales/ja-JP.d.ts +2 -0
- package/dist/api/compiler/locales/ja-JP.js +3 -0
- package/dist/api/compiler/locales/ko-KR.d.ts +2 -0
- package/dist/api/compiler/locales/ko-KR.js +3 -0
- package/dist/api/compiler/locales/pl-PL.d.ts +2 -0
- package/dist/api/compiler/locales/pl-PL.js +3 -0
- package/dist/api/compiler/locales/pt-BR.d.ts +2 -0
- package/dist/api/compiler/locales/pt-BR.js +3 -0
- package/dist/api/compiler/locales/ru-RU.d.ts +2 -0
- package/dist/api/compiler/locales/ru-RU.js +3 -0
- package/dist/api/compiler/locales/tr-TR.d.ts +2 -0
- package/dist/api/compiler/locales/tr-TR.js +3 -0
- package/dist/api/compiler/locales/zh-CN.d.ts +2 -0
- package/dist/api/compiler/locales/zh-CN.js +3 -0
- package/dist/api/compiler/locales/zh-TW.d.ts +2 -0
- package/dist/api/compiler/locales/zh-TW.js +3 -0
- package/dist/api/compiler/module-resolution-types.d.ts +83 -0
- package/dist/api/compiler/module-resolution-types.js +176 -0
- package/dist/api/compiler/module-resolution.d.ts +71 -0
- package/dist/api/compiler/module-resolution.js +1598 -0
- package/dist/api/compiler/module-specifiers.d.ts +64 -0
- package/dist/api/compiler/module-specifiers.js +1101 -0
- package/dist/api/compiler/name-resolver.d.ts +43 -0
- package/dist/api/compiler/name-resolver.js +509 -0
- package/dist/api/compiler/node-builder-names.d.ts +32 -0
- package/dist/api/compiler/node-builder-names.js +854 -0
- package/dist/api/compiler/node-builder-pseudo.d.ts +36 -0
- package/dist/api/compiler/node-builder-pseudo.js +744 -0
- package/dist/api/compiler/node-builder-reuse.d.ts +4 -0
- package/dist/api/compiler/node-builder-reuse.js +647 -0
- package/dist/api/compiler/node-builder.d.ts +270 -0
- package/dist/api/compiler/node-builder.js +2645 -0
- package/dist/api/compiler/option-declarations.d.ts +90 -0
- package/dist/api/compiler/option-declarations.js +1460 -0
- package/dist/api/compiler/options.d.ts +289 -0
- package/dist/api/compiler/options.js +1197 -0
- package/dist/api/compiler/output-paths.d.ts +42 -0
- package/dist/api/compiler/output-paths.js +195 -0
- package/dist/api/compiler/package-json.d.ts +175 -0
- package/dist/api/compiler/package-json.js +1015 -0
- package/dist/api/compiler/parallel-parse.d.ts +219 -0
- package/dist/api/compiler/parallel-parse.js +537 -0
- package/dist/api/compiler/parser.d.ts +587 -0
- package/dist/api/compiler/parser.js +6407 -0
- package/dist/api/compiler/path.d.ts +91 -0
- package/dist/api/compiler/path.js +705 -0
- package/dist/api/compiler/printer/async-helpers.d.ts +22 -0
- package/dist/api/compiler/printer/async-helpers.js +91 -0
- package/dist/api/compiler/printer/auto-generate.d.ts +13 -0
- package/dist/api/compiler/printer/auto-generate.js +20 -0
- package/dist/api/compiler/printer/decorator-helpers.d.ts +24 -0
- package/dist/api/compiler/printer/decorator-helpers.js +118 -0
- package/dist/api/compiler/printer/emit-context.d.ts +154 -0
- package/dist/api/compiler/printer/emit-context.js +576 -0
- package/dist/api/compiler/printer/emit-flags.d.ts +60 -0
- package/dist/api/compiler/printer/emit-flags.js +2 -0
- package/dist/api/compiler/printer/factory-base.d.ts +171 -0
- package/dist/api/compiler/printer/factory-base.js +1505 -0
- package/dist/api/compiler/printer/factory.d.ts +147 -0
- package/dist/api/compiler/printer/factory.js +542 -0
- package/dist/api/compiler/printer/helpers.d.ts +27 -0
- package/dist/api/compiler/printer/helpers.js +164 -0
- package/dist/api/compiler/printer/name-generator.d.ts +41 -0
- package/dist/api/compiler/printer/name-generator.js +283 -0
- package/dist/api/compiler/printer/printer.d.ts +411 -0
- package/dist/api/compiler/printer/printer.js +4517 -0
- package/dist/api/compiler/printer/text-writer.d.ts +46 -0
- package/dist/api/compiler/printer/text-writer.js +172 -0
- package/dist/api/compiler/printer/utilities.d.ts +82 -0
- package/dist/api/compiler/printer/utilities.js +817 -0
- package/dist/api/compiler/program-checker.d.ts +156 -0
- package/dist/api/compiler/program-checker.js +526 -0
- package/dist/api/compiler/program-utilities.d.ts +52 -0
- package/dist/api/compiler/program-utilities.js +365 -0
- package/dist/api/compiler/program.d.ts +180 -0
- package/dist/api/compiler/program.js +1011 -0
- package/dist/api/compiler/pseudo-bigint.d.ts +5 -0
- package/dist/api/compiler/pseudo-bigint.js +61 -0
- package/dist/api/compiler/regexp-checker.d.ts +38 -0
- package/dist/api/compiler/regexp-checker.js +942 -0
- package/dist/api/compiler/relations.d.ts +263 -0
- package/dist/api/compiler/relations.js +4002 -0
- package/dist/api/compiler/reparser.d.ts +48 -0
- package/dist/api/compiler/reparser.js +1323 -0
- package/dist/api/compiler/scanner.d.ts +256 -0
- package/dist/api/compiler/scanner.js +2853 -0
- package/dist/api/compiler/side-state.d.ts +16 -0
- package/dist/api/compiler/side-state.js +89 -0
- package/dist/api/compiler/sourcemap.d.ts +55 -0
- package/dist/api/compiler/sourcemap.js +340 -0
- package/dist/api/compiler/spelling.d.ts +14 -0
- package/dist/api/compiler/spelling.js +128 -0
- package/dist/api/compiler/symbol-accessibility.d.ts +57 -0
- package/dist/api/compiler/symbol-accessibility.js +894 -0
- package/dist/api/compiler/symbol.d.ts +240 -0
- package/dist/api/compiler/symbol.js +228 -0
- package/dist/api/compiler/symlinks.d.ts +32 -0
- package/dist/api/compiler/symlinks.js +114 -0
- package/dist/api/compiler/syntax-kind.d.ts +389 -0
- package/dist/api/compiler/syntax-kind.js +2 -0
- package/dist/api/compiler/timeline.d.ts +9 -0
- package/dist/api/compiler/timeline.js +54 -0
- package/dist/api/compiler/transformers/alias-references.d.ts +39 -0
- package/dist/api/compiler/transformers/alias-references.js +676 -0
- package/dist/api/compiler/transformers/async-utilities.d.ts +51 -0
- package/dist/api/compiler/transformers/async-utilities.js +260 -0
- package/dist/api/compiler/transformers/async.d.ts +53 -0
- package/dist/api/compiler/transformers/async.js +645 -0
- package/dist/api/compiler/transformers/class-fields.d.ts +206 -0
- package/dist/api/compiler/transformers/class-fields.js +2418 -0
- package/dist/api/compiler/transformers/class-utilities.d.ts +46 -0
- package/dist/api/compiler/transformers/class-utilities.js +261 -0
- package/dist/api/compiler/transformers/commonjs-module.d.ts +103 -0
- package/dist/api/compiler/transformers/commonjs-module.js +1180 -0
- package/dist/api/compiler/transformers/const-enum-inliner.d.ts +11 -0
- package/dist/api/compiler/transformers/const-enum-inliner.js +36 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.d.ts +52 -0
- package/dist/api/compiler/transformers/declarations-diagnostics.js +538 -0
- package/dist/api/compiler/transformers/declarations-pseudo.d.ts +160 -0
- package/dist/api/compiler/transformers/declarations-pseudo.js +797 -0
- package/dist/api/compiler/transformers/declarations-resolver.d.ts +152 -0
- package/dist/api/compiler/transformers/declarations-resolver.js +35 -0
- package/dist/api/compiler/transformers/declarations-syntactic.d.ts +119 -0
- package/dist/api/compiler/transformers/declarations-syntactic.js +1582 -0
- package/dist/api/compiler/transformers/declarations-tracker.d.ts +46 -0
- package/dist/api/compiler/transformers/declarations-tracker.js +197 -0
- package/dist/api/compiler/transformers/declarations.d.ts +175 -0
- package/dist/api/compiler/transformers/declarations.js +2380 -0
- package/dist/api/compiler/transformers/decorator-metadata.d.ts +54 -0
- package/dist/api/compiler/transformers/decorator-metadata.js +554 -0
- package/dist/api/compiler/transformers/decorator-utilities.d.ts +38 -0
- package/dist/api/compiler/transformers/decorator-utilities.js +238 -0
- package/dist/api/compiler/transformers/destructuring.d.ts +25 -0
- package/dist/api/compiler/transformers/destructuring.js +626 -0
- package/dist/api/compiler/transformers/downlevel.d.ts +6 -0
- package/dist/api/compiler/transformers/downlevel.js +45 -0
- package/dist/api/compiler/transformers/emit-resolver.d.ts +61 -0
- package/dist/api/compiler/transformers/emit-resolver.js +197 -0
- package/dist/api/compiler/transformers/es-decorators.d.ts +118 -0
- package/dist/api/compiler/transformers/es-decorators.js +1901 -0
- package/dist/api/compiler/transformers/exponentiation.d.ts +11 -0
- package/dist/api/compiler/transformers/exponentiation.js +76 -0
- package/dist/api/compiler/transformers/external-module-info.d.ts +35 -0
- package/dist/api/compiler/transformers/external-module-info.js +351 -0
- package/dist/api/compiler/transformers/for-await.d.ts +43 -0
- package/dist/api/compiler/transformers/for-await.js +469 -0
- package/dist/api/compiler/transformers/import-elision.d.ts +16 -0
- package/dist/api/compiler/transformers/import-elision.js +124 -0
- package/dist/api/compiler/transformers/jsx-entities.d.ts +1 -0
- package/dist/api/compiler/transformers/jsx-entities.js +256 -0
- package/dist/api/compiler/transformers/jsx.d.ts +71 -0
- package/dist/api/compiler/transformers/jsx.js +700 -0
- package/dist/api/compiler/transformers/legacy-decorators.d.ts +56 -0
- package/dist/api/compiler/transformers/legacy-decorators.js +564 -0
- package/dist/api/compiler/transformers/logical-assignment.d.ts +14 -0
- package/dist/api/compiler/transformers/logical-assignment.js +62 -0
- package/dist/api/compiler/transformers/module-utilities.d.ts +9 -0
- package/dist/api/compiler/transformers/module-utilities.js +36 -0
- package/dist/api/compiler/transformers/module.d.ts +49 -0
- package/dist/api/compiler/transformers/module.js +296 -0
- package/dist/api/compiler/transformers/named-evaluation.d.ts +26 -0
- package/dist/api/compiler/transformers/named-evaluation.js +266 -0
- package/dist/api/compiler/transformers/nullish-coalescing.d.ts +9 -0
- package/dist/api/compiler/transformers/nullish-coalescing.js +26 -0
- package/dist/api/compiler/transformers/object-rest-spread.d.ts +34 -0
- package/dist/api/compiler/transformers/object-rest-spread.js +411 -0
- package/dist/api/compiler/transformers/optional-catch.d.ts +9 -0
- package/dist/api/compiler/transformers/optional-catch.js +20 -0
- package/dist/api/compiler/transformers/optional-chain.d.ts +14 -0
- package/dist/api/compiler/transformers/optional-chain.js +188 -0
- package/dist/api/compiler/transformers/reference-resolver.d.ts +128 -0
- package/dist/api/compiler/transformers/reference-resolver.js +1155 -0
- package/dist/api/compiler/transformers/runtime-syntax.d.ts +71 -0
- package/dist/api/compiler/transformers/runtime-syntax.js +753 -0
- package/dist/api/compiler/transformers/subtree-facts.d.ts +9 -0
- package/dist/api/compiler/transformers/subtree-facts.js +203 -0
- package/dist/api/compiler/transformers/syntax-facts.d.ts +51 -0
- package/dist/api/compiler/transformers/syntax-facts.js +254 -0
- package/dist/api/compiler/transformers/tagged-template.d.ts +17 -0
- package/dist/api/compiler/transformers/tagged-template.js +148 -0
- package/dist/api/compiler/transformers/transformer.d.ts +17 -0
- package/dist/api/compiler/transformers/transformer.js +54 -0
- package/dist/api/compiler/transformers/type-eraser.d.ts +21 -0
- package/dist/api/compiler/transformers/type-eraser.js +346 -0
- package/dist/api/compiler/transformers/type-serialization.d.ts +20 -0
- package/dist/api/compiler/transformers/type-serialization.js +347 -0
- package/dist/api/compiler/transformers/using.d.ts +56 -0
- package/dist/api/compiler/transformers/using.js +453 -0
- package/dist/api/compiler/transformers/utilities.d.ts +50 -0
- package/dist/api/compiler/transformers/utilities.js +347 -0
- package/dist/api/compiler/transformers/visitor-base.d.ts +6 -0
- package/dist/api/compiler/transformers/visitor-base.js +817 -0
- package/dist/api/compiler/transformers/visitor-hooks.d.ts +29 -0
- package/dist/api/compiler/transformers/visitor-hooks.js +189 -0
- package/dist/api/compiler/tsconfig.d.ts +177 -0
- package/dist/api/compiler/tsconfig.js +1311 -0
- package/dist/api/compiler/type-printer.d.ts +15 -0
- package/dist/api/compiler/type-printer.js +74 -0
- package/dist/api/compiler/types.d.ts +87 -0
- package/dist/api/compiler/types.js +23 -0
- package/dist/api/compiler/unicode-identifiers.d.ts +2 -0
- package/dist/api/compiler/unicode-identifiers.js +209 -0
- package/dist/api/compiler/unicode-properties.d.ts +8 -0
- package/dist/api/compiler/unicode-properties.js +531 -0
- package/dist/api/compiler/vfs-match.d.ts +24 -0
- package/dist/api/compiler/vfs-match.js +587 -0
- package/dist/api/library/ast.d.ts +3 -2
- package/dist/api/library/ast.generated.d.ts +127 -139
- package/dist/api/library/checker.d.ts +51 -0
- package/dist/api/library/checker.js +318 -0
- package/dist/api/library/diagnostics.d.ts +13 -0
- package/dist/api/library/diagnostics.js +50 -0
- package/dist/api/library/disk.d.ts +13 -0
- package/dist/api/library/disk.js +66 -0
- package/dist/api/library/errors.d.ts +13 -0
- package/dist/api/library/errors.js +24 -0
- package/dist/api/library/host.d.ts +24 -0
- package/dist/api/library/host.js +52 -0
- package/dist/api/library/index.d.ts +5 -1
- package/dist/api/library/index.js +4 -0
- package/dist/api/library/nodes.d.ts +51 -0
- package/dist/api/library/nodes.js +196 -0
- package/dist/api/library/options.d.ts +144 -0
- package/dist/api/library/options.js +308 -0
- package/dist/api/library/parse.d.ts +19 -0
- package/dist/api/library/parse.js +41 -0
- package/dist/api/library/program.d.ts +21 -0
- package/dist/api/library/program.js +234 -0
- package/dist/api/library/types.d.ts +14 -1
- package/package.json +12 -8
- package/src/compiler/ast-utilities.ts +548 -0
- package/src/compiler/ast.ts +12862 -0
- package/src/compiler/astnav.ts +799 -0
- package/src/compiler/binder-utilities.ts +1392 -0
- package/src/compiler/binder.ts +2703 -0
- package/src/compiler/build-info.ts +1197 -0
- package/src/compiler/character-codes.ts +323 -0
- package/src/compiler/checker-calls.ts +2155 -0
- package/src/compiler/checker-classes.ts +706 -0
- package/src/compiler/checker-contextual.ts +1457 -0
- package/src/compiler/checker-declaration-order.ts +438 -0
- package/src/compiler/checker-declarations.ts +1194 -0
- package/src/compiler/checker-declared-types.ts +919 -0
- package/src/compiler/checker-decorators.ts +694 -0
- package/src/compiler/checker-deprecation.ts +359 -0
- package/src/compiler/checker-destructuring.ts +805 -0
- package/src/compiler/checker-elaboration.ts +477 -0
- package/src/compiler/checker-emit-helpers.ts +224 -0
- package/src/compiler/checker-emit-resolver.ts +769 -0
- package/src/compiler/checker-evaluator.ts +243 -0
- package/src/compiler/checker-expressions.ts +1831 -0
- package/src/compiler/checker-features.ts +361 -0
- package/src/compiler/checker-flow.ts +394 -0
- package/src/compiler/checker-functions.ts +1296 -0
- package/src/compiler/checker-generated-code.ts +227 -0
- package/src/compiler/checker-globals.ts +52 -0
- package/src/compiler/checker-grammar.ts +3584 -0
- package/src/compiler/checker-heritage.ts +1233 -0
- package/src/compiler/checker-inference.ts +2576 -0
- package/src/compiler/checker-iteration.ts +1206 -0
- package/src/compiler/checker-javascript.ts +502 -0
- package/src/compiler/checker-jsdoc.ts +360 -0
- package/src/compiler/checker-jsx.ts +1924 -0
- package/src/compiler/checker-literals.ts +61 -0
- package/src/compiler/checker-members.ts +2436 -0
- package/src/compiler/checker-modules.ts +2886 -0
- package/src/compiler/checker-narrowing.ts +3230 -0
- package/src/compiler/checker-object-literals.ts +575 -0
- package/src/compiler/checker-operators.ts +1422 -0
- package/src/compiler/checker-overloads.ts +328 -0
- package/src/compiler/checker-property-access.ts +906 -0
- package/src/compiler/checker-services.ts +1149 -0
- package/src/compiler/checker-signatures.ts +1032 -0
- package/src/compiler/checker-source-file.ts +732 -0
- package/src/compiler/checker-statements.ts +292 -0
- package/src/compiler/checker-super.ts +261 -0
- package/src/compiler/checker-symbol-types.ts +2107 -0
- package/src/compiler/checker-symbols.ts +2150 -0
- package/src/compiler/checker-type-factory.ts +2579 -0
- package/src/compiler/checker-type-nodes.ts +1033 -0
- package/src/compiler/checker-type-operators.ts +2502 -0
- package/src/compiler/checker-types.ts +2340 -0
- package/src/compiler/checker-unused.ts +642 -0
- package/src/compiler/checker-utilities.ts +161 -0
- package/src/compiler/checker.ts +1116 -0
- package/src/compiler/command-line.ts +436 -0
- package/src/compiler/compile-program.ts +439 -0
- package/src/compiler/decoder.ts +1209 -0
- package/src/compiler/diagnostic-locales.ts +86 -0
- package/src/compiler/diagnostic-messages.ts +2349 -0
- package/src/compiler/diagnostics.ts +897 -0
- package/src/compiler/emitter.ts +434 -0
- package/src/compiler/encoder.ts +1945 -0
- package/src/compiler/file-include.ts +673 -0
- package/src/compiler/file-loader.ts +1528 -0
- package/src/compiler/file-system.ts +143 -0
- package/src/compiler/flow.ts +89 -0
- package/src/compiler/help.ts +473 -0
- package/src/compiler/incremental.ts +2784 -0
- package/src/compiler/init.ts +141 -0
- package/src/compiler/instantiation.ts +894 -0
- package/src/compiler/jsdoc.ts +1386 -0
- package/src/compiler/link-tables.ts +98 -0
- package/src/compiler/locale-data.ts +203 -0
- package/src/compiler/locale.ts +307 -0
- package/src/compiler/locales/cs-CZ.ts +5 -0
- package/src/compiler/locales/de-DE.ts +5 -0
- package/src/compiler/locales/es-ES.ts +5 -0
- package/src/compiler/locales/fr-FR.ts +5 -0
- package/src/compiler/locales/it-IT.ts +5 -0
- package/src/compiler/locales/ja-JP.ts +5 -0
- package/src/compiler/locales/ko-KR.ts +5 -0
- package/src/compiler/locales/pl-PL.ts +5 -0
- package/src/compiler/locales/pt-BR.ts +5 -0
- package/src/compiler/locales/ru-RU.ts +5 -0
- package/src/compiler/locales/tr-TR.ts +5 -0
- package/src/compiler/locales/zh-CN.ts +5 -0
- package/src/compiler/locales/zh-TW.ts +5 -0
- package/src/compiler/module-resolution-types.ts +243 -0
- package/src/compiler/module-resolution.ts +2072 -0
- package/src/compiler/module-specifiers.ts +1491 -0
- package/src/compiler/name-resolver.ts +646 -0
- package/src/compiler/node-builder-names.ts +1069 -0
- package/src/compiler/node-builder-pseudo.ts +892 -0
- package/src/compiler/node-builder-reuse.ts +764 -0
- package/src/compiler/node-builder.ts +3425 -0
- package/src/compiler/option-declarations.ts +1560 -0
- package/src/compiler/options.ts +1576 -0
- package/src/compiler/output-paths.ts +334 -0
- package/src/compiler/package-json.ts +1083 -0
- package/src/compiler/parallel-check.ts +1951 -0
- package/src/compiler/parallel-parse.ts +590 -0
- package/src/compiler/parse-thread.ts +140 -0
- package/src/compiler/parser.ts +7716 -0
- package/src/compiler/path.ts +717 -0
- package/src/compiler/printer/async-helpers.ts +183 -0
- package/src/compiler/printer/auto-generate.ts +27 -0
- package/src/compiler/printer/decorator-helpers.ts +218 -0
- package/src/compiler/printer/emit-context.ts +679 -0
- package/src/compiler/printer/emit-flags.ts +64 -0
- package/src/compiler/printer/factory-base.ts +2577 -0
- package/src/compiler/printer/factory.ts +764 -0
- package/src/compiler/printer/helpers.ts +291 -0
- package/src/compiler/printer/name-generator.ts +372 -0
- package/src/compiler/printer/printer.ts +5072 -0
- package/src/compiler/printer/text-writer.ts +183 -0
- package/src/compiler/printer/utilities.ts +884 -0
- package/src/compiler/program-checker.ts +592 -0
- package/src/compiler/program-utilities.ts +435 -0
- package/src/compiler/program.ts +1419 -0
- package/src/compiler/pseudo-bigint.ts +62 -0
- package/src/compiler/regexp-checker.ts +1142 -0
- package/src/compiler/relations.ts +5149 -0
- package/src/compiler/reparser.ts +1566 -0
- package/src/compiler/scanner.ts +2951 -0
- package/src/compiler/show-config.ts +239 -0
- package/src/compiler/side-state.ts +125 -0
- package/src/compiler/sourcemap.ts +366 -0
- package/src/compiler/spelling.ts +122 -0
- package/src/compiler/symbol-accessibility.ts +1071 -0
- package/src/compiler/symbol.ts +439 -0
- package/src/compiler/symlinks.ts +137 -0
- package/src/compiler/syntax-kind.ts +391 -0
- package/src/compiler/thread-entry.ts +191 -0
- package/src/compiler/timeline.ts +53 -0
- package/src/compiler/transformers/alias-references.ts +757 -0
- package/src/compiler/transformers/async-utilities.ts +335 -0
- package/src/compiler/transformers/async.ts +838 -0
- package/src/compiler/transformers/class-fields.ts +2967 -0
- package/src/compiler/transformers/class-utilities.ts +324 -0
- package/src/compiler/transformers/commonjs-module.ts +1621 -0
- package/src/compiler/transformers/const-enum-inliner.ts +50 -0
- package/src/compiler/transformers/declarations-diagnostics.ts +832 -0
- package/src/compiler/transformers/declarations-pseudo.ts +966 -0
- package/src/compiler/transformers/declarations-resolver.ts +249 -0
- package/src/compiler/transformers/declarations-syntactic.ts +1859 -0
- package/src/compiler/transformers/declarations-tracker.ts +269 -0
- package/src/compiler/transformers/declarations.ts +3120 -0
- package/src/compiler/transformers/decorator-metadata.ts +697 -0
- package/src/compiler/transformers/decorator-utilities.ts +283 -0
- package/src/compiler/transformers/destructuring.ts +708 -0
- package/src/compiler/transformers/downlevel.ts +50 -0
- package/src/compiler/transformers/emit-resolver.ts +258 -0
- package/src/compiler/transformers/es-decorators.ts +2682 -0
- package/src/compiler/transformers/exponentiation.ts +80 -0
- package/src/compiler/transformers/external-module-info.ts +412 -0
- package/src/compiler/transformers/for-await.ts +687 -0
- package/src/compiler/transformers/import-elision.ts +152 -0
- package/src/compiler/transformers/jsx-entities.ts +256 -0
- package/src/compiler/transformers/jsx.ts +824 -0
- package/src/compiler/transformers/legacy-decorators.ts +726 -0
- package/src/compiler/transformers/logical-assignment.ts +75 -0
- package/src/compiler/transformers/module-utilities.ts +42 -0
- package/src/compiler/transformers/module.ts +474 -0
- package/src/compiler/transformers/named-evaluation.ts +389 -0
- package/src/compiler/transformers/nullish-coalescing.ts +35 -0
- package/src/compiler/transformers/object-rest-spread.ts +577 -0
- package/src/compiler/transformers/optional-catch.ts +29 -0
- package/src/compiler/transformers/optional-chain.ts +246 -0
- package/src/compiler/transformers/reference-resolver.ts +1201 -0
- package/src/compiler/transformers/runtime-syntax.ts +942 -0
- package/src/compiler/transformers/subtree-facts.ts +245 -0
- package/src/compiler/transformers/syntax-facts.ts +353 -0
- package/src/compiler/transformers/tagged-template.ts +167 -0
- package/src/compiler/transformers/transformer.ts +56 -0
- package/src/compiler/transformers/type-eraser.ts +520 -0
- package/src/compiler/transformers/type-serialization.ts +374 -0
- package/src/compiler/transformers/using.ts +613 -0
- package/src/compiler/transformers/utilities.ts +419 -0
- package/src/compiler/transformers/visitor-base.ts +1601 -0
- package/src/compiler/transformers/visitor-hooks.ts +252 -0
- package/src/compiler/tsc-build.ts +1418 -0
- package/src/compiler/tsc-cli.ts +666 -0
- package/src/compiler/tsc-compile.ts +437 -0
- package/src/compiler/tsc-watch.ts +854 -0
- package/src/compiler/tsconfig.ts +1574 -0
- package/src/compiler/type-printer.ts +110 -0
- package/src/compiler/types.ts +115 -0
- package/src/compiler/unicode-identifiers.ts +212 -0
- package/src/compiler/unicode-properties.ts +537 -0
- package/src/compiler/vfs-match.ts +597 -0
- package/src/compiler/xxh3.ts +650 -0
- package/src/library/ast.generated.ts +141 -167
- package/src/library/ast.ts +4 -1
- package/src/library/checker.ts +384 -0
- package/src/library/diagnostics.ts +72 -0
- package/src/library/disk.ts +73 -0
- package/src/library/errors.ts +26 -0
- package/src/library/host.ts +63 -0
- package/src/library/index.ts +21 -0
- package/src/library/nodes.ts +232 -0
- package/src/library/options.ts +449 -0
- package/src/library/parse.ts +63 -0
- package/src/library/program.ts +293 -0
- package/src/library/types.ts +14 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Binding and checking a program: the checker host over a `Program`, and the bind, semantic,
|
|
3
|
+
* suggestion and global diagnostics of its files, like tsgo's `Program`.
|
|
4
|
+
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* const checked = new CheckedProgram(program);
|
|
7
|
+
* const errors = checked.getSemanticDiagnostics(undefined);
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
import { type Node, type SourceFile } from './ast.js';
|
|
11
|
+
import { Checker, CheckerHost } from './checker.js';
|
|
12
|
+
import { Diagnostic } from './diagnostics.js';
|
|
13
|
+
import type { EmitResult } from './emitter.js';
|
|
14
|
+
import type { CompilerOptions, ModuleKind } from './options.js';
|
|
15
|
+
import type { ResolvedModule } from './module-resolution-types.js';
|
|
16
|
+
import { ModuleSpecifierHost } from './module-specifiers.js';
|
|
17
|
+
import type { OutputPathsHost } from './output-paths.js';
|
|
18
|
+
import type { PackageJsonInfo } from './package-json.js';
|
|
19
|
+
import type { KnownSymlinks } from './symlinks.js';
|
|
20
|
+
import type { MergedGlobals } from './checker-symbols.js';
|
|
21
|
+
import { Program } from './program.js';
|
|
22
|
+
import { type SourceFileMetadata } from './program-utilities.js';
|
|
23
|
+
/** What the checker needs, answered by a program. */
|
|
24
|
+
export declare class ProgramCheckerHost extends CheckerHost {
|
|
25
|
+
readonly program: Program;
|
|
26
|
+
private specifierHost;
|
|
27
|
+
constructor(program: Program);
|
|
28
|
+
getCompilerOptions(): CompilerOptions;
|
|
29
|
+
getSourceFiles(): readonly SourceFile[];
|
|
30
|
+
isSourceFileDefaultLibrary(file: SourceFile): boolean;
|
|
31
|
+
getResolvedModule(file: SourceFile, moduleName: string, mode: ModuleKind): ResolvedModule | undefined;
|
|
32
|
+
getSourceFileForResolvedModule(fileName: string): SourceFile | undefined;
|
|
33
|
+
getModeForUsageLocation(file: SourceFile, location: Node): ModuleKind;
|
|
34
|
+
getDefaultResolutionModeForFile(file: SourceFile): ModuleKind;
|
|
35
|
+
getPackagesMap(): ReadonlyMap<string, boolean>;
|
|
36
|
+
getProjectReferenceOutputDts(fileName: string): string;
|
|
37
|
+
fileExists(path: string): boolean;
|
|
38
|
+
getImportHelpersImportSpecifier(file: SourceFile): Node | undefined;
|
|
39
|
+
getJSXRuntimeImportSpecifier(file: SourceFile): Node | undefined;
|
|
40
|
+
getMergedGlobals(): MergedGlobals | undefined;
|
|
41
|
+
getImpliedNodeFormatForEmit(file: SourceFile): ModuleKind;
|
|
42
|
+
getEmitSyntaxForUsageLocation(file: SourceFile, usage: Node): ModuleKind;
|
|
43
|
+
getSourceFileMetadata(file: SourceFile): SourceFileMetadata | undefined;
|
|
44
|
+
getEmitModuleFormatOfFile(file: SourceFile): ModuleKind;
|
|
45
|
+
getModuleSpecifierHost(): ModuleSpecifierHost | undefined;
|
|
46
|
+
}
|
|
47
|
+
/** Module specifier generation over a program. */
|
|
48
|
+
export declare class ProgramModuleSpecifierHost extends ModuleSpecifierHost {
|
|
49
|
+
readonly program: Program;
|
|
50
|
+
constructor(program: Program);
|
|
51
|
+
getCurrentDirectory(): string;
|
|
52
|
+
useCaseSensitiveFileNames(): boolean;
|
|
53
|
+
getSymlinkCache(): KnownSymlinks | undefined;
|
|
54
|
+
getGlobalTypingsCacheLocation(): string;
|
|
55
|
+
getProjectReferenceOutputDts(path: string): string;
|
|
56
|
+
getRedirectTargets(path: string): readonly string[];
|
|
57
|
+
getSourceOfProjectReferenceIfOutputIncluded(file: SourceFile): string;
|
|
58
|
+
fileExists(path: string): boolean;
|
|
59
|
+
getNearestAncestorDirectoryWithPackageJson(directory: string): string;
|
|
60
|
+
getPackageJsonInfo(packageJsonPath: string): PackageJsonInfo | undefined;
|
|
61
|
+
getDefaultResolutionModeForFile(file: SourceFile): ModuleKind;
|
|
62
|
+
getResolvedModuleFromModuleSpecifier(file: SourceFile, specifier: Node): ResolvedModule | undefined;
|
|
63
|
+
getModeForUsageLocation(file: SourceFile, specifier: Node): ModuleKind;
|
|
64
|
+
getOutputPathsHost(): OutputPathsHost;
|
|
65
|
+
}
|
|
66
|
+
/** Binds every file of `program`. */
|
|
67
|
+
export declare function bindProgram(program: Program): void;
|
|
68
|
+
/**
|
|
69
|
+
* A bound program with the checker that reports its diagnostics. It checks every file, the default
|
|
70
|
+
* library files too, as tsgo's checker does with the files it is given.
|
|
71
|
+
*/
|
|
72
|
+
export declare class CheckedProgram {
|
|
73
|
+
readonly program: Program;
|
|
74
|
+
private reportingChecker;
|
|
75
|
+
constructor(program: Program);
|
|
76
|
+
/**
|
|
77
|
+
* The checker that reports diagnostics, created on first use: with `--checkers`, after the checker
|
|
78
|
+
* threads are started (parallel-check.ts), so creating it (merging the globals) is not on the way to
|
|
79
|
+
* checking.
|
|
80
|
+
*/
|
|
81
|
+
get checker(): Checker;
|
|
82
|
+
/** A new checker for the program, independent of the one reporting diagnostics. */
|
|
83
|
+
createChecker(): Checker;
|
|
84
|
+
/** Frees the checker that reports the program's diagnostics (`disposeChecker`). */
|
|
85
|
+
disposeCheckers(): void;
|
|
86
|
+
getBindDiagnostics(file: SourceFile | undefined): Diagnostic[];
|
|
87
|
+
/**
|
|
88
|
+
* Diagnostics of checker threads (parallel-check.ts): the semantic diagnostics of each file by file
|
|
89
|
+
* index, before `noEmit` filtering (`unfilteredDiagnosticsOfFile`), and their global diagnostics. Set
|
|
90
|
+
* once every file is checked.
|
|
91
|
+
*/
|
|
92
|
+
checkedInParallel: (Diagnostic[] | undefined)[] | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* The files checker threads check, where only some are (the affected files of an incremental
|
|
95
|
+
* program's rebuild); `undefined` for every file. The others are checked on this thread when asked.
|
|
96
|
+
*/
|
|
97
|
+
checkOnly: ReadonlySet<SourceFile> | undefined;
|
|
98
|
+
/** Whether the program is shared with checker threads (`shareWithCheckers`, parallel-check.ts). */
|
|
99
|
+
sharedWithCheckers: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* The number of threads, this one included, that compare the references of the files of an incremental
|
|
102
|
+
* program with its old state where the program is shared with checker threads (`compareReferencesOnThreads`,
|
|
103
|
+
* incremental.ts); 1 compares on this thread.
|
|
104
|
+
*/
|
|
105
|
+
referenceThreads: number;
|
|
106
|
+
readonly parallelGlobalDiagnostics: Diagnostic[];
|
|
107
|
+
/**
|
|
108
|
+
* The declaration diagnostics checker threads computed under `noEmit` (PlainProgram,
|
|
109
|
+
* IncrementalProgram), by file index; `undefined` for files they did not. Set once every file is
|
|
110
|
+
* checked.
|
|
111
|
+
*/
|
|
112
|
+
declarationsInParallel: (Diagnostic[] | undefined)[] | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* What checker threads emitted (PlainProgram), by file index; `undefined` for files they did not
|
|
115
|
+
* emit. Set once every file is checked, when checker threads emit (parallel-check.ts).
|
|
116
|
+
*/
|
|
117
|
+
emittedInParallel: (EmitResult | undefined)[] | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* The global diagnostics of this thread's checker before it emitted files while checker threads
|
|
120
|
+
* checked (`emitUncheckedFiles`), reported instead of its current ones.
|
|
121
|
+
*/
|
|
122
|
+
ownGlobalDiagnostics: Diagnostic[] | undefined;
|
|
123
|
+
getSemanticDiagnostics(file: SourceFile | undefined): Diagnostic[];
|
|
124
|
+
/** The semantic diagnostics of `file`, unsorted. */
|
|
125
|
+
semanticDiagnosticsOfFile(file: SourceFile): Diagnostic[];
|
|
126
|
+
/**
|
|
127
|
+
* The semantic diagnostics of `file`, unsorted, before `noEmit` filtering: the bind and check
|
|
128
|
+
* diagnostics, then the include errors. Checker threads report these (parallel-check.ts), so that an
|
|
129
|
+
* incremental program keeps them unfiltered under `noEmit` too.
|
|
130
|
+
*/
|
|
131
|
+
unfilteredDiagnosticsOfFile(file: SourceFile): Diagnostic[];
|
|
132
|
+
/**
|
|
133
|
+
* The bind and check diagnostics of `file` before `noEmit` filtering and without include errors.
|
|
134
|
+
* Once checker threads checked the program, they come from the threads' diagnostics of the file,
|
|
135
|
+
* without the include errors added last.
|
|
136
|
+
*/
|
|
137
|
+
getSemanticDiagnosticsWithoutNoEmitFiltering(file: SourceFile): Diagnostic[];
|
|
138
|
+
/** The declaration diagnostics checker threads computed for `file` (`declarationsInParallel`), if any. */
|
|
139
|
+
declarationDiagnosticsInParallel(file: SourceFile): Diagnostic[] | undefined;
|
|
140
|
+
private fileIndexes;
|
|
141
|
+
/** The index of `file` in the program's files. */
|
|
142
|
+
private indexOfFile;
|
|
143
|
+
getSuggestionDiagnostics(file: SourceFile | undefined): Diagnostic[];
|
|
144
|
+
/**
|
|
145
|
+
* Diagnostics without a file, once every file is checked. Without `withCheckerThreads`, those of the
|
|
146
|
+
* reporting checkers only, as before checking: checker threads (parallel-check.ts) also report
|
|
147
|
+
* those they found checking files.
|
|
148
|
+
*/
|
|
149
|
+
getGlobalDiagnostics(withCheckerThreads?: boolean): Diagnostic[];
|
|
150
|
+
/** Whether `file`'s bind and check diagnostics are reported. */
|
|
151
|
+
skipTypeChecking(file: SourceFile): boolean;
|
|
152
|
+
private collect;
|
|
153
|
+
private collectChecked;
|
|
154
|
+
private getBindAndCheckDiagnostics;
|
|
155
|
+
getIncludeProcessorDiagnostics(file: SourceFile): Diagnostic[];
|
|
156
|
+
}
|
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
import { Checker, CheckerHost, disposeChecker } from './checker.js';
|
|
2
|
+
import { createDiagnostic, messageCode } from './diagnostics.js';
|
|
3
|
+
import { ModuleSpecifierHost } from './module-specifiers.js';
|
|
4
|
+
import { sortAndDeduplicateDiagnostics } from './program.js';
|
|
5
|
+
import { getEmitModuleFormatOfFile, getEmitSyntaxForUsageLocation, isCheckJsEnabledForFile, } from './program-utilities.js';
|
|
6
|
+
import { bindSourceFile } from './binder.js';
|
|
7
|
+
import { computeLineOfPosition } from './scanner.js';
|
|
8
|
+
/** What the checker needs, answered by a program. */
|
|
9
|
+
export class ProgramCheckerHost extends CheckerHost {
|
|
10
|
+
program;
|
|
11
|
+
specifierHost = undefined;
|
|
12
|
+
constructor(program) {
|
|
13
|
+
super();
|
|
14
|
+
this.program = program;
|
|
15
|
+
}
|
|
16
|
+
getCompilerOptions() {
|
|
17
|
+
return this.program.options;
|
|
18
|
+
}
|
|
19
|
+
getSourceFiles() {
|
|
20
|
+
return this.program.getSourceFiles();
|
|
21
|
+
}
|
|
22
|
+
isSourceFileDefaultLibrary(file) {
|
|
23
|
+
return this.program.isSourceFileDefaultLibrary(file.path);
|
|
24
|
+
}
|
|
25
|
+
getResolvedModule(file, moduleName, mode) {
|
|
26
|
+
return this.program.getResolvedModule(file, moduleName, mode);
|
|
27
|
+
}
|
|
28
|
+
getSourceFileForResolvedModule(fileName) {
|
|
29
|
+
return this.program.getSourceFileForResolvedModule(fileName);
|
|
30
|
+
}
|
|
31
|
+
getModeForUsageLocation(file, location) {
|
|
32
|
+
return this.program.getModeForUsageLocation(file, location);
|
|
33
|
+
}
|
|
34
|
+
getDefaultResolutionModeForFile(file) {
|
|
35
|
+
return this.program.getDefaultResolutionModeForFile(file);
|
|
36
|
+
}
|
|
37
|
+
getPackagesMap() {
|
|
38
|
+
return this.program.getPackagesMap();
|
|
39
|
+
}
|
|
40
|
+
getProjectReferenceOutputDts(fileName) {
|
|
41
|
+
const program = this.program;
|
|
42
|
+
return program.getProjectReferenceFromSource(program.toPath(fileName))?.outputDts ?? '';
|
|
43
|
+
}
|
|
44
|
+
fileExists(path) {
|
|
45
|
+
return this.program.host.fs.fileExists(path);
|
|
46
|
+
}
|
|
47
|
+
getImportHelpersImportSpecifier(file) {
|
|
48
|
+
return this.program.importHelpersImportSpecifier(file.path);
|
|
49
|
+
}
|
|
50
|
+
getJSXRuntimeImportSpecifier(file) {
|
|
51
|
+
return this.program.jsxRuntimeImportSpecifier(file.path);
|
|
52
|
+
}
|
|
53
|
+
getMergedGlobals() {
|
|
54
|
+
return this.program.mergedGlobals;
|
|
55
|
+
}
|
|
56
|
+
getImpliedNodeFormatForEmit(file) {
|
|
57
|
+
return this.program.getImpliedNodeFormatForEmit(file);
|
|
58
|
+
}
|
|
59
|
+
getEmitSyntaxForUsageLocation(file, usage) {
|
|
60
|
+
const program = this.program;
|
|
61
|
+
return getEmitSyntaxForUsageLocation(file.fileName, program.sourceFileMetadata(file.path), usage, program.getCompilerOptionsForFile(file));
|
|
62
|
+
}
|
|
63
|
+
getSourceFileMetadata(file) {
|
|
64
|
+
return this.program.sourceFileMetadata(file.path);
|
|
65
|
+
}
|
|
66
|
+
getEmitModuleFormatOfFile(file) {
|
|
67
|
+
const program = this.program;
|
|
68
|
+
return getEmitModuleFormatOfFile(file.fileName, program.getCompilerOptionsForFile(file), program.sourceFileMetadata(file.path));
|
|
69
|
+
}
|
|
70
|
+
getModuleSpecifierHost() {
|
|
71
|
+
let host = this.specifierHost;
|
|
72
|
+
if (host === undefined) {
|
|
73
|
+
host = new ProgramModuleSpecifierHost(this.program);
|
|
74
|
+
this.specifierHost = host;
|
|
75
|
+
}
|
|
76
|
+
return host;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Module specifier generation over a program. */
|
|
80
|
+
export class ProgramModuleSpecifierHost extends ModuleSpecifierHost {
|
|
81
|
+
program;
|
|
82
|
+
constructor(program) {
|
|
83
|
+
super();
|
|
84
|
+
this.program = program;
|
|
85
|
+
}
|
|
86
|
+
getCurrentDirectory() {
|
|
87
|
+
return this.program.currentDirectory;
|
|
88
|
+
}
|
|
89
|
+
useCaseSensitiveFileNames() {
|
|
90
|
+
return this.program.useCaseSensitiveFileNames;
|
|
91
|
+
}
|
|
92
|
+
getSymlinkCache() {
|
|
93
|
+
return this.program.getSymlinkCache();
|
|
94
|
+
}
|
|
95
|
+
getGlobalTypingsCacheLocation() {
|
|
96
|
+
return this.program.getGlobalTypingsCacheLocation();
|
|
97
|
+
}
|
|
98
|
+
getProjectReferenceOutputDts(path) {
|
|
99
|
+
return this.program.getProjectReferenceFromSource(path)?.outputDts ?? '';
|
|
100
|
+
}
|
|
101
|
+
getRedirectTargets(path) {
|
|
102
|
+
return this.program.getRedirectTargets(path);
|
|
103
|
+
}
|
|
104
|
+
getSourceOfProjectReferenceIfOutputIncluded(file) {
|
|
105
|
+
return this.program.getSourceOfProjectReferenceIfOutputIncluded(file.path, file.fileName);
|
|
106
|
+
}
|
|
107
|
+
fileExists(path) {
|
|
108
|
+
return this.program.host.fs.fileExists(path);
|
|
109
|
+
}
|
|
110
|
+
getNearestAncestorDirectoryWithPackageJson(directory) {
|
|
111
|
+
return this.program.getNearestAncestorDirectoryWithPackageJson(directory);
|
|
112
|
+
}
|
|
113
|
+
getPackageJsonInfo(packageJsonPath) {
|
|
114
|
+
return this.program.getPackageJsonInfo(packageJsonPath);
|
|
115
|
+
}
|
|
116
|
+
getDefaultResolutionModeForFile(file) {
|
|
117
|
+
return this.program.getDefaultResolutionModeForFile(file);
|
|
118
|
+
}
|
|
119
|
+
getResolvedModuleFromModuleSpecifier(file, specifier) {
|
|
120
|
+
return this.program.getResolvedModuleFromModuleSpecifier(file, specifier);
|
|
121
|
+
}
|
|
122
|
+
getModeForUsageLocation(file, specifier) {
|
|
123
|
+
return this.program.getModeForUsageLocation(file, specifier);
|
|
124
|
+
}
|
|
125
|
+
getOutputPathsHost() {
|
|
126
|
+
return this.program;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** Binds every file of `program`. */
|
|
130
|
+
export function bindProgram(program) {
|
|
131
|
+
for (const file of program.getSourceFiles())
|
|
132
|
+
bindSourceFile(file);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* A bound program with the checker that reports its diagnostics. It checks every file, the default
|
|
136
|
+
* library files too, as tsgo's checker does with the files it is given.
|
|
137
|
+
*/
|
|
138
|
+
export class CheckedProgram {
|
|
139
|
+
program;
|
|
140
|
+
reportingChecker = undefined;
|
|
141
|
+
constructor(program) {
|
|
142
|
+
this.program = program;
|
|
143
|
+
bindProgram(program);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The checker that reports diagnostics, created on first use: with `--checkers`, after the checker
|
|
147
|
+
* threads are started (parallel-check.ts), so creating it (merging the globals) is not on the way to
|
|
148
|
+
* checking.
|
|
149
|
+
*/
|
|
150
|
+
get checker() {
|
|
151
|
+
let checker = this.reportingChecker;
|
|
152
|
+
if (checker === undefined) {
|
|
153
|
+
checker = new Checker(new ProgramCheckerHost(this.program));
|
|
154
|
+
this.reportingChecker = checker;
|
|
155
|
+
}
|
|
156
|
+
return checker;
|
|
157
|
+
}
|
|
158
|
+
/** A new checker for the program, independent of the one reporting diagnostics. */
|
|
159
|
+
createChecker() {
|
|
160
|
+
return new Checker(new ProgramCheckerHost(this.program));
|
|
161
|
+
}
|
|
162
|
+
/** Frees the checker that reports the program's diagnostics (`disposeChecker`). */
|
|
163
|
+
disposeCheckers() {
|
|
164
|
+
if (this.reportingChecker !== undefined)
|
|
165
|
+
disposeChecker(this.reportingChecker);
|
|
166
|
+
this.reportingChecker = undefined;
|
|
167
|
+
}
|
|
168
|
+
getBindDiagnostics(file) {
|
|
169
|
+
return this.collect(file, (f) => f.bindDiagnostics);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Diagnostics of checker threads (parallel-check.ts): the semantic diagnostics of each file by file
|
|
173
|
+
* index, before `noEmit` filtering (`unfilteredDiagnosticsOfFile`), and their global diagnostics. Set
|
|
174
|
+
* once every file is checked.
|
|
175
|
+
*/
|
|
176
|
+
checkedInParallel = undefined;
|
|
177
|
+
/**
|
|
178
|
+
* The files checker threads check, where only some are (the affected files of an incremental
|
|
179
|
+
* program's rebuild); `undefined` for every file. The others are checked on this thread when asked.
|
|
180
|
+
*/
|
|
181
|
+
checkOnly = undefined;
|
|
182
|
+
/** Whether the program is shared with checker threads (`shareWithCheckers`, parallel-check.ts). */
|
|
183
|
+
sharedWithCheckers = false;
|
|
184
|
+
/**
|
|
185
|
+
* The number of threads, this one included, that compare the references of the files of an incremental
|
|
186
|
+
* program with its old state where the program is shared with checker threads (`compareReferencesOnThreads`,
|
|
187
|
+
* incremental.ts); 1 compares on this thread.
|
|
188
|
+
*/
|
|
189
|
+
referenceThreads = 1;
|
|
190
|
+
parallelGlobalDiagnostics = [];
|
|
191
|
+
/**
|
|
192
|
+
* The declaration diagnostics checker threads computed under `noEmit` (PlainProgram,
|
|
193
|
+
* IncrementalProgram), by file index; `undefined` for files they did not. Set once every file is
|
|
194
|
+
* checked.
|
|
195
|
+
*/
|
|
196
|
+
declarationsInParallel = undefined;
|
|
197
|
+
/**
|
|
198
|
+
* What checker threads emitted (PlainProgram), by file index; `undefined` for files they did not
|
|
199
|
+
* emit. Set once every file is checked, when checker threads emit (parallel-check.ts).
|
|
200
|
+
*/
|
|
201
|
+
emittedInParallel = undefined;
|
|
202
|
+
/**
|
|
203
|
+
* The global diagnostics of this thread's checker before it emitted files while checker threads
|
|
204
|
+
* checked (`emitUncheckedFiles`), reported instead of its current ones.
|
|
205
|
+
*/
|
|
206
|
+
ownGlobalDiagnostics = undefined;
|
|
207
|
+
getSemanticDiagnostics(file) {
|
|
208
|
+
const parallel = this.checkedInParallel;
|
|
209
|
+
if (file === undefined && parallel !== undefined) {
|
|
210
|
+
const noEmit = this.program.options.noEmit === true;
|
|
211
|
+
const result = [];
|
|
212
|
+
for (const diagnostics of parallel)
|
|
213
|
+
if (diagnostics !== undefined)
|
|
214
|
+
for (const d of diagnostics)
|
|
215
|
+
if (!noEmit || !d.skippedOnNoEmit)
|
|
216
|
+
result.push(d);
|
|
217
|
+
return sortAndDeduplicateDiagnostics(result);
|
|
218
|
+
}
|
|
219
|
+
return this.collectChecked(file, (f) => this.semanticDiagnosticsOfFile(f));
|
|
220
|
+
}
|
|
221
|
+
/** The semantic diagnostics of `file`, unsorted. */
|
|
222
|
+
semanticDiagnosticsOfFile(file) {
|
|
223
|
+
const diagnostics = this.unfilteredDiagnosticsOfFile(file);
|
|
224
|
+
if (this.program.options.noEmit !== true)
|
|
225
|
+
return diagnostics;
|
|
226
|
+
const result = [];
|
|
227
|
+
for (const d of diagnostics)
|
|
228
|
+
if (!d.skippedOnNoEmit)
|
|
229
|
+
result.push(d);
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The semantic diagnostics of `file`, unsorted, before `noEmit` filtering: the bind and check
|
|
234
|
+
* diagnostics, then the include errors. Checker threads report these (parallel-check.ts), so that an
|
|
235
|
+
* incremental program keeps them unfiltered under `noEmit` too.
|
|
236
|
+
*/
|
|
237
|
+
unfilteredDiagnosticsOfFile(file) {
|
|
238
|
+
const result = this.getBindAndCheckDiagnostics(file);
|
|
239
|
+
for (const d of this.getIncludeProcessorDiagnostics(file))
|
|
240
|
+
result.push(d);
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* The bind and check diagnostics of `file` before `noEmit` filtering and without include errors.
|
|
245
|
+
* Once checker threads checked the program, they come from the threads' diagnostics of the file,
|
|
246
|
+
* without the include errors added last.
|
|
247
|
+
*/
|
|
248
|
+
getSemanticDiagnosticsWithoutNoEmitFiltering(file) {
|
|
249
|
+
if (this.skipTypeChecking(file))
|
|
250
|
+
return [];
|
|
251
|
+
const parallel = this.checkedInParallel;
|
|
252
|
+
const diagnostics = parallel === undefined ? undefined : parallel[this.indexOfFile(file)];
|
|
253
|
+
if (diagnostics !== undefined) {
|
|
254
|
+
const count = diagnostics.length - this.getIncludeProcessorDiagnostics(file).length;
|
|
255
|
+
return sortAndDeduplicateDiagnostics(diagnostics.slice(0, count));
|
|
256
|
+
}
|
|
257
|
+
return sortAndDeduplicateDiagnostics(this.getBindAndCheckDiagnostics(file));
|
|
258
|
+
}
|
|
259
|
+
/** The declaration diagnostics checker threads computed for `file` (`declarationsInParallel`), if any. */
|
|
260
|
+
declarationDiagnosticsInParallel(file) {
|
|
261
|
+
const parallel = this.declarationsInParallel;
|
|
262
|
+
return parallel === undefined ? undefined : parallel[this.indexOfFile(file)];
|
|
263
|
+
}
|
|
264
|
+
fileIndexes = undefined;
|
|
265
|
+
/** The index of `file` in the program's files. */
|
|
266
|
+
indexOfFile(file) {
|
|
267
|
+
let indexes = this.fileIndexes;
|
|
268
|
+
if (indexes === undefined) {
|
|
269
|
+
indexes = new Map();
|
|
270
|
+
const files = this.program.getSourceFiles();
|
|
271
|
+
for (let i = 0; i < files.length; i++)
|
|
272
|
+
indexes.set(files[i], i);
|
|
273
|
+
this.fileIndexes = indexes;
|
|
274
|
+
}
|
|
275
|
+
return indexes.get(file);
|
|
276
|
+
}
|
|
277
|
+
getSuggestionDiagnostics(file) {
|
|
278
|
+
return this.collectChecked(file, (f) => this.checker.getSuggestionDiagnostics(f));
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Diagnostics without a file, once every file is checked. Without `withCheckerThreads`, those of the
|
|
282
|
+
* reporting checkers only, as before checking: checker threads (parallel-check.ts) also report
|
|
283
|
+
* those they found checking files.
|
|
284
|
+
*/
|
|
285
|
+
getGlobalDiagnostics(withCheckerThreads = true) {
|
|
286
|
+
if (this.program.getSourceFiles().length === 0)
|
|
287
|
+
return [];
|
|
288
|
+
const parallel = withCheckerThreads ? this.parallelGlobalDiagnostics : [];
|
|
289
|
+
const own = this.ownGlobalDiagnostics ?? this.checker.getGlobalDiagnostics();
|
|
290
|
+
if (parallel.length === 0)
|
|
291
|
+
return own;
|
|
292
|
+
return sortAndDeduplicateDiagnostics([...own, ...parallel]);
|
|
293
|
+
}
|
|
294
|
+
/** Whether `file`'s bind and check diagnostics are reported. */
|
|
295
|
+
skipTypeChecking(file) {
|
|
296
|
+
const options = this.program.options;
|
|
297
|
+
return (options.noCheck === true ||
|
|
298
|
+
(options.skipLibCheck === true && file.isDeclarationFile) ||
|
|
299
|
+
(options.skipDefaultLibCheck === true && this.program.isSourceFileDefaultLibrary(file.path)) ||
|
|
300
|
+
this.program.getProjectReferenceFromSource(file.path) !== undefined ||
|
|
301
|
+
!canIncludeBindAndCheckDiagnostics(file, options));
|
|
302
|
+
}
|
|
303
|
+
collect(file, get) {
|
|
304
|
+
if (file !== undefined)
|
|
305
|
+
return sortAndDeduplicateDiagnostics(get(file));
|
|
306
|
+
const result = [];
|
|
307
|
+
for (const f of this.program.getSourceFiles())
|
|
308
|
+
for (const d of get(f))
|
|
309
|
+
result.push(d);
|
|
310
|
+
return sortAndDeduplicateDiagnostics(result);
|
|
311
|
+
}
|
|
312
|
+
collectChecked(file, get) {
|
|
313
|
+
if (file !== undefined)
|
|
314
|
+
return this.skipTypeChecking(file) ? [] : sortAndDeduplicateDiagnostics(get(file));
|
|
315
|
+
const result = [];
|
|
316
|
+
for (const f of this.program.getSourceFiles()) {
|
|
317
|
+
if (this.skipTypeChecking(f))
|
|
318
|
+
continue;
|
|
319
|
+
for (const d of get(f))
|
|
320
|
+
result.push(d);
|
|
321
|
+
}
|
|
322
|
+
return sortAndDeduplicateDiagnostics(result);
|
|
323
|
+
}
|
|
324
|
+
getBindAndCheckDiagnostics(file) {
|
|
325
|
+
const options = this.program.options;
|
|
326
|
+
const diagnostics = file.bindDiagnostics.slice();
|
|
327
|
+
for (const d of this.checker.getDiagnostics(file))
|
|
328
|
+
diagnostics.push(d);
|
|
329
|
+
if (isPlainJSFile(file, options)) {
|
|
330
|
+
const result = [];
|
|
331
|
+
for (const d of diagnostics)
|
|
332
|
+
if (plainJSErrors.has(d.code))
|
|
333
|
+
result.push(d);
|
|
334
|
+
return result;
|
|
335
|
+
}
|
|
336
|
+
if (isJSFile(file) && isCheckJsEnabledForFile(file, options)) {
|
|
337
|
+
for (const d of file.jsDocDiagnostics)
|
|
338
|
+
diagnostics.push(d);
|
|
339
|
+
}
|
|
340
|
+
const directives = new Directives(file);
|
|
341
|
+
const filtered = directives.filter(diagnostics);
|
|
342
|
+
for (const directive of directives.unused()) {
|
|
343
|
+
filtered.push(createDiagnostic(file.diagnosticFile(), directive.pos, directive.end, 729 /* Diagnostics.Unused_ts_expect_error_directive */));
|
|
344
|
+
}
|
|
345
|
+
return filtered;
|
|
346
|
+
}
|
|
347
|
+
getIncludeProcessorDiagnostics(file) {
|
|
348
|
+
if (this.skipTypeChecking(file))
|
|
349
|
+
return [];
|
|
350
|
+
const diagnostics = this.program.getIncludeProcessorDiagnostics(file);
|
|
351
|
+
return diagnostics.length === 0 ? diagnostics : new Directives(file).filter(diagnostics);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
/** The `@ts-ignore` and `@ts-expect-error` comments of a file, by line. */
|
|
355
|
+
class Directives {
|
|
356
|
+
file;
|
|
357
|
+
byLine = new Map();
|
|
358
|
+
constructor(file) {
|
|
359
|
+
this.file = file;
|
|
360
|
+
const lineStarts = file.diagnosticFile().getLineStarts();
|
|
361
|
+
for (const directive of file.commentDirectives) {
|
|
362
|
+
const line = computeLineOfPosition(lineStarts, directive.pos);
|
|
363
|
+
this.byLine.set(line, { pos: directive.pos, end: directive.end, kind: directive.kind });
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/** The diagnostics no directive suppresses; a suppressing `@ts-expect-error` counts as used. */
|
|
367
|
+
filter(diagnostics) {
|
|
368
|
+
if (this.byLine.size === 0)
|
|
369
|
+
return diagnostics.slice();
|
|
370
|
+
const text = this.file.text;
|
|
371
|
+
const lineStarts = this.file.diagnosticFile().getLineStarts();
|
|
372
|
+
const result = [];
|
|
373
|
+
for (const diagnostic of diagnostics) {
|
|
374
|
+
let ignored = false;
|
|
375
|
+
for (let line = computeLineOfPosition(lineStarts, diagnostic.pos) - 1; line >= 0; line--) {
|
|
376
|
+
const directive = this.byLine.get(line);
|
|
377
|
+
if (directive !== undefined) {
|
|
378
|
+
ignored = true;
|
|
379
|
+
directive.kind = 2 /* CommentDirectiveKind.Ignore */;
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
if (!isCommentOrBlankLine(text, lineStarts[line]))
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
if (!ignored)
|
|
386
|
+
result.push(diagnostic);
|
|
387
|
+
}
|
|
388
|
+
return result;
|
|
389
|
+
}
|
|
390
|
+
/** `@ts-expect-error` comments that suppressed nothing. */
|
|
391
|
+
unused() {
|
|
392
|
+
const result = [];
|
|
393
|
+
for (const directive of this.byLine.values()) {
|
|
394
|
+
if (directive.kind === 1 /* CommentDirectiveKind.ExpectError */)
|
|
395
|
+
result.push(directive);
|
|
396
|
+
}
|
|
397
|
+
return result;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
function isCommentOrBlankLine(text, lineStart) {
|
|
401
|
+
let pos = lineStart;
|
|
402
|
+
while (pos < text.length && (text.charCodeAt(pos) === 0x20 || text.charCodeAt(pos) === 0x09))
|
|
403
|
+
pos += 1;
|
|
404
|
+
if (pos === text.length)
|
|
405
|
+
return true;
|
|
406
|
+
const ch = text.charCodeAt(pos);
|
|
407
|
+
if (ch === 0x0d || ch === 0x0a)
|
|
408
|
+
return true;
|
|
409
|
+
return pos + 1 < text.length && ch === 0x2f && text.charCodeAt(pos + 1) === 0x2f;
|
|
410
|
+
}
|
|
411
|
+
function isJSFile(file) {
|
|
412
|
+
return file.scriptKind === 1 /* ScriptKind.JS */ || file.scriptKind === 2 /* ScriptKind.JSX */;
|
|
413
|
+
}
|
|
414
|
+
/** A JavaScript file without `@ts-check` or `@ts-nocheck` when `checkJs` is unset. */
|
|
415
|
+
function isPlainJSFile(file, options) {
|
|
416
|
+
return isJSFile(file) && file.checkJsDirective === undefined && options.checkJs === undefined;
|
|
417
|
+
}
|
|
418
|
+
function canIncludeBindAndCheckDiagnostics(file, options) {
|
|
419
|
+
if (file.checkJsDirective !== undefined && !file.checkJsDirective.enabled)
|
|
420
|
+
return false;
|
|
421
|
+
const kind = file.scriptKind;
|
|
422
|
+
if (kind === 3 /* ScriptKind.TS */ || kind === 4 /* ScriptKind.TSX */ || kind === 5 /* ScriptKind.External */)
|
|
423
|
+
return true;
|
|
424
|
+
const isCheckJS = isJSFile(file) && isCheckJsEnabledForFile(file, options);
|
|
425
|
+
return isPlainJSFile(file, options) || isCheckJS || kind === 7 /* ScriptKind.Deferred */;
|
|
426
|
+
}
|
|
427
|
+
/** The errors reported in JavaScript files that aren't type checked. */
|
|
428
|
+
const plainJSErrors = codesOf([
|
|
429
|
+
619 /* Diagnostics.Cannot_redeclare_block_scoped_variable_0 */,
|
|
430
|
+
686 /* Diagnostics.A_module_cannot_have_multiple_default_exports */,
|
|
431
|
+
885 /* Diagnostics.Another_export_default_is_here */,
|
|
432
|
+
884 /* Diagnostics.The_first_export_default_is_here */,
|
|
433
|
+
211 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module */,
|
|
434
|
+
167 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode */,
|
|
435
|
+
293 /* Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here */,
|
|
436
|
+
1834 /* Diagnostics.X_constructor_is_a_reserved_word */,
|
|
437
|
+
71 /* Diagnostics.X_delete_cannot_be_called_on_an_identifier_in_strict_mode */,
|
|
438
|
+
163 /* Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode */,
|
|
439
|
+
168 /* Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode */,
|
|
440
|
+
69 /* Diagnostics.Invalid_use_of_0_in_strict_mode */,
|
|
441
|
+
278 /* Diagnostics.A_label_is_not_allowed_here */,
|
|
442
|
+
70 /* Diagnostics.X_with_statements_are_not_allowed_in_strict_mode */,
|
|
443
|
+
74 /* Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement */,
|
|
444
|
+
84 /* Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement */,
|
|
445
|
+
164 /* Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name */,
|
|
446
|
+
198 /* Diagnostics.A_class_member_cannot_have_the_0_keyword */,
|
|
447
|
+
127 /* Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name */,
|
|
448
|
+
73 /* Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement */,
|
|
449
|
+
83 /* Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement */,
|
|
450
|
+
81 /* Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement */,
|
|
451
|
+
207 /* Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration */,
|
|
452
|
+
205 /* Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context */,
|
|
453
|
+
138 /* Diagnostics.A_destructuring_declaration_must_have_an_initializer */,
|
|
454
|
+
40 /* Diagnostics.A_get_accessor_cannot_have_parameters */,
|
|
455
|
+
661 /* Diagnostics.A_rest_element_cannot_contain_a_binding_pattern */,
|
|
456
|
+
720 /* Diagnostics.A_rest_element_cannot_have_a_property_name */,
|
|
457
|
+
142 /* Diagnostics.A_rest_element_cannot_have_an_initializer */,
|
|
458
|
+
628 /* Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern */,
|
|
459
|
+
35 /* Diagnostics.A_rest_parameter_cannot_have_an_initializer */,
|
|
460
|
+
10 /* Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list */,
|
|
461
|
+
9 /* Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma */,
|
|
462
|
+
1857 /* Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block */,
|
|
463
|
+
39 /* Diagnostics.A_set_accessor_cannot_have_rest_parameter */,
|
|
464
|
+
36 /* Diagnostics.A_set_accessor_must_have_exactly_one_parameter */,
|
|
465
|
+
389 /* Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module */,
|
|
466
|
+
149 /* Diagnostics.An_export_declaration_cannot_have_modifiers */,
|
|
467
|
+
388 /* Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module */,
|
|
468
|
+
147 /* Diagnostics.An_import_declaration_cannot_have_modifiers */,
|
|
469
|
+
119 /* Diagnostics.An_object_member_cannot_be_declared_optional */,
|
|
470
|
+
261 /* Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element */,
|
|
471
|
+
935 /* Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable */,
|
|
472
|
+
652 /* Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause */,
|
|
473
|
+
153 /* Diagnostics.Catch_clause_variable_cannot_have_an_initializer */,
|
|
474
|
+
1853 /* Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator */,
|
|
475
|
+
130 /* Diagnostics.Classes_can_only_extend_a_single_class */,
|
|
476
|
+
1829 /* Diagnostics.Classes_may_not_have_a_field_named_constructor */,
|
|
477
|
+
248 /* Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern */,
|
|
478
|
+
82 /* Diagnostics.Duplicate_label_0 */,
|
|
479
|
+
372 /* Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments */,
|
|
480
|
+
1855 /* Diagnostics.X_for_await_loops_cannot_be_used_inside_a_class_static_block */,
|
|
481
|
+
1804 /* Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression */,
|
|
482
|
+
1805 /* Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name */,
|
|
483
|
+
1830 /* Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array */,
|
|
484
|
+
776 /* Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names */,
|
|
485
|
+
76 /* Diagnostics.Jump_target_cannot_cross_function_boundary */,
|
|
486
|
+
156 /* Diagnostics.Line_terminator_not_permitted_before_arrow */,
|
|
487
|
+
140 /* Diagnostics.Modifiers_cannot_appear_here */,
|
|
488
|
+
60 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement */,
|
|
489
|
+
144 /* Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement */,
|
|
490
|
+
1838 /* Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies */,
|
|
491
|
+
373 /* Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression */,
|
|
492
|
+
1835 /* Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier */,
|
|
493
|
+
292 /* Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain */,
|
|
494
|
+
75 /* Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async */,
|
|
495
|
+
145 /* Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer */,
|
|
496
|
+
146 /* Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer */,
|
|
497
|
+
5 /* Diagnostics.Trailing_comma_not_allowed */,
|
|
498
|
+
90 /* Diagnostics.Variable_declaration_list_cannot_be_empty */,
|
|
499
|
+
1151 /* Diagnostics.X_0_and_1_operations_cannot_be_mixed_without_parentheses */,
|
|
500
|
+
2 /* Diagnostics.X_0_expected */,
|
|
501
|
+
1815 /* Diagnostics.X_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2 */,
|
|
502
|
+
66 /* Diagnostics.X_0_list_cannot_be_empty */,
|
|
503
|
+
23 /* Diagnostics.X_0_modifier_already_seen */,
|
|
504
|
+
58 /* Diagnostics.X_0_modifier_cannot_appear_on_a_constructor_declaration */,
|
|
505
|
+
32 /* Diagnostics.X_0_modifier_cannot_appear_on_a_module_or_namespace_element */,
|
|
506
|
+
59 /* Diagnostics.X_0_modifier_cannot_appear_on_a_parameter */,
|
|
507
|
+
24 /* Diagnostics.X_0_modifier_cannot_appear_on_class_elements_of_this_kind */,
|
|
508
|
+
31 /* Diagnostics.X_0_modifier_cannot_be_used_here */,
|
|
509
|
+
22 /* Diagnostics.X_0_modifier_must_precede_1_modifier */,
|
|
510
|
+
116 /* Diagnostics.X_0_declarations_can_only_be_declared_inside_a_block */,
|
|
511
|
+
115 /* Diagnostics.X_0_declarations_must_be_initialized */,
|
|
512
|
+
128 /* Diagnostics.X_extends_clause_already_seen */,
|
|
513
|
+
643 /* Diagnostics.X_let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations */,
|
|
514
|
+
302 /* Diagnostics.Class_constructor_may_not_be_a_generator */,
|
|
515
|
+
276 /* Diagnostics.Class_constructor_may_not_be_an_accessor */,
|
|
516
|
+
246 /* Diagnostics.X_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
|
|
517
|
+
972 /* Diagnostics.X_await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules */,
|
|
518
|
+
80 /* Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class */,
|
|
519
|
+
961 /* Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value */,
|
|
520
|
+
]);
|
|
521
|
+
function codesOf(messages) {
|
|
522
|
+
const codes = new Set();
|
|
523
|
+
for (const message of messages)
|
|
524
|
+
codes.add(messageCode(message));
|
|
525
|
+
return codes;
|
|
526
|
+
}
|