UNPKG

stryker

Version:
47 lines 2.21 kB
"use strict"; 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