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.
31 lines
1.3 KiB
31 lines
1.3 KiB
1 month ago
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.matchFiles = void 0;
|
||
|
const tslib_1 = require("tslib");
|
||
|
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
||
|
const util_1 = (0, tslib_1.__importDefault)(require("util"));
|
||
|
const glob_1 = (0, tslib_1.__importDefault)(require("glob"));
|
||
|
const type_guards_1 = require("./type-guards");
|
||
|
const isLegacyWebpack = (ctx) => !!ctx.options;
|
||
|
const getRootContext = (ctx) => {
|
||
|
if (isLegacyWebpack(ctx)) {
|
||
|
return ctx.options.context;
|
||
|
}
|
||
|
return ctx.rootContext;
|
||
|
};
|
||
|
const flatten = (items) => {
|
||
|
const emptyItems = [];
|
||
|
return emptyItems.concat(...items);
|
||
|
};
|
||
|
const matchFiles = async (ctx, options) => {
|
||
|
const { patterns, globOptions } = options;
|
||
|
const files = await Promise.all(patterns.map(async (pattern) => {
|
||
|
const rootContext = getRootContext(ctx);
|
||
|
const absolutePattern = path_1.default.isAbsolute(pattern) ? pattern : path_1.default.resolve(rootContext, pattern);
|
||
|
const partialFiles = await util_1.default.promisify(glob_1.default)(absolutePattern, globOptions);
|
||
|
return partialFiles.filter(type_guards_1.isStyleFile);
|
||
|
}));
|
||
|
return [...new Set(flatten(files))].map(file => path_1.default.resolve(file));
|
||
|
};
|
||
|
exports.matchFiles = matchFiles;
|
||
|
//# sourceMappingURL=match-files.js.map
|