knex-aurora-data-api-client
Version:
Knex Aurora Data API Client
41 lines (35 loc) • 922 B
JavaScript
const { parseTimestamp } = require('./utils');
function applyRecord(columnMetadata, record) {
const parsedColumns = {};
columnMetadata.forEach((column) => {
// Skip null values
if (record[column.name]) {
switch (column.typeName) {
case 'timestamp':
case 'timestamptz':
parsedColumns[column.name] = parseTimestamp(record[column.name]);
break;
case 'json':
case 'jsonb':
parsedColumns[column.name] = JSON.parse(record[column.name]);
break;
case '_text':
parsedColumns[column.name] = record[column.name].stringValues;
break;
default:
// Skip
break;
}
}
});
return {
...record,
...parsedColumns,
};
}
function apply({ columnMetadata, records }) {
return records.map((record) => applyRecord(columnMetadata, record));
}
module.exports = {
apply,
};