1
0
mirror of https://github.com/locomotivemtl/locomotive-boilerplate.git synced 2026-01-15 00:55:08 +08:00

Add support for customizing glob in concats.js

Added:
- Argument `globOptions` to `concatFiles()` function to customize glob library.
This commit is contained in:
Chauncey McAskill
2022-02-08 14:40:00 -05:00
parent 9d18205b0f
commit 38a6c73d2f
2 changed files with 37 additions and 5 deletions

View File

@@ -6,15 +6,47 @@ import template from '../utils/template.js';
import concat from 'concat';
import { basename } from 'node:path';
/**
* @const {object} defaultGlobOptions - The default shared glob options.
* @const {object} developmentGlobOptions - The predefined glob options for development.
* @const {object} productionGlobOptions - The predefined glob options for production.
*/
export const defaultGlobOptions = {
};
export const developmentGlobOptions = Object.assign({}, defaultGlobOptions);
export const productionGlobOptions = Object.assign({}, defaultGlobOptions);
/**
* @const {object} developmentConcatFilesArgs - The predefined `concatFiles()` options for development.
* @const {object} productionConcatFilesArgs - The predefined `concatFiles()` options for production.
*/
export const developmentConcatFilesArgs = [
developmentGlobOptions,
];
export const productionConcatFilesArgs = [
productionGlobOptions,
];
/**
* Concatenates groups of files.
*
* @todo Add support for minification.
*
* @async
* @param {object} [globOptions=null] - Customize the glob options.
* If `null`, default production options are used.
* @return {Promise}
*/
export default async function concatFiles() {
export default async function concatFiles(globOptions = null) {
if (globOptions == null) {
globOptions = productionGlobOptions;
} else if (
globOptions !== developmentGlobOptions &&
globOptions !== productionGlobOptions
) {
globOptions = Object.assign({}, defaultGlobOptions, globOptions);
}
loconfig.tasks.concats.forEach(async ({
includes,
outfile,
@@ -31,7 +63,7 @@ export default async function concatFiles() {
includes = includes.map((path) => template(path));
outfile = template(outfile);
const files = await glob(includes);
const files = await glob(includes, globOptions);
await concat(files, outfile);