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/ehboledensysteem.komma.pro/node_modules/laravel-mix/src/Verify.js
let assert = require('assert');
let exec = require('child_process').execSync;
let argv = require('yargs').argv;

class Verify {
    /**
     * Verify that the call the mix.js() is valid.
     *
     * @param {*} entry
     * @param {*} output
     */
    static js(entry, output) {
        assert(
            typeof entry === 'string' || Array.isArray(entry),
            'mix.js() is missing required parameter 1: entry'
        );

        assert(
            typeof output === 'string',
            'mix.js() is missing required parameter 2: output'
        );
    }

    /**
     * Verify that the calls to mix.sass() and mix.less() are valid.
     *
     * @param {string} type
     * @param {string} src
     * @param {string} output
     */
    static preprocessor(type, src, output) {
        assert(
            typeof src === 'string',
            `mix.${type}() is missing required parameter 1: src`
        );

        assert(
            typeof output === 'string',
            `mix.${type}() is missing required parameter 2: output`
        );
    }

    /**
     * Verify that calls to mix.combine() are valid.
     *
     * @param {string} src
     * @param {File}   output
     */
    static combine(src, output) {
        assert(
            output.isFile(),
            'mix.combine() requires a full output file path as the second argument.'
        );
    }

    /**
     * Assert that the given file exists.
     *
     * @param {string} file
     */
    static exists(file) {
        assert(
            File.exists(file),
            `Whoops, you are trying to compile ${file}, but that file does not exist.`
        );
    }

    /**
     * Verify that the necessary dependencies are available.
     *
     * @param {Array}  list
     * @param {Boolean} abortOnComplete
     */
    static dependencies(list, abortOnComplete = false) {
        if (argv['$0'].includes('ava')) return;

        list
            .reject(dependency => {
                try {
                    return require.resolve(dependency.replace(/@.+$/, ''));
                } catch (e) {}
            })
            .tap(dependencies => {
                installDependencies(dependencies, abortOnComplete);
            });
    }

    /**
     * Verify that the necessary dependency is available.
     *
     * @param {string}  name
     * @param {array}   dependencies
     * @param {Boolean} abortOnComplete
     */
    static dependency(name, abortOnComplete = false) {
        if (argv['$0'].includes('ava')) return;

        try {
            require.resolve(name.replace(/@.+$/, ''));
        } catch (e) {
            installDependencies(name, abortOnComplete);
        }
    }
}

/**
 * Install the given dependencies using npm or yarn.
 *
 * @param {array} dependencies
 */
let installDependencies = (dependencies, abortOnComplete = false) => {
    console.log(
        'Additional dependencies must be installed. ' +
            'This will only take a moment.'
    );

    if (Array.isArray(dependencies)) {
        dependencies = dependencies.join(' ');
    }

    let command = `npm install ${dependencies} --save-dev`;

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

    exec(command);

    if (abortOnComplete) abort(abortOnComplete);
};

let abort = message => {
    console.log(
        typeof message === 'string'
            ? message
            : 'Finished. Please run Mix again.'
    );

    process.exit();
};

module.exports = Verify;