Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/composer / dist / ModuleReplacementOverridePlugin / ModuleReplacementOverridePlugin.js
Size: Mime:
"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