stryker
Version:
The extendable JavaScript mutation testing framework
47 lines • 2.21 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var util_1 = require("@stryker-mutator/util");
var plugin_1 = require("stryker-api/plugin");
var di_1 = require("../di");
var NamedTranspiler = /** @class */ (function () {
function NamedTranspiler(name, transpiler) {
this.name = name;
this.transpiler = transpiler;
}
return NamedTranspiler;
}());
var TranspilerFacade = /** @class */ (function () {
function TranspilerFacade(options, pluginCreator) {
this.innerTranspilers = options.transpilers
.map(function (transpilerName) { return new NamedTranspiler(transpilerName, pluginCreator.create(transpilerName)); });
}
TranspilerFacade.prototype.transpile = function (files) {
return this.performTranspileChain(files);
};
TranspilerFacade.prototype.performTranspileChain = function (input, remainingChain) {
if (remainingChain === void 0) { remainingChain = this.innerTranspilers.slice(); }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var current, output;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
current = remainingChain.shift();
if (!current) return [3 /*break*/, 2];
return [4 /*yield*/, current.transpiler.transpile(input)
.catch(function (error) {
throw new util_1.StrykerError("An error occurred in transpiler \"" + current.name + "\"", error);
})];
case 1:
output = _a.sent();
return [2 /*return*/, this.performTranspileChain(output, remainingChain)];
case 2: return [2 /*return*/, input];
}
});
});
};
TranspilerFacade.inject = plugin_1.tokens(plugin_1.commonTokens.options, di_1.coreTokens.pluginCreatorTranspiler);
return TranspilerFacade;
}());
exports.TranspilerFacade = TranspilerFacade;
//# sourceMappingURL=TranspilerFacade.js.map
;