UNPKG

@specifai-net/appsync-template-tester

Version:

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

33 lines 3.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.valueMapper = void 0; const map_1 = require("./map"); const array_1 = require("./array"); const string_1 = require("./string"); function isPlainObject(value) { return Object.prototype.toString.call(value) === "[object Object]"; } function valueMapper(value) { if (value instanceof map_1.JavaMap) return value; if (value instanceof array_1.JavaArray) return value; if (Array.isArray(value)) { return new array_1.JavaArray(value.map((x) => valueMapper(x)), valueMapper); } if (isPlainObject(value)) { return (0, map_1.createMapProxy)(new map_1.JavaMap(Object.entries(value).reduce((sum, [k, v]) => { return { ...sum, [k]: valueMapper(v), }; }, {}), valueMapper)); } if (typeof value === "string" && !(value instanceof string_1.JavaString)) { return new string_1.JavaString(value); } // for now we don't handle number. return value; } exports.valueMapper = valueMapper; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbHVlLW1hcHBlci9tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWdEO0FBQ2hELG1DQUFvQztBQUNwQyxxQ0FBc0M7QUFFdEMsU0FBUyxhQUFhLENBQUMsS0FBVTtJQUMvQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxpQkFBaUIsQ0FBQztBQUNyRSxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEtBQVU7SUFDcEMsSUFBSSxLQUFLLFlBQVksYUFBTztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzNDLElBQUksS0FBSyxZQUFZLGlCQUFTO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sSUFBSSxpQkFBUyxDQUNsQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDaEMsV0FBVyxDQUNaLENBQUM7S0FDSDtJQUNELElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sSUFBQSxvQkFBYyxFQUNuQixJQUFJLGFBQU8sQ0FDVCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNDLE9BQU87Z0JBQ0wsR0FBRyxHQUFHO2dCQUNOLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNwQixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNOLFdBQVcsQ0FDWixDQUNGLENBQUM7S0FDSDtJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBRSxLQUFhLFlBQVksbUJBQVUsQ0FBQyxFQUFFO1FBQ3hFLE9BQU8sSUFBSSxtQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBRUQsa0NBQWtDO0lBQ2xDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQTdCRCxrQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKYXZhTWFwLCBjcmVhdGVNYXBQcm94eSB9IGZyb20gXCIuL21hcFwiO1xuaW1wb3J0IHsgSmF2YUFycmF5IH0gZnJvbSBcIi4vYXJyYXlcIjtcbmltcG9ydCB7IEphdmFTdHJpbmcgfSBmcm9tIFwiLi9zdHJpbmdcIjtcblxuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgT2JqZWN0XVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVNYXBwZXIodmFsdWU6IGFueSk6IGFueSB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEphdmFNYXApIHJldHVybiB2YWx1ZTtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSmF2YUFycmF5KSByZXR1cm4gdmFsdWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBuZXcgSmF2YUFycmF5KFxuICAgICAgdmFsdWUubWFwKCh4KSA9PiB2YWx1ZU1hcHBlcih4KSksXG4gICAgICB2YWx1ZU1hcHBlclxuICAgICk7XG4gIH1cbiAgaWYgKGlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZU1hcFByb3h5KFxuICAgICAgbmV3IEphdmFNYXAoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5yZWR1Y2UoKHN1bSwgW2ssIHZdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1bSxcbiAgICAgICAgICAgIFtrXTogdmFsdWVNYXBwZXIodiksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSwge30pLFxuICAgICAgICB2YWx1ZU1hcHBlclxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICEoKHZhbHVlIGFzIGFueSkgaW5zdGFuY2VvZiBKYXZhU3RyaW5nKSkge1xuICAgIHJldHVybiBuZXcgSmF2YVN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICAvLyBmb3Igbm93IHdlIGRvbid0IGhhbmRsZSBudW1iZXIuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdfQ==