serverless-plugin-test-helper
Version:
A utility library to help with testing deployed serverless applications
66 lines • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynamoDBStreamEvent = exports.dynamoDBStreamEvent = void 0;
const deepmerge_1 = require("deepmerge");
/*
* @deprecated This method has been deprecated and will be removed in the next major release, use `new DynamoDBStreamEvent()` instead
*/
function dynamoDBStreamEvent(override = {}) {
// console.warn(
// "This method has been deprecated and will be removed in the next major release, use `new DynamoDBStreamEvent()` instead"
// );
const Records = override.Records
? deepmerge_1.all([defaultRecords, override.Records], { arrayMerge: combineMerge })
: defaultRecords;
return { Records };
}
exports.dynamoDBStreamEvent = dynamoDBStreamEvent;
function combineMerge(target, source, options) {
const destination = target.slice();
source.forEach((item, index) => {
if (typeof destination[index] === "undefined") {
destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);
}
else if (options.isMergeableObject(item)) {
destination[index] = deepmerge_1.all([target[index], item], options);
}
});
return destination;
}
class DynamoDBStreamEvent {
constructor(override = {}) {
const Records = override.Records
? deepmerge_1.all([defaultRecords, override.Records], { arrayMerge: combineMerge })
: defaultRecords;
this.Records = Records;
}
}
exports.DynamoDBStreamEvent = DynamoDBStreamEvent;
// source: https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
const defaultRecords = [
{
eventID: "2",
eventVersion: "1.0",
dynamodb: {
OldImage: {
Message: { S: "New item!" },
Id: { N: "101" },
},
SequenceNumber: "222",
Keys: {
Id: { N: "101" },
},
SizeBytes: 59,
NewImage: {
Message: { S: "This item has changed" },
Id: { N: "101" },
},
StreamViewType: "NEW_AND_OLD_IMAGES",
},
awsRegion: "us-west-2",
eventName: "MODIFY",
eventSourceARN: "arn:aws:dynamodb:us-east-1:123456789012:table/images",
eventSource: "aws:dynamodb",
},
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1vZGItc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V2ZW50LW1vY2tzL2R5bmFtb2RiLXN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0M7QUFFaEM7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxXQUErQyxFQUFFO0lBQ25GLGdCQUFnQjtJQUNoQiw2SEFBNkg7SUFDN0gsS0FBSztJQUNMLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPO1FBQzlCLENBQUMsQ0FBQyxlQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDbkIsT0FBNEIsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBUkQsa0RBUUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU87SUFDM0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDN0MsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDM0U7YUFBTSxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsZUFBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQsTUFBYSxtQkFBbUI7SUFFOUIsWUFBWSxXQUEwQyxFQUFFO1FBQ3RELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPO1lBQzlCLENBQUMsQ0FBQyxlQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3ZFLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUEyQixDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQVJELGtEQVFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sY0FBYyxHQUFxQjtJQUN2QztRQUNFLE9BQU8sRUFBRSxHQUFHO1FBQ1osWUFBWSxFQUFFLEtBQUs7UUFDbkIsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUU7Z0JBQzNCLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7YUFDakI7WUFDRCxjQUFjLEVBQUUsS0FBSztZQUNyQixJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTthQUNqQjtZQUNELFNBQVMsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSx1QkFBdUIsRUFBRTtnQkFDdkMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTthQUNqQjtZQUNELGNBQWMsRUFBRSxvQkFBb0I7U0FDckM7UUFDRCxTQUFTLEVBQUUsV0FBVztRQUN0QixTQUFTLEVBQUUsUUFBUTtRQUNuQixjQUFjLEVBQUUsc0RBQXNEO1FBQ3RFLFdBQVcsRUFBRSxjQUFjO0tBQzVCO0NBQ0YsQ0FBQyJ9