UNPKG

@specifai-net/appsync-template-tester

Version:

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

60 lines 5.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JavaArray = void 0; const to_json_1 = require("./to-json"); class JavaArray extends Array { constructor(values, mapper) { let val = values; if (!Array.isArray(values)) { // splice sends a single object val = [values]; } if (val.length !== 1) { super(...val); } else { super(); this.push(val[0]); } Object.setPrototypeOf(this, Object.create(JavaArray.prototype)); this.mapper = mapper; } add(value) { this.push(this.mapper(value)); return value; } addAll(value) { value.forEach((val) => this.push(this.mapper(val))); } clear() { this.length = 0; } contains(value) { const val = value && value.toJSON ? value.toJSON() : value; return this.toJSON().indexOf(val) !== -1; } containsAll(value = []) { return value.every((v) => this.contains(v)); } isEmpty() { return this.length === 0; } remove(value) { const idx = this.indexOf(value); if (idx === -1) return; this.splice(idx, 1); } removeAll(value) { const self = this; value.forEach((val) => self.remove(val)); } size() { return this.length; } toJSON() { return Array.from(this).map(to_json_1.toJSON); } } exports.JavaArray = JavaArray; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsdWUtbWFwcGVyL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFtQztBQUVuQyxNQUFhLFNBQVUsU0FBUSxLQUFVO0lBR3ZDLFlBQVksTUFBVyxFQUFFLE1BQWdCO1FBQ3ZDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQiwrQkFBK0I7WUFDL0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDaEI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7YUFBTTtZQUNMLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtRQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVU7UUFDZixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFvQixFQUFFO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVU7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUEvREQsOEJBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9KU09OIH0gZnJvbSBcIi4vdG8tanNvblwiO1xuXG5leHBvcnQgY2xhc3MgSmF2YUFycmF5IGV4dGVuZHMgQXJyYXk8YW55PiB7XG4gIHByaXZhdGUgbWFwcGVyOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3Rvcih2YWx1ZXM6IGFueSwgbWFwcGVyOiBGdW5jdGlvbikge1xuICAgIGxldCB2YWwgPSB2YWx1ZXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgIC8vIHNwbGljZSBzZW5kcyBhIHNpbmdsZSBvYmplY3RcbiAgICAgIHZhbCA9IFt2YWx1ZXNdO1xuICAgIH1cbiAgICBpZiAodmFsLmxlbmd0aCAhPT0gMSkge1xuICAgICAgc3VwZXIoLi4udmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXMucHVzaCh2YWxbMF0pO1xuICAgIH1cbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgT2JqZWN0LmNyZWF0ZShKYXZhQXJyYXkucHJvdG90eXBlKSk7XG4gICAgdGhpcy5tYXBwZXIgPSBtYXBwZXI7XG4gIH1cblxuICBhZGQodmFsdWU6IGFueSkge1xuICAgIHRoaXMucHVzaCh0aGlzLm1hcHBlcih2YWx1ZSkpO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFkZEFsbCh2YWx1ZTogYW55KSB7XG4gICAgdmFsdWUuZm9yRWFjaCgodmFsOiBhbnkpID0+IHRoaXMucHVzaCh0aGlzLm1hcHBlcih2YWwpKSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBjb250YWlucyh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgdmFsID0gdmFsdWUgJiYgdmFsdWUudG9KU09OID8gdmFsdWUudG9KU09OKCkgOiB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcy50b0pTT04oKS5pbmRleE9mKHZhbCkgIT09IC0xO1xuICB9XG5cbiAgY29udGFpbnNBbGwodmFsdWU6IEFycmF5PGFueT4gPSBbXSkge1xuICAgIHJldHVybiB2YWx1ZS5ldmVyeSgodikgPT4gdGhpcy5jb250YWlucyh2KSk7XG4gIH1cblxuICBpc0VtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHJlbW92ZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoaWR4ID09PSAtMSkgcmV0dXJuO1xuICAgIHRoaXMuc3BsaWNlKGlkeCwgMSk7XG4gIH1cblxuICByZW1vdmVBbGwodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHZhbHVlLmZvckVhY2goKHZhbDogYW55KSA9PiBzZWxmLnJlbW92ZSh2YWwpKTtcbiAgfVxuXG4gIHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMpLm1hcCh0b0pTT04pO1xuICB9XG59XG4iXX0=