HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/ehbo.today/node_modules/laravel-mix/src/Dependencies.js
let process = require('child_process');
let File = require('../src/File');

class Dependencies {
    constructor(dependencies) {
        this.dependencies = dependencies;
    }

    install(abortOnComplete = false) {
        this.dependencies
            .reject(dependency => {
                try {
                    return require.resolve(
                        dependency.replace(/(?!^@)@.+$/, '')
                    );
                } catch (e) {}
            })
            .tap(dependencies => {
                this.execute(
                    this.buildInstallCommand(dependencies),
                    abortOnComplete
                );
            });
    }

    execute(command, abortOnComplete) {
        console.log(
            'Additional dependencies must be installed. ' +
                'This will only take a moment.'
        );

        process.execSync(command);

        if (abortOnComplete) {
            console.log(
                typeof abortOnComplete === 'string'
                    ? abortOnComplete
                    : 'Finished. Please run Mix again.'
            );

            process.exit();
        }
    }

    buildInstallCommand(dependencies) {
        dependencies = [].concat(dependencies).join(' ');

        if (File.exists('yarn.lock')) {
            return `yarn add ${dependencies} --dev`;
        }

        return `npm install ${dependencies} --save-dev`;
    }
}

module.exports = Dependencies;