@mbc-cqrs-serverless/task
Version:
long-running task
37 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventFactoryAddedTask = exports.DEFAULT_SUB_TASK_STATUS_QUEUE = exports.DEFAULT_TASK_ACTION_QUEUE = void 0;
const core_1 = require("@mbc-cqrs-serverless/core");
const sub_task_queue_event_1 = require("./sub-task.queue.event");
const task_queue_event_1 = require("./task.queue.event");
const task_sfn_event_1 = require("./task.sfn.event");
exports.DEFAULT_TASK_ACTION_QUEUE = 'task-action-queue';
exports.DEFAULT_SUB_TASK_STATUS_QUEUE = 'sub-task-status-queue';
class EventFactoryAddedTask extends core_1.DefaultEventFactory {
async transformSqs(event) {
const curEvents = await super.transformSqs(event);
const taskEvents = event.Records.map((record) => {
if (record.eventSourceARN.endsWith(exports.DEFAULT_TASK_ACTION_QUEUE)) {
const task = new task_queue_event_1.TaskQueueEvent().fromSqsRecord(record);
// do not handle sub task
if (task.taskEvent.taskEntity.sk.split(core_1.KEY_SEPARATOR).length > 2)
return undefined;
return task;
}
if (record.eventSourceARN.endsWith(exports.DEFAULT_SUB_TASK_STATUS_QUEUE)) {
return new sub_task_queue_event_1.SubTaskQueueEvent().fromSqsRecord(record);
}
return undefined;
}).filter((event) => !!event);
return [...taskEvents, ...curEvents];
}
async transformStepFunction(event) {
if (event.context.StateMachine.Name.includes('sfn-task')) {
const sfnTaskEvents = new task_sfn_event_1.StepFunctionTaskEvent(event);
return [sfnTaskEvents];
}
return super.transformStepFunction(event);
}
}
exports.EventFactoryAddedTask = EventFactoryAddedTask;
//# sourceMappingURL=task.queue.event-factory.interface.js.map