UNPKG

3.87 kBJavaScriptView Raw
1"use strict";
2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 if (k2 === undefined) k2 = k;
4 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5}) : (function(o, m, k, k2) {
6 if (k2 === undefined) k2 = k;
7 o[k2] = m[k];
8}));
9var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10 Object.defineProperty(o, "default", { enumerable: true, value: v });
11}) : function(o, v) {
12 o["default"] = v;
13});
14var __importStar = (this && this.__importStar) || function (mod) {
15 if (mod && mod.__esModule) return mod;
16 var result = {};
17 if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18 __setModuleDefault(result, mod);
19 return result;
20};
21Object.defineProperty(exports, "__esModule", { value: true });
22exports.getSfEventMessageObject = exports.getSfEventDetailValue = exports.getSfEventStatus = exports.isFailedSfStatus = exports.isTerminalSfStatus = exports.isSfExecutionEvent = void 0;
23const log = __importStar(require("./log"));
24const util_1 = require("./util");
25/**
26 * Determine if Cloudwatch event is a Step Function event
27 *
28 * @param {AwsCloudWatchEvent} event - A Cloudwatch event
29 * @returns {boolean} True if event is a Step Function event
30 */
31exports.isSfExecutionEvent = (event) => event.source === 'aws.states';
32/**
33 * Determine if Step Function is in a terminal state.
34 *
35 * @param {string} status - A Step Function execution status from a Cloudwatch event
36 * @returns {boolean} True if Step Function is in terminal state.
37 */
38exports.isTerminalSfStatus = util_1.isOneOf([
39 'ABORTED',
40 'SUCCEEDED',
41 'FAILED',
42 'TIMED_OUT',
43]);
44/**
45 * Determine if Step Function is in a failed state.
46 *
47 * @param {Object} status - A Step Function execution status from a Cloudwatch event
48 * @returns {boolean} True if Step Function is in failed state.
49 */
50exports.isFailedSfStatus = util_1.isOneOf([
51 'ABORTED',
52 'FAILED',
53 'TIMED_OUT',
54]);
55/**
56 * Get Step Function status from Cloudwatch event.
57 *
58 * @param {AwsCloudWatchEvent} event - A Cloudwatch event
59 * @returns {string|undefined} Step Function execution status
60 */
61exports.getSfEventStatus = (event) => { var _a; return (_a = event === null || event === void 0 ? void 0 : event.detail) === null || _a === void 0 ? void 0 : _a.status; };
62/**
63 * Get the Step Function output message from a Cloudwatch Event
64 *
65 * @param {AwsCloudWatchEvent} event - A Cloudwatch event
66 * @param {string} field - Field to pull from 'detail', i.e. 'input' or 'output'
67 * @param {string} [defaultValue] - A default value for the message, if none exists
68 * @returns {string|undefined} Output message from Step Function
69 */
70exports.getSfEventDetailValue = (event, field, defaultValue) => { var _a, _b; return (_b = (_a = event === null || event === void 0 ? void 0 : event.detail) === null || _a === void 0 ? void 0 : _a[field]) !== null && _b !== void 0 ? _b : defaultValue; };
71/**
72 * Get the Step Function output message from a Cloudwatch Event
73 *
74 * @param {Object} event - A Cloudwatch event
75 * @param {string} messageSource - 'input' or 'output' from Step Function
76 * @param {string} defaultValue - defaultValue to fetch if no event message object is found
77 * @returns {unknown} Message object from Step Function
78 */
79exports.getSfEventMessageObject = (event, messageSource, defaultValue) => {
80 const message = exports.getSfEventDetailValue(event, messageSource, defaultValue);
81 if (message === undefined) {
82 log.error('Unable to find message');
83 return undefined;
84 }
85 try {
86 return JSON.parse(message);
87 }
88 catch (error) {
89 log.error(`Could not parse '${message}'`);
90 return undefined;
91 }
92};
93//# sourceMappingURL=cloudwatch-event.js.map
\No newline at end of file