Repository URL to install this package:
|
Version:
1.4.0 ▾
|
"use strict";
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const path = __importStar(require("path"));
const pluginName = 'NormalModuleReplacementPlugin';
class ModuleReplacementOverridePlugin {
constructor(resourceRegExp, newResource) {
this.beforeResolve = (result) => {
if (!result) {
return undefined;
}
if (this.resourceRegExp.test(result.request)) {
if (typeof this.newResource === 'function') {
this.newResource(result);
}
else {
result.request = this.newResource;
}
}
return result;
};
this.afterResolve = (result) => {
if (!result) {
return undefined;
}
if (this.resourceRegExp.test(result.resource)) {
if (typeof this.newResource === 'function') {
this.newResource(result);
}
else {
result.resource = path.resolve(path.dirname(result.resource), this.newResource);
}
}
return result;
};
this.resourceRegExp = resourceRegExp;
this.newResource = newResource;
}
apply(compiler) {
compiler.hooks.normalModuleFactory.tap(pluginName, (normalModuleFactory) => {
normalModuleFactory.hooks.beforeResolve.tap(pluginName, this.beforeResolve);
normalModuleFactory.hooks.afterResolve.tap(pluginName, this.afterResolve);
});
}
}
exports.ModuleReplacementOverridePlugin = ModuleReplacementOverridePlugin;
//# sourceMappingURL=ModuleReplacementOverridePlugin.js.map