You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
/** |
|
* @file |
|
* |
|
* Provides the build:js command to compile *.es6.js files to ES5. |
|
* |
|
* Run build:js with --file to only parse a specific file. Using the --check |
|
* flag build:js can be run to check if files are compiled correctly. |
|
* @example <caption>Only process misc/drupal.es6.js and misc/drupal.init.es6.js</caption |
|
* yarn run build:js -- --file misc/drupal.es6.js --file misc/drupal.init.es6.js |
|
* @example <caption>Check if all files have been compiled correctly</caption |
|
* yarn run build:js -- --check |
|
* |
|
* @internal This file is part of the core javascript build process and is only |
|
* meant to be used in that context. |
|
*/ |
|
|
|
'use strict'; |
|
|
|
const glob = require('glob'); |
|
const argv = require('minimist')(process.argv.slice(2)); |
|
const changeOrAdded = require('./changeOrAdded'); |
|
const check = require('./check'); |
|
const log = require('./log'); |
|
|
|
// Match only on .es6.js files. |
|
const fileMatch = './**/*.es6.js'; |
|
// Ignore everything in node_modules |
|
const globOptions = { |
|
ignore: './node_modules/**' |
|
}; |
|
const processFiles = (error, filePaths) => { |
|
if (error) { |
|
process.exitCode = 1; |
|
} |
|
// Process all the found files. |
|
let callback = changeOrAdded; |
|
if (argv.check) { |
|
callback = check; |
|
} |
|
filePaths.forEach(callback); |
|
}; |
|
|
|
if (argv.file) { |
|
processFiles(null, [].concat(argv.file)); |
|
} |
|
else { |
|
glob(fileMatch, globOptions, processFiles); |
|
} |
|
process.exitCode = 0;
|
|
|