@zenstackhq/orm 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +41 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +42 -2
- package/dist/index.js.map +1 -1
- package/package.json +10 -9
package/dist/index.js
CHANGED
|
@@ -560,8 +560,9 @@ function extractFieldName(node) {
|
|
|
560
560
|
__name(extractFieldName, "extractFieldName");
|
|
561
561
|
|
|
562
562
|
// src/client/crud/operations/base.ts
|
|
563
|
-
import { createId } from "@paralleldrive/cuid2";
|
|
563
|
+
import { createId as cuid2 } from "@paralleldrive/cuid2";
|
|
564
564
|
import { clone, enumerate as enumerate2, invariant as invariant5, isPlainObject as isPlainObject2 } from "@zenstackhq/common-helpers";
|
|
565
|
+
import { default as cuid1 } from "cuid";
|
|
565
566
|
import { createQueryId, expressionBuilder as expressionBuilder2, sql as sql4 } from "kysely";
|
|
566
567
|
import { nanoid } from "nanoid";
|
|
567
568
|
import { match as match6 } from "ts-pattern";
|
|
@@ -2547,7 +2548,20 @@ var BaseOperationHandler = class {
|
|
|
2547
2548
|
}
|
|
2548
2549
|
evalGenerator(defaultValue) {
|
|
2549
2550
|
if (schema_exports.ExpressionUtils.isCall(defaultValue)) {
|
|
2550
|
-
|
|
2551
|
+
const firstArgVal = defaultValue.args?.[0] && schema_exports.ExpressionUtils.isLiteral(defaultValue.args[0]) ? defaultValue.args[0].value : void 0;
|
|
2552
|
+
return match6(defaultValue.function).with("cuid", () => {
|
|
2553
|
+
const version = firstArgVal;
|
|
2554
|
+
const generated = version === 2 ? cuid2() : cuid1();
|
|
2555
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2556
|
+
}).with("uuid", () => {
|
|
2557
|
+
const version = firstArgVal;
|
|
2558
|
+
const generated = version === 7 ? uuid.v7() : uuid.v4();
|
|
2559
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2560
|
+
}).with("nanoid", () => {
|
|
2561
|
+
const length = firstArgVal;
|
|
2562
|
+
const generated = typeof length === "number" ? nanoid(length) : nanoid();
|
|
2563
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2564
|
+
}).with("ulid", () => this.formatGeneratedValue(ulid(), defaultValue.args?.[0])).otherwise(() => void 0);
|
|
2551
2565
|
} else if (schema_exports.ExpressionUtils.isMember(defaultValue) && schema_exports.ExpressionUtils.isCall(defaultValue.receiver) && defaultValue.receiver.function === "auth") {
|
|
2552
2566
|
let val = this.client.$auth;
|
|
2553
2567
|
for (const member of defaultValue.members) {
|
|
@@ -2558,6 +2572,12 @@ var BaseOperationHandler = class {
|
|
|
2558
2572
|
return void 0;
|
|
2559
2573
|
}
|
|
2560
2574
|
}
|
|
2575
|
+
formatGeneratedValue(generated, formatExpr) {
|
|
2576
|
+
if (!formatExpr || !schema_exports.ExpressionUtils.isLiteral(formatExpr) || typeof formatExpr.value !== "string") {
|
|
2577
|
+
return generated;
|
|
2578
|
+
}
|
|
2579
|
+
return formatExpr.value.replace(/(?<!\\)%s/g, generated).replace(/\\%s/g, "%s");
|
|
2580
|
+
}
|
|
2561
2581
|
async update(kysely, model, where, data, fromRelation, allowRelationUpdate = true, throwIfNotFound = true, fieldsToReturn) {
|
|
2562
2582
|
if (!data || typeof data !== "object") {
|
|
2563
2583
|
throw createInvalidInputError("data must be an object");
|
|
@@ -5774,6 +5794,26 @@ var QueryNameMapper = class extends OperationNodeTransformer {
|
|
|
5774
5794
|
const mappedName = this.mapFieldName(scope.model, node.column.name);
|
|
5775
5795
|
return ColumnNode2.create(mappedName);
|
|
5776
5796
|
}
|
|
5797
|
+
transformBinaryOperation(node) {
|
|
5798
|
+
if (ReferenceNode2.is(node.leftOperand) && ColumnNode2.is(node.leftOperand.column) && (ValueNode.is(node.rightOperand) || PrimitiveValueListNode.is(node.rightOperand))) {
|
|
5799
|
+
const columnNode = node.leftOperand.column;
|
|
5800
|
+
const resolvedScope = this.resolveFieldFromScopes(columnNode.column.name, node.leftOperand.table?.table.identifier.name);
|
|
5801
|
+
if (resolvedScope?.model) {
|
|
5802
|
+
const valueNode = node.rightOperand;
|
|
5803
|
+
let resultValue = valueNode;
|
|
5804
|
+
if (ValueNode.is(valueNode)) {
|
|
5805
|
+
resultValue = this.processEnumMappingForValue(resolvedScope.model, columnNode, valueNode);
|
|
5806
|
+
} else if (PrimitiveValueListNode.is(valueNode)) {
|
|
5807
|
+
resultValue = PrimitiveValueListNode.create(this.processEnumMappingForValues(resolvedScope.model, valueNode.values.map(() => columnNode), valueNode.values));
|
|
5808
|
+
}
|
|
5809
|
+
return super.transformBinaryOperation({
|
|
5810
|
+
...node,
|
|
5811
|
+
rightOperand: resultValue
|
|
5812
|
+
});
|
|
5813
|
+
}
|
|
5814
|
+
}
|
|
5815
|
+
return super.transformBinaryOperation(node);
|
|
5816
|
+
}
|
|
5777
5817
|
transformUpdateQuery(node) {
|
|
5778
5818
|
if (!node.table) {
|
|
5779
5819
|
return super.transformUpdateQuery(node);
|