Skip to content

javascript

dev_tool.commands.javascript

log = logging.getLogger(__name__) module-attribute

JavaScriptCommandGroup

Bases: CommandGroup

A command group for JavaScript operations.

This class provides commands for managing JavaScript dependencies, running tests, linting, and type checking.

The constructor for the JavaScriptCommandGroup class.

Parameters:

  • bun (BunService) –

    The Bun service for JavaScript operations.

Source code in dev_tool/commands/javascript.py
def __init__(self, bun: BunService) -> None:
    """
    The constructor for the JavaScriptCommandGroup class.

    :param bun: The Bun service for JavaScript operations.
    """

    super().__init__()

    self.bun = bun

bun = bun instance-attribute

__str__

The string representation of the command group.

Returns:

  • str

    The category name as a string.

Source code in dev_tool/commands/javascript.py
def __str__(self) -> str:
    """
    The string representation of the command group.

    :return: The category name as a string.
    """

    return 'JavaScript'

package_menu

A submenu for package management.

Returns:

  • Menu

    A submenu for package management options.

Source code in dev_tool/commands/javascript.py
@ordered_submenu(label='Package management')
def package_menu(self) -> Menu:
    """
    A submenu for package management.

    :return: A submenu for package management options.
    """

    items: list[Menu | MenuItem] = [
        MenuItem(
            label='Install and upgrade all dependencies',
            action=CommandAction(command=self._install_dependencies)
        ),
        MenuItem(
            label='Install a dependency',
            action=CommandAction(command=self._install_dependency)
        ),
        MenuItem(
            label='Uninstall a dependency',
            action=CommandAction(command=self._uninstall_dependency)
        ),
        MenuItem(
            label='Check for outdated dependencies',
            action=CommandAction(command=self._check_outdated)
        ),
        MenuItem(
            label='Upgrade all dependencies',
            action=CommandAction(command=self._upgrade_dependencies)
        )
    ]

    return Menu(title='Manage JavaScript packages', items=items)

test_menu

A submenu for test options.

Returns:

  • Menu

    A submenu for testing options.

Source code in dev_tool/commands/javascript.py
@ordered_submenu(label='Test JavaScript code')
def test_menu(self) -> Menu:
    """
    A submenu for test options.

    :return: A submenu for testing options.
    """

    items: list[Menu | MenuItem] = [
        MenuItem(
            label='Run tests',
            action=CommandAction(command=self._run_tests)
        ),
        MenuItem(
            label='Run tests with coverage',
            action=CommandAction(command=self._run_tests_coverage)
        ),
        MenuItem(
            label='Run tests in watch mode',
            action=CommandAction(command=self._run_tests_watch)
        )
    ]

    return Menu(title='Run JavaScript tests', items=items)

quality_menu

A submenu for code quality options.

Returns:

  • Menu

    A submenu for code quality options.

Source code in dev_tool/commands/javascript.py
@ordered_submenu(label='Code quality')
def quality_menu(self) -> Menu:
    """
    A submenu for code quality options.

    :return: A submenu for code quality options.
    """

    items: list[Menu | MenuItem] = [
        MenuItem(
            label='Run linter',
            action=CommandAction(command=self._lint)
        ),
        MenuItem(
            label='Run linter with auto-fix',
            action=CommandAction(command=self._lint_fix)
        ),
        MenuItem(
            label='Check formatting',
            action=CommandAction(command=self._format_check)
        ),
        MenuItem(
            label='Format code',
            action=CommandAction(command=self._format_fix)
        )
    ]

    return Menu(title='Code quality', items=items)