typecql
Version:
ORM for CQL databases.
50 lines • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.insertBatch = insertBatch;
const mergePrimaryKeysDefaults_1 = require("../formating/mergePrimaryKeysDefaults");
const replaceUppersInObject_1 = require("../formating/replaceUppersInObject");
const getDefaultTableValues_1 = require("../formating/getDefaultTableValues");
const log_1 = require("../../logging/log");
async function insertBatch(client, data, table, options, writeFactory, settings) {
const queries = [];
const proceededData = data.map((item) => {
(0, getDefaultTableValues_1.getTableDefaultValuesObject)(item, table.tableName);
(0, mergePrimaryKeysDefaults_1.mergePrimaryKeysDefaults)(item, table.tableName);
queries.push({
query: writeFactory.InsertQuery(item, options),
params: [...Object.values(item)],
});
return (0, replaceUppersInObject_1.formatObjectWithSettings)(item, table.tableName, settings, client);
});
try {
await client.batch(queries, {
prepare: true,
consistency: options?.consistency,
});
(0, log_1.TypeCQLLOG)({
query: queries,
filename: __filename,
type: 'log',
globalOptions: settings?.logging,
localOptions: options?.logging,
});
if (!options.returning)
return { wasApplied: true };
if (options?.returnRaw === true) {
return proceededData;
}
return { rows: proceededData, wasApplied: true };
}
catch (error) {
(0, log_1.TypeCQLLOG)({
query: queries,
filename: __filename,
type: 'error',
globalOptions: settings?.logging,
localOptions: options?.logging,
error,
});
throw error;
}
}
//# sourceMappingURL=insertBatch.js.map