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

"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;