@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.cjs
CHANGED
|
@@ -598,6 +598,7 @@ __name(extractFieldName, "extractFieldName");
|
|
|
598
598
|
// src/client/crud/operations/base.ts
|
|
599
599
|
var import_cuid2 = require("@paralleldrive/cuid2");
|
|
600
600
|
var import_common_helpers5 = require("@zenstackhq/common-helpers");
|
|
601
|
+
var import_cuid = __toESM(require("cuid"), 1);
|
|
601
602
|
var import_kysely5 = require("kysely");
|
|
602
603
|
var import_nanoid = require("nanoid");
|
|
603
604
|
var import_ts_pattern6 = require("ts-pattern");
|
|
@@ -2583,7 +2584,20 @@ var BaseOperationHandler = class {
|
|
|
2583
2584
|
}
|
|
2584
2585
|
evalGenerator(defaultValue) {
|
|
2585
2586
|
if (schema_exports.ExpressionUtils.isCall(defaultValue)) {
|
|
2586
|
-
|
|
2587
|
+
const firstArgVal = defaultValue.args?.[0] && schema_exports.ExpressionUtils.isLiteral(defaultValue.args[0]) ? defaultValue.args[0].value : void 0;
|
|
2588
|
+
return (0, import_ts_pattern6.match)(defaultValue.function).with("cuid", () => {
|
|
2589
|
+
const version = firstArgVal;
|
|
2590
|
+
const generated = version === 2 ? (0, import_cuid2.createId)() : (0, import_cuid.default)();
|
|
2591
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2592
|
+
}).with("uuid", () => {
|
|
2593
|
+
const version = firstArgVal;
|
|
2594
|
+
const generated = version === 7 ? uuid.v7() : uuid.v4();
|
|
2595
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2596
|
+
}).with("nanoid", () => {
|
|
2597
|
+
const length = firstArgVal;
|
|
2598
|
+
const generated = typeof length === "number" ? (0, import_nanoid.nanoid)(length) : (0, import_nanoid.nanoid)();
|
|
2599
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2600
|
+
}).with("ulid", () => this.formatGeneratedValue((0, import_ulid.ulid)(), defaultValue.args?.[0])).otherwise(() => void 0);
|
|
2587
2601
|
} else if (schema_exports.ExpressionUtils.isMember(defaultValue) && schema_exports.ExpressionUtils.isCall(defaultValue.receiver) && defaultValue.receiver.function === "auth") {
|
|
2588
2602
|
let val = this.client.$auth;
|
|
2589
2603
|
for (const member of defaultValue.members) {
|
|
@@ -2594,6 +2608,12 @@ var BaseOperationHandler = class {
|
|
|
2594
2608
|
return void 0;
|
|
2595
2609
|
}
|
|
2596
2610
|
}
|
|
2611
|
+
formatGeneratedValue(generated, formatExpr) {
|
|
2612
|
+
if (!formatExpr || !schema_exports.ExpressionUtils.isLiteral(formatExpr) || typeof formatExpr.value !== "string") {
|
|
2613
|
+
return generated;
|
|
2614
|
+
}
|
|
2615
|
+
return formatExpr.value.replace(/(?<!\\)%s/g, generated).replace(/\\%s/g, "%s");
|
|
2616
|
+
}
|
|
2597
2617
|
async update(kysely, model, where, data, fromRelation, allowRelationUpdate = true, throwIfNotFound = true, fieldsToReturn) {
|
|
2598
2618
|
if (!data || typeof data !== "object") {
|
|
2599
2619
|
throw createInvalidInputError("data must be an object");
|
|
@@ -5810,6 +5830,26 @@ var QueryNameMapper = class extends import_kysely6.OperationNodeTransformer {
|
|
|
5810
5830
|
const mappedName = this.mapFieldName(scope.model, node.column.name);
|
|
5811
5831
|
return import_kysely6.ColumnNode.create(mappedName);
|
|
5812
5832
|
}
|
|
5833
|
+
transformBinaryOperation(node) {
|
|
5834
|
+
if (import_kysely6.ReferenceNode.is(node.leftOperand) && import_kysely6.ColumnNode.is(node.leftOperand.column) && (import_kysely6.ValueNode.is(node.rightOperand) || import_kysely6.PrimitiveValueListNode.is(node.rightOperand))) {
|
|
5835
|
+
const columnNode = node.leftOperand.column;
|
|
5836
|
+
const resolvedScope = this.resolveFieldFromScopes(columnNode.column.name, node.leftOperand.table?.table.identifier.name);
|
|
5837
|
+
if (resolvedScope?.model) {
|
|
5838
|
+
const valueNode = node.rightOperand;
|
|
5839
|
+
let resultValue = valueNode;
|
|
5840
|
+
if (import_kysely6.ValueNode.is(valueNode)) {
|
|
5841
|
+
resultValue = this.processEnumMappingForValue(resolvedScope.model, columnNode, valueNode);
|
|
5842
|
+
} else if (import_kysely6.PrimitiveValueListNode.is(valueNode)) {
|
|
5843
|
+
resultValue = import_kysely6.PrimitiveValueListNode.create(this.processEnumMappingForValues(resolvedScope.model, valueNode.values.map(() => columnNode), valueNode.values));
|
|
5844
|
+
}
|
|
5845
|
+
return super.transformBinaryOperation({
|
|
5846
|
+
...node,
|
|
5847
|
+
rightOperand: resultValue
|
|
5848
|
+
});
|
|
5849
|
+
}
|
|
5850
|
+
}
|
|
5851
|
+
return super.transformBinaryOperation(node);
|
|
5852
|
+
}
|
|
5813
5853
|
transformUpdateQuery(node) {
|
|
5814
5854
|
if (!node.table) {
|
|
5815
5855
|
return super.transformUpdateQuery(node);
|