function transformDDBRecord()

in lib/transformation.js [30:61]


function transformDDBRecord(record, target, callback) {
  try {
    var entry = (record.dynamodb.hasOwnProperty("NewImage") ? record.dynamodb.NewImage : {});
    var object = target.convertDDB ? DDB.parseDynamoDBObject(entry) : entry;
    var data = new Buffer(JSON.stringify(object) + (target.appendNewlines ? "\n" : ''), 'utf-8');
    var keys = Object.keys(record.dynamodb.Keys);
    var keyEntry = DDB.parseDynamoDBObject(record.dynamodb.Keys);
    var key = "";
    // Concatenate the keys with a '|' separator
    for(var i = 0; i < keys.length; ++i) {
      if(Buffer.isBuffer(keyEntry[keys[i]])) {
        key = key + (i > 0 ? "|": "") + (keyEntry[keys[i]].toString('base64'));
      } else {
        key = key + (i > 0 ? "|": "") + (keyEntry[keys[i]]);
      }
    }

    callback(null, [{
      "key": key,
      "sequenceNumber": record.dynamodb.SequenceNumber,
      "subSequenceNumber": 0,
      "data": data,
      "size": data.length,
      "action": record.eventName,
      "source": record.eventSource,
      "region": record.awsRegion
    }]);
  } catch(e) {
    console.error("Unable to deserialize DynamoDB record, removing it:", e.stack);
    callback(null, []);
  }
}