kysely
Version:
Type safe SQL query builder
71 lines (70 loc) • 2.64 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryNode = void 0;
const insert_query_node_js_1 = require("./insert-query-node.js");
const select_query_node_js_1 = require("./select-query-node.js");
const update_query_node_js_1 = require("./update-query-node.js");
const delete_query_node_js_1 = require("./delete-query-node.js");
const where_node_js_1 = require("./where-node.js");
const object_utils_js_1 = require("../util/object-utils.js");
const returning_node_js_1 = require("./returning-node.js");
const explain_node_js_1 = require("./explain-node.js");
const merge_query_node_js_1 = require("./merge-query-node.js");
/**
* @internal
*/
exports.QueryNode = (0, object_utils_js_1.freeze)({
is(node) {
return (select_query_node_js_1.SelectQueryNode.is(node) ||
insert_query_node_js_1.InsertQueryNode.is(node) ||
update_query_node_js_1.UpdateQueryNode.is(node) ||
delete_query_node_js_1.DeleteQueryNode.is(node) ||
merge_query_node_js_1.MergeQueryNode.is(node));
},
cloneWithWhere(node, operation) {
return (0, object_utils_js_1.freeze)({
...node,
where: node.where
? where_node_js_1.WhereNode.cloneWithOperation(node.where, 'And', operation)
: where_node_js_1.WhereNode.create(operation),
});
},
cloneWithJoin(node, join) {
return (0, object_utils_js_1.freeze)({
...node,
joins: node.joins ? (0, object_utils_js_1.freeze)([...node.joins, join]) : (0, object_utils_js_1.freeze)([join]),
});
},
cloneWithReturning(node, selections) {
return (0, object_utils_js_1.freeze)({
...node,
returning: node.returning
? returning_node_js_1.ReturningNode.cloneWithSelections(node.returning, selections)
: returning_node_js_1.ReturningNode.create(selections),
});
},
cloneWithoutReturning(node) {
return (0, object_utils_js_1.freeze)({
...node,
returning: undefined,
});
},
cloneWithoutWhere(node) {
return (0, object_utils_js_1.freeze)({
...node,
where: undefined,
});
},
cloneWithExplain(node, format, options) {
return (0, object_utils_js_1.freeze)({
...node,
explain: explain_node_js_1.ExplainNode.create(format, options?.toOperationNode()),
});
},
cloneWithTop(node, top) {
return (0, object_utils_js_1.freeze)({
...node,
top,
});
},
});
;