• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 18439433638

12 Oct 2025 05:01AM UTC coverage: 80.25%. First build
18439433638

Pull #22461

github

web-flow
Merge dade19c3d into 4846d0735
Pull Request #22461: Add typescript typechecking support

411 of 535 new or added lines in 10 files covered. (76.82%)

77635 of 96741 relevant lines covered (80.25%)

3.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.19
/src/python/pants/backend/typescript/subsystem.py
1
# Copyright 2025 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
1✔
5

6
import logging
1✔
7

8
from pants.backend.javascript.subsystems.nodejs_tool import NodeJSToolBase
1✔
9
from pants.option.option_types import SkipOption, StrListOption
1✔
10
from pants.util.strutil import softwrap
1✔
11

12
logger = logging.getLogger(__name__)
1✔
13

14

15
class TypeScriptSubsystem(NodeJSToolBase):
1✔
16
    options_scope = "typescript"
1✔
17
    name = "TypeScript"
1✔
18
    help = """TypeScript type checker (tsc)."""
1✔
19

20
    # TypeScript always uses resolve-based execution because it needs access to project
21
    # dependencies for type checking. The resolve is determined dynamically in check.py.
22
    # This default version is never used - TypeScript must come from project package.json.
23
    default_version = "typescript@FROM_PACKAGE_JSON"
1✔
24

25
    skip = SkipOption("check")
1✔
26

27
    extra_build_args = StrListOption(
1✔
28
        default=[],
29
        help=(
30
            "Extra arguments to pass to tsc when running in --build mode. "
31
            "These args are added to the base command 'tsc --build'. "
32
            "Commonly used: --verbose, --force, --dry."
33
        ),
34
    )
35

36
    def __init__(self, *args, **kwargs):
1✔
NEW
37
        super().__init__(*args, **kwargs)
×
38

NEW
39
        if self.version != "typescript@FROM_PACKAGE_JSON":
×
NEW
40
            logger.warning(
×
41
                softwrap(f"""
42
                    You set --typescript-version={self.version}. This setting is ignored because
43
                    TypeScript always uses the version from your project's package.json dependencies
44
                    or devDependencies. Please ensure TypeScript is listed in your package.json.
45
                """)
46
            )
47

NEW
48
        self._binary_name_override = "tsc"
×
49

50
    @property
1✔
51
    def binary_name(self) -> str:
1✔
52
        """The binary name to run for this tool."""
NEW
53
        return self._binary_name_override or super().binary_name
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc