@deliverr/serverless-offline-step-functions
Version:
Serverless Offline Plugin to Support Step Functions for Local Development
44 lines (43 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExecutionContext = void 0;
const uuid_1 = require("uuid");
class ExecutionContext {
constructor(_id, _input, _name, _roleArn, _startTime) {
this._id = _id;
this._input = _input;
this._name = _name;
this._roleArn = _roleArn;
this._startTime = _startTime;
}
static create(stateMachineContext, input) {
const executionName = 'randomExecutionName' + uuid_1.v4();
const id = this.createStateMachineExecutionArn(stateMachineContext, executionName);
const roleArn = 'randomExecutionRoleArn' + uuid_1.v4();
return new ExecutionContext(id, input, executionName, roleArn, new Date().toISOString());
}
static createStateMachineExecutionArn(stateMachineContext, executionName) {
const stateMachineArn = stateMachineContext.Id;
const stateMachineExecutionArn = stateMachineArn.split(':').slice(0, 5);
stateMachineExecutionArn.push('execution');
stateMachineExecutionArn.push(stateMachineContext.Name);
stateMachineExecutionArn.push(executionName);
return stateMachineExecutionArn.join(':');
}
get Id() {
return this._id;
}
get Input() {
return this._input;
}
get Name() {
return this._name;
}
get RoleArn() {
return this._roleArn;
}
get StartTime() {
return this._startTime;
}
}
exports.ExecutionContext = ExecutionContext;