stryker
Version:
The extendable JavaScript mutation testing framework
38 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var plugin_1 = require("stryker-api/plugin");
var PluginCreator = /** @class */ (function () {
function PluginCreator(kind, pluginResolver, injector) {
this.kind = kind;
this.pluginResolver = pluginResolver;
this.injector = injector;
}
PluginCreator.prototype.create = function (name) {
var plugin = this.pluginResolver.resolve(this.kind, name);
if (this.isFactoryPlugin(plugin)) {
return this.injector.injectFunction(plugin.factory);
}
else if (this.isClassPlugin(plugin)) {
return this.injector.injectClass(plugin.injectableClass);
}
else {
throw new Error("Plugin \"" + this.kind + ":" + name + "\" could not be created, missing \"factory\" or \"injectableClass\" property.");
}
};
PluginCreator.prototype.isFactoryPlugin = function (plugin) {
return !!plugin.factory;
};
PluginCreator.prototype.isClassPlugin = function (plugin) {
return !!plugin.injectableClass;
};
PluginCreator.createFactory = function (kind) {
function factory(pluginResolver, injector) {
return new PluginCreator(kind, pluginResolver, injector);
}
factory.inject = plugin_1.tokens(plugin_1.commonTokens.pluginResolver, plugin_1.commonTokens.injector);
return factory;
};
return PluginCreator;
}());
exports.PluginCreator = PluginCreator;
//# sourceMappingURL=PluginCreator.js.map