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.
94 lines
2.9 KiB
94 lines
2.9 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _path = _interopRequireDefault(require("path"));
|
|
|
|
var _normalizePath = _interopRequireDefault(require("normalize-path"));
|
|
|
|
var _globParent = _interopRequireDefault(require("glob-parent"));
|
|
|
|
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function getAbsoluteContext(context) {
|
|
return _fastGlob.default.escapePath((0, _normalizePath.default)(_path.default.resolve(context)));
|
|
}
|
|
|
|
function createPatternGlob(pattern, globalRef) {
|
|
const {
|
|
logger,
|
|
compilation
|
|
} = globalRef; // eslint-disable-next-line no-param-reassign
|
|
|
|
pattern.globOptions = { ...{
|
|
followSymbolicLinks: true
|
|
},
|
|
...(pattern.globOptions || {}),
|
|
...{
|
|
cwd: pattern.context,
|
|
objectMode: true
|
|
}
|
|
};
|
|
|
|
switch (pattern.fromType) {
|
|
case 'dir':
|
|
logger.debug(`determined '${pattern.absoluteFrom}' is a directory`);
|
|
logger.debug(`add ${pattern.absoluteFrom} as contextDependencies`);
|
|
compilation.contextDependencies.add(pattern.absoluteFrom);
|
|
/* eslint-disable no-param-reassign */
|
|
|
|
pattern.context = pattern.absoluteFrom;
|
|
pattern.glob = _path.default.posix.join(getAbsoluteContext(pattern.absoluteFrom), '**/*');
|
|
pattern.absoluteFrom = _path.default.join(pattern.absoluteFrom, '**/*');
|
|
|
|
if (typeof pattern.globOptions.dot === 'undefined') {
|
|
pattern.globOptions.dot = true;
|
|
}
|
|
/* eslint-enable no-param-reassign */
|
|
|
|
|
|
break;
|
|
|
|
case 'file':
|
|
logger.debug(`determined '${pattern.absoluteFrom}' is a file`);
|
|
logger.debug(`add ${pattern.absoluteFrom} as fileDependencies`);
|
|
compilation.fileDependencies.add(pattern.absoluteFrom);
|
|
/* eslint-disable no-param-reassign */
|
|
|
|
pattern.context = _path.default.dirname(pattern.absoluteFrom);
|
|
pattern.glob = getAbsoluteContext(pattern.absoluteFrom);
|
|
|
|
if (typeof pattern.globOptions.dot === 'undefined') {
|
|
pattern.globOptions.dot = true;
|
|
}
|
|
/* eslint-enable no-param-reassign */
|
|
|
|
|
|
break;
|
|
|
|
default:
|
|
{
|
|
logger.debug(`determined '${pattern.absoluteFrom}' is a glob`);
|
|
|
|
const contextDependencies = _path.default.normalize((0, _globParent.default)(pattern.absoluteFrom));
|
|
|
|
logger.debug(`add ${contextDependencies} as contextDependencies`);
|
|
compilation.contextDependencies.add(contextDependencies);
|
|
/* eslint-disable no-param-reassign */
|
|
|
|
pattern.fromType = 'glob';
|
|
pattern.glob = _path.default.isAbsolute(pattern.fromOrigin) ? pattern.fromOrigin : _path.default.posix.join(getAbsoluteContext(pattern.context), pattern.fromOrigin);
|
|
/* eslint-enable no-param-reassign */
|
|
}
|
|
}
|
|
|
|
return pattern;
|
|
}
|
|
|
|
var _default = createPatternGlob;
|
|
exports.default = _default; |