slonik
Version:
A Node.js PostgreSQL client with strict types, detailed logging and assertions.
28 lines • 1.02 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.maybeOneFirst = void 0;
const maybeOne_1 = require("./maybeOne");
const errors_1 = require("@slonik/errors");
const utilities_1 = require("@slonik/utilities");
/**
* Makes a query and expects exactly one result.
* Returns value of the first column.
* @throws DataIntegrityError If query returns multiple rows.
*/
const maybeOneFirst = async (log, connection, clientConfiguration, query, inheritedQueryId) => {
const queryId = inheritedQueryId ?? (0, utilities_1.generateUid)();
const row = await (0, maybeOne_1.maybeOne)(log, connection, clientConfiguration, query, queryId);
if (!row) {
return null;
}
const keys = Object.keys(row);
if (keys.length !== 1) {
log.error({
queryId,
}, 'DataIntegrityError');
throw new errors_1.DataIntegrityError(query);
}
return row[keys[0]];
};
exports.maybeOneFirst = maybeOneFirst;
//# sourceMappingURL=maybeOneFirst.js.map
;