prisma-prefixed-ids 2.0.0 → 2.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 +29 -33
- package/dist/index.js +29 -33
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -39,6 +39,31 @@ exports.findRelationModel = findRelationModel;
|
|
|
39
39
|
const isRelationOperation = (key) => {
|
|
40
40
|
return RELATION_OPERATIONS.includes(key);
|
|
41
41
|
};
|
|
42
|
+
// Helper to process upsert items (handles both single object and array)
|
|
43
|
+
const processUpsertItems = (value, relatedModel, prefixedId, dmmf) => {
|
|
44
|
+
const items = Array.isArray(value) ? value : [value];
|
|
45
|
+
const processed = items.map((item) => ({
|
|
46
|
+
...item,
|
|
47
|
+
create: item.create
|
|
48
|
+
? (0, exports.processNestedData)(item.create, relatedModel, prefixedId, dmmf)
|
|
49
|
+
: item.create,
|
|
50
|
+
update: item.update
|
|
51
|
+
? (0, exports.processNestedData)(item.update, relatedModel, prefixedId, dmmf, false)
|
|
52
|
+
: item.update,
|
|
53
|
+
}));
|
|
54
|
+
return Array.isArray(value) ? processed : processed[0];
|
|
55
|
+
};
|
|
56
|
+
// Helper to process connectOrCreate items (handles both single object and array)
|
|
57
|
+
const processConnectOrCreateItems = (value, relatedModel, prefixedId, dmmf) => {
|
|
58
|
+
const items = Array.isArray(value) ? value : [value];
|
|
59
|
+
const processed = items.map((item) => ({
|
|
60
|
+
...item,
|
|
61
|
+
create: item.create
|
|
62
|
+
? (0, exports.processNestedData)(item.create, relatedModel, prefixedId, dmmf, true)
|
|
63
|
+
: item.create,
|
|
64
|
+
}));
|
|
65
|
+
return Array.isArray(value) ? processed : processed[0];
|
|
66
|
+
};
|
|
42
67
|
// Helper function to process nested data with proper model detection
|
|
43
68
|
const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId = true) => {
|
|
44
69
|
if (!data) {
|
|
@@ -79,22 +104,11 @@ const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId = true
|
|
|
79
104
|
}
|
|
80
105
|
else if (key === "upsert") {
|
|
81
106
|
// Handle upsert operation (has create and update)
|
|
82
|
-
result[key] =
|
|
83
|
-
...value,
|
|
84
|
-
create: value.create
|
|
85
|
-
? (0, exports.processNestedData)(value.create, relatedModel, prefixedId, dmmf)
|
|
86
|
-
: value.create,
|
|
87
|
-
update: value.update,
|
|
88
|
-
};
|
|
107
|
+
result[key] = processUpsertItems(value, relatedModel, prefixedId, dmmf);
|
|
89
108
|
}
|
|
90
109
|
else if (key === "connectOrCreate") {
|
|
91
110
|
// Handle connectOrCreate operation
|
|
92
|
-
result[key] =
|
|
93
|
-
...value,
|
|
94
|
-
create: value.create
|
|
95
|
-
? (0, exports.processNestedData)(value.create, relatedModel, prefixedId, dmmf)
|
|
96
|
-
: value.create,
|
|
97
|
-
};
|
|
111
|
+
result[key] = processConnectOrCreateItems(value, relatedModel, prefixedId, dmmf);
|
|
98
112
|
}
|
|
99
113
|
else if (key === "create" || key === "createMany") {
|
|
100
114
|
// Only process create operations with ID generation
|
|
@@ -126,28 +140,10 @@ const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId = true
|
|
|
126
140
|
};
|
|
127
141
|
}
|
|
128
142
|
else if (op === "upsert") {
|
|
129
|
-
updatedValue[op] =
|
|
130
|
-
...value[op],
|
|
131
|
-
create: value[op].create
|
|
132
|
-
? (0, exports.processNestedData)(value[op].create, relatedModel, prefixedId, dmmf)
|
|
133
|
-
: value[op].create,
|
|
134
|
-
update: value[op].update, // Don't process update
|
|
135
|
-
};
|
|
143
|
+
updatedValue[op] = processUpsertItems(value[op], relatedModel, prefixedId, dmmf);
|
|
136
144
|
}
|
|
137
145
|
else if (op === "connectOrCreate") {
|
|
138
|
-
|
|
139
|
-
if (Array.isArray(value[op])) {
|
|
140
|
-
updatedValue[op] = value[op].map((connectOrCreateItem) => ({
|
|
141
|
-
...connectOrCreateItem,
|
|
142
|
-
create: connectOrCreateItem.create
|
|
143
|
-
? (0, exports.processNestedData)(connectOrCreateItem.create, relatedModel, prefixedId, dmmf, true)
|
|
144
|
-
: connectOrCreateItem.create,
|
|
145
|
-
}));
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
// Fallback for non-array connectOrCreate (shouldn't happen in normal usage)
|
|
149
|
-
updatedValue[op] = value[op];
|
|
150
|
-
}
|
|
146
|
+
updatedValue[op] = processConnectOrCreateItems(value[op], relatedModel, prefixedId, dmmf);
|
|
151
147
|
}
|
|
152
148
|
else if (op === "create" || op === "createMany") {
|
|
153
149
|
// Only process create operations with ID generation
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,31 @@ export const findRelationModel = (dmmf, parentModel, fieldName) => {
|
|
|
31
31
|
const isRelationOperation = (key) => {
|
|
32
32
|
return RELATION_OPERATIONS.includes(key);
|
|
33
33
|
};
|
|
34
|
+
// Helper to process upsert items (handles both single object and array)
|
|
35
|
+
const processUpsertItems = (value, relatedModel, prefixedId, dmmf) => {
|
|
36
|
+
const items = Array.isArray(value) ? value : [value];
|
|
37
|
+
const processed = items.map((item) => ({
|
|
38
|
+
...item,
|
|
39
|
+
create: item.create
|
|
40
|
+
? processNestedData(item.create, relatedModel, prefixedId, dmmf)
|
|
41
|
+
: item.create,
|
|
42
|
+
update: item.update
|
|
43
|
+
? processNestedData(item.update, relatedModel, prefixedId, dmmf, false)
|
|
44
|
+
: item.update,
|
|
45
|
+
}));
|
|
46
|
+
return Array.isArray(value) ? processed : processed[0];
|
|
47
|
+
};
|
|
48
|
+
// Helper to process connectOrCreate items (handles both single object and array)
|
|
49
|
+
const processConnectOrCreateItems = (value, relatedModel, prefixedId, dmmf) => {
|
|
50
|
+
const items = Array.isArray(value) ? value : [value];
|
|
51
|
+
const processed = items.map((item) => ({
|
|
52
|
+
...item,
|
|
53
|
+
create: item.create
|
|
54
|
+
? processNestedData(item.create, relatedModel, prefixedId, dmmf, true)
|
|
55
|
+
: item.create,
|
|
56
|
+
}));
|
|
57
|
+
return Array.isArray(value) ? processed : processed[0];
|
|
58
|
+
};
|
|
34
59
|
// Helper function to process nested data with proper model detection
|
|
35
60
|
export const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId = true) => {
|
|
36
61
|
if (!data) {
|
|
@@ -71,22 +96,11 @@ export const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId
|
|
|
71
96
|
}
|
|
72
97
|
else if (key === "upsert") {
|
|
73
98
|
// Handle upsert operation (has create and update)
|
|
74
|
-
result[key] =
|
|
75
|
-
...value,
|
|
76
|
-
create: value.create
|
|
77
|
-
? processNestedData(value.create, relatedModel, prefixedId, dmmf)
|
|
78
|
-
: value.create,
|
|
79
|
-
update: value.update,
|
|
80
|
-
};
|
|
99
|
+
result[key] = processUpsertItems(value, relatedModel, prefixedId, dmmf);
|
|
81
100
|
}
|
|
82
101
|
else if (key === "connectOrCreate") {
|
|
83
102
|
// Handle connectOrCreate operation
|
|
84
|
-
result[key] =
|
|
85
|
-
...value,
|
|
86
|
-
create: value.create
|
|
87
|
-
? processNestedData(value.create, relatedModel, prefixedId, dmmf)
|
|
88
|
-
: value.create,
|
|
89
|
-
};
|
|
103
|
+
result[key] = processConnectOrCreateItems(value, relatedModel, prefixedId, dmmf);
|
|
90
104
|
}
|
|
91
105
|
else if (key === "create" || key === "createMany") {
|
|
92
106
|
// Only process create operations with ID generation
|
|
@@ -118,28 +132,10 @@ export const processNestedData = (data, model, prefixedId, dmmf, shouldAddRootId
|
|
|
118
132
|
};
|
|
119
133
|
}
|
|
120
134
|
else if (op === "upsert") {
|
|
121
|
-
updatedValue[op] =
|
|
122
|
-
...value[op],
|
|
123
|
-
create: value[op].create
|
|
124
|
-
? processNestedData(value[op].create, relatedModel, prefixedId, dmmf)
|
|
125
|
-
: value[op].create,
|
|
126
|
-
update: value[op].update, // Don't process update
|
|
127
|
-
};
|
|
135
|
+
updatedValue[op] = processUpsertItems(value[op], relatedModel, prefixedId, dmmf);
|
|
128
136
|
}
|
|
129
137
|
else if (op === "connectOrCreate") {
|
|
130
|
-
|
|
131
|
-
if (Array.isArray(value[op])) {
|
|
132
|
-
updatedValue[op] = value[op].map((connectOrCreateItem) => ({
|
|
133
|
-
...connectOrCreateItem,
|
|
134
|
-
create: connectOrCreateItem.create
|
|
135
|
-
? processNestedData(connectOrCreateItem.create, relatedModel, prefixedId, dmmf, true)
|
|
136
|
-
: connectOrCreateItem.create,
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// Fallback for non-array connectOrCreate (shouldn't happen in normal usage)
|
|
141
|
-
updatedValue[op] = value[op];
|
|
142
|
-
}
|
|
138
|
+
updatedValue[op] = processConnectOrCreateItems(value[op], relatedModel, prefixedId, dmmf);
|
|
143
139
|
}
|
|
144
140
|
else if (op === "create" || op === "createMany") {
|
|
145
141
|
// Only process create operations with ID generation
|