34 lines
970 B
JavaScript
34 lines
970 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.build = void 0;
|
|
const pushFileFilterAndCount = (filename, _paths, counts, filters) => {
|
|
if (filters.every((filter) => filter(filename, false)))
|
|
counts.files++;
|
|
};
|
|
const pushFileFilter = (filename, paths, _counts, filters) => {
|
|
if (filters.every((filter) => filter(filename, false)))
|
|
paths.push(filename);
|
|
};
|
|
const pushFileCount = (_filename, _paths, counts, _filters) => {
|
|
counts.files++;
|
|
};
|
|
const pushFile = (filename, paths) => {
|
|
paths.push(filename);
|
|
};
|
|
const empty = () => { };
|
|
function build(options) {
|
|
const { excludeFiles, filters, onlyCounts } = options;
|
|
if (excludeFiles)
|
|
return empty;
|
|
if (filters && filters.length) {
|
|
return onlyCounts ? pushFileFilterAndCount : pushFileFilter;
|
|
}
|
|
else if (onlyCounts) {
|
|
return pushFileCount;
|
|
}
|
|
else {
|
|
return pushFile;
|
|
}
|
|
}
|
|
exports.build = build;
|