@specifai-net/appsync-template-tester
Version:
Unit test AppSync VTL resolvers, with popular frameworks such as Jest
90 lines • 8.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toMapValuesJson = exports.toMapValues = exports.toDynamoDBJson = exports.toDynamoDB = exports.toMapJson = exports.toMap = exports.toListJson = exports.toList = exports.toBooleanJson = exports.toBoolean = exports.toNumberJson = exports.toNumber = exports.toStringJson = exports.toString = void 0;
/* eslint-disable @typescript-eslint/no-use-before-define */
/* eslint-disable import/prefer-default-export */
const util_1 = require("./util");
function toString(str) {
return { S: str };
}
exports.toString = toString;
function toStringJson(str) {
return JSON.stringify(toString(str));
}
exports.toStringJson = toStringJson;
function toNumber(num) {
return { N: num };
}
exports.toNumber = toNumber;
function toNumberJson(num) {
return JSON.stringify(toNumber(num));
}
exports.toNumberJson = toNumberJson;
function toBoolean(bool) {
return { BOOL: bool };
}
exports.toBoolean = toBoolean;
function toBooleanJson(bool) {
return JSON.stringify(toBoolean(bool));
}
exports.toBooleanJson = toBooleanJson;
function toList(list) {
return {
L: list.map((item) => toDynamoDB(item)),
};
}
exports.toList = toList;
function toListJson(list) {
return JSON.stringify(toList(list));
}
exports.toListJson = toListJson;
function toMap(map) {
const obj = JSON.parse(JSON.stringify(map));
// eslint-disable-next-line array-callback-return
Object.keys(obj).map((key) => {
obj[key] = toDynamoDB(obj[key]);
});
return { M: obj };
}
exports.toMap = toMap;
function toMapJson(map) {
return JSON.stringify(toMap(map));
}
exports.toMapJson = toMapJson;
function toDynamoDB(i) {
if ((0, util_1.isString)(i)) {
return toString(i);
}
if ((0, util_1.isNumber)(i)) {
return toNumber(i);
}
if ((0, util_1.isBoolean)(i)) {
return toBoolean(i);
}
if ((0, util_1.isList)(i)) {
return toList(i);
}
return toMap(i);
}
exports.toDynamoDB = toDynamoDB;
function toDynamoDBJson(i) {
return JSON.stringify(toDynamoDB(i));
}
exports.toDynamoDBJson = toDynamoDBJson;
/**
* The same as toMapJSON but only for the properties (the root obect becomes {a: {S: "s"}} rather than {M: {a: {S: "s"}}})
*/
function toMapValues(map) {
const obj = JSON.parse(JSON.stringify(map));
// eslint-disable-next-line array-callback-return
Object.keys(obj).map((key) => {
obj[key] = toDynamoDB(obj[key]);
});
return obj;
}
exports.toMapValues = toMapValues;
function toMapValuesJson(i) {
return JSON.stringify(toMapValues(i));
}
exports.toMapValuesJson = toMapValuesJson;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1keW5hbW9kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLWR5bmFtb2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUE0RDtBQUM1RCxpREFBaUQ7QUFDakQsaUNBQStEO0FBRS9ELFNBQWdCLFFBQVEsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLEdBQVc7SUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDcEIsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLEdBQVc7SUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxJQUFhO0lBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQWE7SUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUFnQjtJQUNyQyxPQUFPO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQUpELHdCQUlDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQWdCO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFnQixLQUFLLENBQUMsR0FBUTtJQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QyxpREFBaUQ7SUFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUMzQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNwQixDQUFDO0FBUkQsc0JBUUM7QUFFRCxTQUFnQixTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLENBQU07SUFDL0IsSUFBSSxJQUFBLGVBQVEsRUFBQyxDQUFDLENBQUMsRUFBRTtRQUNmLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsSUFBSSxJQUFBLGVBQVEsRUFBQyxDQUFDLENBQUMsRUFBRTtRQUNmLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsSUFBSSxJQUFBLGdCQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDckI7SUFFRCxJQUFJLElBQUEsYUFBTSxFQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ2IsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBbEJELGdDQWtCQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxDQUFNO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxHQUFRO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLGlEQUFpRDtJQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFQRCxrQ0FPQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxDQUFNO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsMENBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9wcmVmZXItZGVmYXVsdC1leHBvcnQgKi9cbmltcG9ydCB7IGlzQm9vbGVhbiwgaXNOdW1iZXIsIGlzTGlzdCwgaXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1N0cmluZyhzdHI6IHN0cmluZykge1xuICByZXR1cm4geyBTOiBzdHIgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nSnNvbihzdHI6IHN0cmluZykge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodG9TdHJpbmcoc3RyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b051bWJlcihudW06IG51bWJlcikge1xuICByZXR1cm4geyBOOiBudW0gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTnVtYmVySnNvbihudW06IG51bWJlcikge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodG9OdW1iZXIobnVtKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jvb2xlYW4oYm9vbDogYm9vbGVhbikge1xuICByZXR1cm4geyBCT09MOiBib29sIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jvb2xlYW5Kc29uKGJvb2w6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRvQm9vbGVhbihib29sKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0xpc3QobGlzdDogQXJyYXk8YW55Pikge1xuICByZXR1cm4ge1xuICAgIEw6IGxpc3QubWFwKChpdGVtOiBhbnkpID0+IHRvRHluYW1vREIoaXRlbSkpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9MaXN0SnNvbihsaXN0OiBBcnJheTxhbnk+KSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh0b0xpc3QobGlzdCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9NYXAobWFwOiBhbnkpIHtcbiAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtYXApKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFycmF5LWNhbGxiYWNrLXJldHVyblxuICBPYmplY3Qua2V5cyhvYmopLm1hcCgoa2V5KSA9PiB7XG4gICAgb2JqW2tleV0gPSB0b0R5bmFtb0RCKG9ialtrZXldKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgTTogb2JqIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b01hcEpzb24obWFwOiBhbnkpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRvTWFwKG1hcCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9EeW5hbW9EQihpOiBhbnkpOiBhbnkge1xuICBpZiAoaXNTdHJpbmcoaSkpIHtcbiAgICByZXR1cm4gdG9TdHJpbmcoaSk7XG4gIH1cblxuICBpZiAoaXNOdW1iZXIoaSkpIHtcbiAgICByZXR1cm4gdG9OdW1iZXIoaSk7XG4gIH1cblxuICBpZiAoaXNCb29sZWFuKGkpKSB7XG4gICAgcmV0dXJuIHRvQm9vbGVhbihpKTtcbiAgfVxuXG4gIGlmIChpc0xpc3QoaSkpIHtcbiAgICByZXR1cm4gdG9MaXN0KGkpO1xuICB9XG5cbiAgcmV0dXJuIHRvTWFwKGkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9EeW5hbW9EQkpzb24oaTogYW55KSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh0b0R5bmFtb0RCKGkpKTtcbn1cblxuLyoqXG4gKiBUaGUgc2FtZSBhcyB0b01hcEpTT04gYnV0IG9ubHkgZm9yIHRoZSBwcm9wZXJ0aWVzICh0aGUgcm9vdCBvYmVjdCBiZWNvbWVzIHthOiB7UzogXCJzXCJ9fSByYXRoZXIgdGhhbiB7TToge2E6IHtTOiBcInNcIn19fSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTWFwVmFsdWVzKG1hcDogYW55KSB7XG4gIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobWFwKSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhcnJheS1jYWxsYmFjay1yZXR1cm5cbiAgT2JqZWN0LmtleXMob2JqKS5tYXAoKGtleSkgPT4ge1xuICAgIG9ialtrZXldID0gdG9EeW5hbW9EQihvYmpba2V5XSk7XG4gIH0pO1xuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9NYXBWYWx1ZXNKc29uKGk6IGFueSkge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodG9NYXBWYWx1ZXMoaSkpO1xufVxuIl19