@specifai-net/appsync-template-tester
Version:
Unit test AppSync VTL resolvers, with popular frameworks such as Jest
56 lines • 7.18 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.epochMilliSecondsToFormatted = exports.epochMilliSecondsToISO8601 = exports.epochMilliSecondsToSeconds = exports.parseISO8601ToEpochMilliSeconds = exports.parseFormattedToEpochMilliSecond = exports.nowFormatted = exports.nowEpochMilliSeconds = exports.nowEpochSeconds = exports.nowISO8601 = void 0;
/* eslint-disable import/prefer-default-export */
const moment_timezone_1 = __importDefault(require("moment-timezone"));
/**
* Helper function to convert the format string from the vtl format to the moment format
*/
function vtlToMomentFormat(format) {
return format === null || format === void 0 ? void 0 : format.replace("dd", "DD").replace("Z", "ZZ");
}
function nowISO8601() {
return moment_timezone_1.default.utc().toISOString();
}
exports.nowISO8601 = nowISO8601;
function nowEpochSeconds() {
return (0, moment_timezone_1.default)().unix();
}
exports.nowEpochSeconds = nowEpochSeconds;
function nowEpochMilliSeconds() {
return (0, moment_timezone_1.default)().valueOf();
}
exports.nowEpochMilliSeconds = nowEpochMilliSeconds;
function nowFormatted(format, timezone = "utc") {
const vtlFormatConverted = vtlToMomentFormat(format);
return (0, moment_timezone_1.default)().tz(timezone).format(vtlFormatConverted);
}
exports.nowFormatted = nowFormatted;
function parseFormattedToEpochMilliSecond(time, formatFrom, timezone = "utc") {
const reverseFormat = vtlToMomentFormat(formatFrom);
// AppSync does not parse in strict mode
return (0, moment_timezone_1.default)(time, reverseFormat).tz(timezone).valueOf();
}
exports.parseFormattedToEpochMilliSecond = parseFormattedToEpochMilliSecond;
function parseISO8601ToEpochMilliSeconds(time) {
// AppSync does not parse in strict mode
return (0, moment_timezone_1.default)(time, "YYYY-MM-DDTHH:mm:ssZ").valueOf();
}
exports.parseISO8601ToEpochMilliSeconds = parseISO8601ToEpochMilliSeconds;
function epochMilliSecondsToSeconds(time) {
return (0, moment_timezone_1.default)(time).unix();
}
exports.epochMilliSecondsToSeconds = epochMilliSecondsToSeconds;
function epochMilliSecondsToISO8601(time) {
return (0, moment_timezone_1.default)(time).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]");
}
exports.epochMilliSecondsToISO8601 = epochMilliSecondsToISO8601;
function epochMilliSecondsToFormatted(time, format, timezone = "utc") {
const vtlFormatConverted = vtlToMomentFormat(format);
return (0, moment_timezone_1.default)(time).tz(timezone).format(vtlFormatConverted);
}
exports.epochMilliSecondsToFormatted = epochMilliSecondsToFormatted;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC10aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpREFBaUQ7QUFDakQsc0VBQXFDO0FBRXJDOztHQUVHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxNQUFlO0lBQ3hDLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELFNBQWdCLFVBQVU7SUFDeEIsT0FBTyx5QkFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGVBQWU7SUFDN0IsT0FBTyxJQUFBLHlCQUFNLEdBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixvQkFBb0I7SUFDbEMsT0FBTyxJQUFBLHlCQUFNLEdBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixZQUFZLENBQUMsTUFBYyxFQUFFLFdBQW1CLEtBQUs7SUFDbkUsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxPQUFPLElBQUEseUJBQU0sR0FBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBSEQsb0NBR0M7QUFFRCxTQUFnQixnQ0FBZ0MsQ0FDOUMsSUFBWSxFQUNaLFVBQWtCLEVBQ2xCLFdBQW1CLEtBQUs7SUFFeEIsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsd0NBQXdDO0lBQ3hDLE9BQU8sSUFBQSx5QkFBTSxFQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDNUQsQ0FBQztBQVJELDRFQVFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQUMsSUFBWTtJQUMxRCx3Q0FBd0M7SUFDeEMsT0FBTyxJQUFBLHlCQUFNLEVBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDeEQsQ0FBQztBQUhELDBFQUdDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsSUFBWTtJQUNyRCxPQUFPLElBQUEseUJBQU0sRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3QixDQUFDO0FBRkQsZ0VBRUM7QUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFZO0lBQ3JELE9BQU8sSUFBQSx5QkFBTSxFQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFGRCxnRUFFQztBQUVELFNBQWdCLDRCQUE0QixDQUMxQyxJQUFZLEVBQ1osTUFBZSxFQUNmLFdBQW1CLEtBQUs7SUFFeEIsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxPQUFPLElBQUEseUJBQU0sRUFBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDOUQsQ0FBQztBQVBELG9FQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L3ByZWZlci1kZWZhdWx0LWV4cG9ydCAqL1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50LXRpbWV6b25lXCI7XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIGZvcm1hdCBzdHJpbmcgZnJvbSB0aGUgdnRsIGZvcm1hdCB0byB0aGUgbW9tZW50IGZvcm1hdFxuICovXG5mdW5jdGlvbiB2dGxUb01vbWVudEZvcm1hdChmb3JtYXQ/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZvcm1hdD8ucmVwbGFjZShcImRkXCIsIFwiRERcIikucmVwbGFjZShcIlpcIiwgXCJaWlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vd0lTTzg2MDEoKSB7XG4gIHJldHVybiBtb21lbnQudXRjKCkudG9JU09TdHJpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vd0Vwb2NoU2Vjb25kcygpIHtcbiAgcmV0dXJuIG1vbWVudCgpLnVuaXgoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vd0Vwb2NoTWlsbGlTZWNvbmRzKCkge1xuICByZXR1cm4gbW9tZW50KCkudmFsdWVPZigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm93Rm9ybWF0dGVkKGZvcm1hdDogc3RyaW5nLCB0aW1lem9uZTogc3RyaW5nID0gXCJ1dGNcIikge1xuICBjb25zdCB2dGxGb3JtYXRDb252ZXJ0ZWQgPSB2dGxUb01vbWVudEZvcm1hdChmb3JtYXQpO1xuICByZXR1cm4gbW9tZW50KCkudHoodGltZXpvbmUpLmZvcm1hdCh2dGxGb3JtYXRDb252ZXJ0ZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGb3JtYXR0ZWRUb0Vwb2NoTWlsbGlTZWNvbmQoXG4gIHRpbWU6IHN0cmluZyxcbiAgZm9ybWF0RnJvbTogc3RyaW5nLFxuICB0aW1lem9uZTogc3RyaW5nID0gXCJ1dGNcIlxuKSB7XG4gIGNvbnN0IHJldmVyc2VGb3JtYXQgPSB2dGxUb01vbWVudEZvcm1hdChmb3JtYXRGcm9tKTtcbiAgLy8gQXBwU3luYyBkb2VzIG5vdCBwYXJzZSBpbiBzdHJpY3QgbW9kZVxuICByZXR1cm4gbW9tZW50KHRpbWUsIHJldmVyc2VGb3JtYXQpLnR6KHRpbWV6b25lKS52YWx1ZU9mKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUlTTzg2MDFUb0Vwb2NoTWlsbGlTZWNvbmRzKHRpbWU6IHN0cmluZykge1xuICAvLyBBcHBTeW5jIGRvZXMgbm90IHBhcnNlIGluIHN0cmljdCBtb2RlXG4gIHJldHVybiBtb21lbnQodGltZSwgXCJZWVlZLU1NLUREVEhIOm1tOnNzWlwiKS52YWx1ZU9mKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcG9jaE1pbGxpU2Vjb25kc1RvU2Vjb25kcyh0aW1lOiBudW1iZXIpIHtcbiAgcmV0dXJuIG1vbWVudCh0aW1lKS51bml4KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcG9jaE1pbGxpU2Vjb25kc1RvSVNPODYwMSh0aW1lOiBudW1iZXIpIHtcbiAgcmV0dXJuIG1vbWVudCh0aW1lKS51dGMoKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1taXVwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVwb2NoTWlsbGlTZWNvbmRzVG9Gb3JtYXR0ZWQoXG4gIHRpbWU6IG51bWJlcixcbiAgZm9ybWF0Pzogc3RyaW5nLFxuICB0aW1lem9uZTogc3RyaW5nID0gXCJ1dGNcIlxuKSB7XG4gIGNvbnN0IHZ0bEZvcm1hdENvbnZlcnRlZCA9IHZ0bFRvTW9tZW50Rm9ybWF0KGZvcm1hdCk7XG4gIHJldHVybiBtb21lbnQodGltZSkudHoodGltZXpvbmUpLmZvcm1hdCh2dGxGb3JtYXRDb252ZXJ0ZWQpO1xufVxuIl19