@rudderstack/workflow-engine
Version:
A generic workflow execution engine
37 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoopStepExecutor = void 0;
const errors_1 = require("../../../errors");
const composable_1 = require("./composable");
class LoopStepExecutor extends composable_1.ComposableStepExecutor {
async executeForInputElement(element, executionBindings) {
try {
return await super.execute(element, executionBindings);
}
catch (error) {
const stepExecutionError = errors_1.ErrorUtils.createStepExecutionError(error, this.getStepName());
return {
error: {
message: stepExecutionError.message,
status: stepExecutionError.status,
error: stepExecutionError,
originalError: stepExecutionError.originalError,
},
};
}
}
async execute(input, executionBindings) {
if (!Array.isArray(input)) {
throw new errors_1.StepExecutionError('loopOverInput requires array input', 400, {
stepName: this.getStepName(),
});
}
const promises = new Array(input.length);
for (let i = 0; i < input.length; i += 1) {
promises[i] = this.executeForInputElement(input[i], executionBindings);
}
return { output: await Promise.all(promises) };
}
}
exports.LoopStepExecutor = LoopStepExecutor;
//# sourceMappingURL=loop.js.map