Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Support/NodePackageManager.php
Строк: 97
<?php

namespace IlluminateSupport;

use 
IlluminateSupportContractsNodePackageManager as NodePackageManagerContract;

class 
NodePackageManager
{
    
/**
     * Create a new NodePackageManager manager instance.
     *
     * @param  NodePackageManagerContract|null  $packageManager
     */
    
public function __construct(protected ?NodePackageManagerContract $packageManager null)
    {
        
//
    
}

    
/**
     * Get the command to execute a package using the detected package manager.
     *
     * @param  string  $command
     * @return string
     */
    
public function getExecCommand(string $command): string
    
{
        return 
$this->packageManager()->getExecCommand($command);
    }

    
/**
     * Get the command to run a script using the detected package manager.
     *
     * @param  string  $command
     * @return string
     */
    
public function getRunCommand(string $command): string
    
{
        return 
$this->packageManager()->getRunCommand($command);
    }

    
/**
     * Get the Node package manager in use.
     *
     * @return NodePackageManagerContract
     */
    
public function packageManager(): NodePackageManagerContract
    
{
        return 
$this->packageManager ??= $this->detect();
    }

    
/**
     * Detect the current package manager.
     *
     * @return NodePackageManagerContract
     */
    
protected function detect(): NodePackageManagerContract
    
{
        foreach ([
            
NodePackageManagersBun::class,
            
NodePackageManagersPnpm::class,
            
NodePackageManagersYarn::class,
        ] as 
$packageManager) {
            if (
$packageManager::matches()) {
                return new 
$packageManager;
            }
        }

        return new 
NodePackageManagersNpm;
    }
}
Онлайн: 2
Реклама