stellar-plus
Version:
beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain
25 lines (24 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MultiBeltPipeline = void 0;
const conveyor_belts_1 = require("../../../../stellar-plus/utils/pipeline/conveyor-belts");
const types_1 = require("../../../../stellar-plus/utils/pipeline/conveyor-belts/types");
const helpers_1 = require("../plugins/helpers");
class MultiBeltPipeline extends conveyor_belts_1.ConveyorBelt {
constructor(options) {
const mainPlugins = (0, helpers_1.filterPluginsByTypes)(options.plugins || [], [options.beltType, types_1.GenericPlugin.id]);
super({
type: options.beltType,
plugins: mainPlugins || [],
});
const innerPlugins = (0, helpers_1.filterPluginsByTypes)(options.plugins || [], [options.beltType], true);
this.innerPlugins = innerPlugins || [];
}
getInnerPluginsByType(executionPlugins, pipelineType, excludeGeneric) {
const filterTypes = excludeGeneric
? [pipelineType]
: [pipelineType, types_1.GenericPlugin.id];
return (0, helpers_1.filterPluginsByTypes)([...this.innerPlugins, ...executionPlugins], filterTypes);
}
}
exports.MultiBeltPipeline = MultiBeltPipeline;