async def METHOD_NAME(request: NodeJSToolRequest) -> Process:
    nodejs = await Get(NodeJS)
    dl_and_execute_args = {
        "npm": ("exec", "--yes", "--"),
        "pnpm": ("dlx",),
        "yarn": ("dlx", "--quiet"),
    }
    pkg_manager_version = nodejs.package_managers.get(nodejs.package_manager)
    if pkg_manager_version is None:
        # Occurs when a user configures a custom package manager but without a resolve.
        # Corepack requires a package.json to make a decision on a "good known release".
        raise ValueError(
            softwrap(
                f"""
                Version for {nodejs.package_manager} has to be configured
                in [{nodejs.options_scope}].package_managers when running
                the tool '{request.tool}' without setting [{request.options_scope}].install_from_resolve.
                """
            )
        )
    return await Get(
        Process,
        NodeJSToolProcess(
            nodejs.package_manager,
            pkg_manager_version,
            args=(*dl_and_execute_args[nodejs.package_manager], request.tool, *request.args),
            description=request.description,
            input_digest=request.input_digest,
            output_files=request.output_files,
            output_directories=request.output_directories,
            append_only_caches=request.append_only_caches,
            timeout_seconds=request.timeout_seconds,
            extra_env=FrozenDict({"PNPM_HOME": "{chroot}/._pnpm_home", **request.extra_env}),
        ),
    )