Initial commit - Event Planner application
This commit is contained in:
73
node_modules/kysely/dist/esm/query-builder/case-builder.js
generated
vendored
Normal file
73
node_modules/kysely/dist/esm/query-builder/case-builder.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
/// <reference types="./case-builder.d.ts" />
|
||||
import { ExpressionWrapper } from '../expression/expression-wrapper.js';
|
||||
import { freeze } from '../util/object-utils.js';
|
||||
import { CaseNode } from '../operation-node/case-node.js';
|
||||
import { WhenNode } from '../operation-node/when-node.js';
|
||||
import { parseValueBinaryOperationOrExpression, } from '../parser/binary-operation-parser.js';
|
||||
import { isSafeImmediateValue, parseSafeImmediateValue, parseValueExpression, } from '../parser/value-parser.js';
|
||||
export class CaseBuilder {
|
||||
#props;
|
||||
constructor(props) {
|
||||
this.#props = freeze(props);
|
||||
}
|
||||
when(...args) {
|
||||
return new CaseThenBuilder({
|
||||
...this.#props,
|
||||
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(parseValueBinaryOperationOrExpression(args))),
|
||||
});
|
||||
}
|
||||
}
|
||||
export class CaseThenBuilder {
|
||||
#props;
|
||||
constructor(props) {
|
||||
this.#props = freeze(props);
|
||||
}
|
||||
then(valueExpression) {
|
||||
return new CaseWhenBuilder({
|
||||
...this.#props,
|
||||
node: CaseNode.cloneWithThen(this.#props.node, isSafeImmediateValue(valueExpression)
|
||||
? parseSafeImmediateValue(valueExpression)
|
||||
: parseValueExpression(valueExpression)),
|
||||
});
|
||||
}
|
||||
}
|
||||
export class CaseWhenBuilder {
|
||||
#props;
|
||||
constructor(props) {
|
||||
this.#props = freeze(props);
|
||||
}
|
||||
when(...args) {
|
||||
return new CaseThenBuilder({
|
||||
...this.#props,
|
||||
node: CaseNode.cloneWithWhen(this.#props.node, WhenNode.create(parseValueBinaryOperationOrExpression(args))),
|
||||
});
|
||||
}
|
||||
else(valueExpression) {
|
||||
return new CaseEndBuilder({
|
||||
...this.#props,
|
||||
node: CaseNode.cloneWith(this.#props.node, {
|
||||
else: isSafeImmediateValue(valueExpression)
|
||||
? parseSafeImmediateValue(valueExpression)
|
||||
: parseValueExpression(valueExpression),
|
||||
}),
|
||||
});
|
||||
}
|
||||
end() {
|
||||
return new ExpressionWrapper(CaseNode.cloneWith(this.#props.node, { isStatement: false }));
|
||||
}
|
||||
endCase() {
|
||||
return new ExpressionWrapper(CaseNode.cloneWith(this.#props.node, { isStatement: true }));
|
||||
}
|
||||
}
|
||||
export class CaseEndBuilder {
|
||||
#props;
|
||||
constructor(props) {
|
||||
this.#props = freeze(props);
|
||||
}
|
||||
end() {
|
||||
return new ExpressionWrapper(CaseNode.cloneWith(this.#props.node, { isStatement: false }));
|
||||
}
|
||||
endCase() {
|
||||
return new ExpressionWrapper(CaseNode.cloneWith(this.#props.node, { isStatement: true }));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user