UNPKG

@specifai-net/appsync-template-tester

Version:

Unit test AppSync VTL resolvers, with popular frameworks such as Jest

90 lines 8.73 kB
"use strict"; 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