2021-02-11 21:31:41 +08:00

49 lines
1.2 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatRequest = exports.parseRequest = undefined;
exports.hook = hook;
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _consts = require('./consts');
var _ = require('.');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const parseRequest = exports.parseRequest = requestStr => {
const parts = (requestStr || '').split('!');
const file = _path2.default.relative(process.cwd(), (0, _.removeAfter)('?', (0, _.removeBefore)(_consts.nodeModules, parts.pop())));
const loaders = parts.map(part => (0, _.firstMatch)(/[a-z0-9-@]+-loader/, part)).filter(_.hasValue);
return {
file: (0, _.hasValue)(file) ? file : null,
loaders
};
};
const formatRequest = exports.formatRequest = request => {
const loaders = request.loaders.join(_consts.NEXT);
if (!loaders.length) {
return request.file || '';
}
return `${loaders}${_consts.NEXT}${request.file}`;
};
// Hook helper for webpack 3 + 4 support
function hook(compiler, hookName, fn) {
if (compiler.hooks) {
compiler.hooks[hookName].tap('WebpackBar:' + hookName, fn);
} else {
compiler.plugin(hookName, fn);
}
}