UNPKG

serverless-plugin-test-helper

Version:

A utility library to help with testing deployed serverless applications

66 lines 4.7 kB
"use strict"; 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