Files
evento/node_modules/kysely/dist/esm/operation-node/merge-query-node.js
2026-03-18 14:55:56 -03:00

44 lines
1.1 KiB
JavaScript

/// <reference types="./merge-query-node.d.ts" />
import { freeze } from '../util/object-utils.js';
import { WhenNode } from './when-node.js';
/**
* @internal
*/
export const MergeQueryNode = freeze({
is(node) {
return node.kind === 'MergeQueryNode';
},
create(into, withNode) {
return freeze({
kind: 'MergeQueryNode',
into,
...(withNode && { with: withNode }),
});
},
cloneWithUsing(mergeNode, using) {
return freeze({
...mergeNode,
using,
});
},
cloneWithWhen(mergeNode, when) {
return freeze({
...mergeNode,
whens: mergeNode.whens
? freeze([...mergeNode.whens, when])
: freeze([when]),
});
},
cloneWithThen(mergeNode, then) {
return freeze({
...mergeNode,
whens: mergeNode.whens
? freeze([
...mergeNode.whens.slice(0, -1),
WhenNode.cloneWithResult(mergeNode.whens[mergeNode.whens.length - 1], then),
])
: undefined,
});
},
});