@specifai-net/appsync-template-tester
Version:
Unit test AppSync VTL resolvers, with popular frameworks such as Jest
43 lines • 3.85 kB
JavaScript
;
/* eslint-disable import/prefer-default-export */
/**
* Map helpers in $util.map
*
* $util.map contains methods to help with common
* Map operations, such as removing or retaining
* items from a Map for filtering use cases.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyAndRemoveAllKeys = exports.copyAndRetainAllKeys = void 0;
/**
* Makes a shallow copy of the first map, retaining only the
* keys specified in the list, if they are present. All other
* keys will be removed from the copy.
* @param map
* @param list
*/
function copyAndRetainAllKeys(map, list) {
return Object.entries(map).reduce((result, [key, value]) => {
if (list.indexOf(key) === -1)
return result;
return {
...result,
[key]: value,
};
}, {});
}
exports.copyAndRetainAllKeys = copyAndRetainAllKeys;
/**
* Makes a shallow copy of the first map, removing any entries
* where the key is specified in the list, if they are present.
* All other keys will be retained in the copy.
* @param map
* @param list
*/
function copyAndRemoveAllKeys(map, list) {
const result = { ...map };
list.forEach((key) => delete result[key]);
return result;
}
exports.copyAndRemoveAllKeys = copyAndRemoveAllKeys;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbC1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlEQUFpRDtBQUNqRDs7Ozs7O0dBTUc7OztBQUVIOzs7Ozs7R0FNRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxJQUFtQjtJQUNuRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDekQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVDLE9BQU87WUFDTCxHQUFHLE1BQU07WUFDVCxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQVJELG9EQVFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsR0FBVyxFQUFFLElBQW1CO0lBQ25FLE1BQU0sTUFBTSxHQUFRLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFKRCxvREFJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9wcmVmZXItZGVmYXVsdC1leHBvcnQgKi9cbi8qKlxuICogTWFwIGhlbHBlcnMgaW4gJHV0aWwubWFwXG4gKlxuICogJHV0aWwubWFwIGNvbnRhaW5zIG1ldGhvZHMgdG8gaGVscCB3aXRoIGNvbW1vblxuICogTWFwIG9wZXJhdGlvbnMsIHN1Y2ggYXMgcmVtb3Zpbmcgb3IgcmV0YWluaW5nXG4gKiBpdGVtcyBmcm9tIGEgTWFwIGZvciBmaWx0ZXJpbmcgdXNlIGNhc2VzLlxuICovXG5cbi8qKlxuICogTWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGZpcnN0IG1hcCwgcmV0YWluaW5nIG9ubHkgdGhlXG4gKiBrZXlzIHNwZWNpZmllZCBpbiB0aGUgbGlzdCwgaWYgdGhleSBhcmUgcHJlc2VudC4gQWxsIG90aGVyXG4gKiBrZXlzIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBjb3B5LlxuICogQHBhcmFtIG1hcFxuICogQHBhcmFtIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlBbmRSZXRhaW5BbGxLZXlzKG1hcDogb2JqZWN0LCBsaXN0OiBBcnJheTxzdHJpbmc+KTogb2JqZWN0IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChyZXN1bHQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGlmIChsaXN0LmluZGV4T2Yoa2V5KSA9PT0gLTEpIHJldHVybiByZXN1bHQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogTWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGZpcnN0IG1hcCwgcmVtb3ZpbmcgYW55IGVudHJpZXNcbiAqIHdoZXJlIHRoZSBrZXkgaXMgc3BlY2lmaWVkIGluIHRoZSBsaXN0LCBpZiB0aGV5IGFyZSBwcmVzZW50LlxuICogQWxsIG90aGVyIGtleXMgd2lsbCBiZSByZXRhaW5lZCBpbiB0aGUgY29weS5cbiAqIEBwYXJhbSBtYXBcbiAqIEBwYXJhbSBsaXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5QW5kUmVtb3ZlQWxsS2V5cyhtYXA6IG9iamVjdCwgbGlzdDogQXJyYXk8c3RyaW5nPik6IG9iamVjdCB7XG4gIGNvbnN0IHJlc3VsdDogYW55ID0geyAuLi5tYXAgfTtcbiAgbGlzdC5mb3JFYWNoKChrZXkpID0+IGRlbGV0ZSByZXN1bHRba2V5XSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=