Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/queuepro/node_modules/laravel-mix/src/ drwxrwxr-x | |
| Viewing file: Select action/file-type: let concat = require('concat');
let path = require('path');
let fs = require('fs');
let babel = require('@babel/core');
let glob = require('glob');
let _ = require('lodash');
let Log = require('./Log');
let File = require('./File');
class FileCollection {
/**
* Create a new FileCollection instance.
*
* @param {string|string[]} files
*/
constructor(files = []) {
/** @type {string[]} */
this.files = _.concat([], files);
}
/**
* Fetch the underlying files.
*/
get() {
return this.files;
}
/**
* Merge all files in the collection into one.
*
* @param {File} output
* @param {boolean} wantsBabel
*/
async merge(output, wantsBabel = false) {
/** @type {string} */
// @ts-ignore
const contents = await concat(this.files, output.makeDirectories().path());
if (this.shouldCompileWithBabel(wantsBabel, output)) {
const code = this.babelify(contents);
if (code) {
output.write(code);
}
}
return new File(output.makeDirectories().path());
}
/**
* Determine if we should add a Babel pass to the concatenated file.
*
* @param {Boolean} wantsBabel
* @param {File} output
*/
shouldCompileWithBabel(wantsBabel, output) {
return wantsBabel && output.extension() === '.js';
}
/**
* Apply Babel to the given contents.
*
* @param {string} contents
*/
babelify(contents) {
let babelConfig = this.mix.config.babel();
delete babelConfig.cacheDirectory;
const result = babel.transform(contents, babelConfig);
return result && result.code;
}
/**
* Copy the src files to the given destination.
*
* @param {File} destination
* @param {string[]|File} [src]
* @return {void|string}
*/
copyTo(destination, src = this.files) {
this.assets = this.assets || [];
this.destination = destination;
if (Array.isArray(src)) {
src.forEach(file => this.copyTo(destination, new File(file)));
return;
}
if (src.isDirectory()) {
src.copyTo(destination.path());
this.assets = fs.readdirSync(src.path()).map(file => {
return new File(path.resolve(destination.path(), file));
});
return;
}
if (src.contains('*')) {
let files = glob.sync(src.path(), { nodir: true });
if (!files.length) {
Log.feedback(`Notice: The ${src.path()} search produced no matches.`);
}
return this.copyTo(destination, files);
}
if (destination.isDirectory()) {
destination = destination.append(src.name());
}
src.copyTo(destination.path());
this.assets = this.assets.concat(destination);
return destination.path();
}
get mix() {
return global.Mix;
}
}
module.exports = FileCollection;
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0046 ]-- |