stryker-webpack
Version:
[preview] A plugin for Webpack-based projects using Stryker
39 lines • 1.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var DefaultPreset_1 = require("./DefaultPreset");
var PresetLoader = /** @class */ (function () {
function PresetLoader(loader) {
// Default to require when none is provided in the constructor, used in test scenarios
this.loader = loader || /* istanbul ignore next */ require;
}
PresetLoader.prototype.loadPreset = function (projectPresetName) {
var preset = (projectPresetName === 'default') ? new DefaultPreset_1.default() : this.requirePreset("stryker-webpack-" + projectPresetName + "-preset");
try {
this.checkInterfaceFunctions(preset);
}
catch (err) {
throw new Error(err.message.replace('<presetId>', "stryker-webpack-" + projectPresetName + "-preset"));
}
return preset;
};
PresetLoader.prototype.requirePreset = function (id) {
try {
var constructor = this.loader(id);
return new constructor.default;
}
catch (_a) {
throw new Error("Cannot find Stryker Webpack preset '" + id + "', try to run npm i " + id + " to install it");
}
};
PresetLoader.prototype.checkInterfaceFunctions = function (preset) {
if (!preset.getInitFiles) {
throw new Error("Cannot find property 'getInitFiles' on '<presetId>'");
}
if (!preset.getWebpackConfig) {
throw new Error("Cannot find property 'getWebpackConfig' on '<presetId>'");
}
};
return PresetLoader;
}());
exports.default = PresetLoader;
//# sourceMappingURL=PresetLoader.js.map
;