prostgles-server 2.0.246 → 2.0.249
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.
|
@@ -6,13 +6,21 @@ const DboBuilder_1 = require("../DboBuilder");
|
|
|
6
6
|
async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams) {
|
|
7
7
|
const localParams = _localParams || {};
|
|
8
8
|
const { dbTX } = localParams;
|
|
9
|
-
const finalDBtx = dbTX || this.dbTX;
|
|
10
|
-
if (tableRules?.insert?.postValidate && !finalDBtx) {
|
|
11
|
-
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams));
|
|
12
|
-
}
|
|
13
9
|
try {
|
|
14
|
-
const {
|
|
10
|
+
const { onConflictDoNothing, fixIssues = false } = param2 || {};
|
|
11
|
+
let { returning } = param2 || {};
|
|
15
12
|
const { testRule = false, returnQuery = false } = localParams || {};
|
|
13
|
+
const finalDBtx = dbTX || this.dbTX;
|
|
14
|
+
if (tableRules?.insert?.postValidate) {
|
|
15
|
+
if (!finalDBtx) {
|
|
16
|
+
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams));
|
|
17
|
+
}
|
|
18
|
+
/** Post validate can only access the fields that are accessible to the client */
|
|
19
|
+
returning ?? (returning = {});
|
|
20
|
+
if (returning !== "*") {
|
|
21
|
+
returning["*"] = 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
16
24
|
let returningFields, forcedData, fields;
|
|
17
25
|
if (tableRules) {
|
|
18
26
|
if (!tableRules.insert)
|
|
@@ -110,15 +118,15 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
110
118
|
const tx = dbTX?.[this.name]?.t || this.t;
|
|
111
119
|
const allowedFieldKeys = this.parseFieldFilter(fields);
|
|
112
120
|
if (tx) {
|
|
113
|
-
result = tx[queryType](query).catch((err) => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
121
|
+
result = await tx[queryType](query).catch((err) => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
114
122
|
}
|
|
115
123
|
else {
|
|
116
|
-
result = this.db.tx(t => t[queryType](query)).catch(err => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
124
|
+
result = await this.db.tx(t => t[queryType](query)).catch(err => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
117
125
|
}
|
|
118
126
|
if (tableRules?.insert?.postValidate) {
|
|
119
127
|
if (!finalDBtx)
|
|
120
128
|
throw new Error("Unexpected: no dbTX for postValidate");
|
|
121
|
-
const rows = Array.isArray(
|
|
129
|
+
const rows = Array.isArray(result) ? result : [result];
|
|
122
130
|
for await (const row of rows) {
|
|
123
131
|
await tableRules?.insert?.postValidate(row ?? {}, finalDBtx);
|
|
124
132
|
}
|
|
@@ -128,15 +136,6 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
128
136
|
catch (e) {
|
|
129
137
|
if (localParams && localParams.testRule)
|
|
130
138
|
throw e;
|
|
131
|
-
const removeBuffers = (o) => {
|
|
132
|
-
if ((0, DboBuilder_1.isPlainObject)(o)) {
|
|
133
|
-
return JSON.stringify((0, prostgles_types_1.getKeys)(o).reduce((a, k) => {
|
|
134
|
-
const value = o[k];
|
|
135
|
-
return { ...a, [k]: Buffer.isBuffer(value) ? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
136
|
-
};
|
|
137
|
-
}, {}));
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
139
|
// ${JSON.stringify(rowOrRows || {}, null, 2)},
|
|
141
140
|
// ${JSON.stringify(param2 || {}, null, 2)}
|
|
142
141
|
throw {
|
|
@@ -147,4 +146,13 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
147
146
|
}
|
|
148
147
|
exports.insert = insert;
|
|
149
148
|
;
|
|
149
|
+
const removeBuffers = (o) => {
|
|
150
|
+
if ((0, DboBuilder_1.isPlainObject)(o)) {
|
|
151
|
+
return JSON.stringify((0, prostgles_types_1.getKeys)(o).reduce((a, k) => {
|
|
152
|
+
const value = o[k];
|
|
153
|
+
return { ...a, [k]: Buffer.isBuffer(value) ? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
154
|
+
};
|
|
155
|
+
}, {}));
|
|
156
|
+
}
|
|
157
|
+
};
|
|
150
158
|
//# sourceMappingURL=insert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":";;;AACA,qDAAuG;AACvG,8CAAiH;AAG1G,KAAK,UAAU,MAAM,CAAqB,SAAoC,EAAE,MAAqB,EAAE,aAAyB,EAAE,UAAsB,EAAE,YAA0B;IACzL,MAAM,WAAW,GAAG,YAAY,IAAI,EAAE,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../lib/DboBuilder/insert.ts"],"names":[],"mappings":";;;AACA,qDAAuG;AACvG,8CAAiH;AAG1G,KAAK,UAAU,MAAM,CAAqB,SAAoC,EAAE,MAAqB,EAAE,aAAyB,EAAE,UAAsB,EAAE,YAA0B;IACzL,MAAM,WAAW,GAAG,YAAY,IAAI,EAAE,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7B,IAAI;QAEF,MAAM,EAAE,mBAAmB,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAChE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QACpC,IAAG,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE;YACnC,IAAG,CAAC,SAAS,EAAC;gBACZ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;aAC9H;YAED,iFAAiF;YACjF,SAAS,KAAT,SAAS,GAAK,EAAE,EAAC;YACjB,IAAG,SAAS,KAAK,GAAG,EAAC;gBACnB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACpB;SACF;QAED,IAAI,eAAwC,EAC1C,UAAiC,EACjC,MAA+B,CAAC;QAElC,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,MAAM,2BAA2B,GAAG,IAAI,CAAC,IAAI,CAAC;YACtE,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC;YACpD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAC1C,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAElC,2EAA2E;YAC3E,IAAI,CAAC,eAAe;gBAAE,eAAe,GAAG,IAAA,qBAAG,EAAC,UAAU,EAAE,eAAe,CAAC,IAAI,IAAA,qBAAG,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YAE7G,IAAI,CAAC,MAAM;gBAAE,MAAM,4BAA4B,IAAI,CAAC,IAAI,qBAAqB,CAAC;YAE9E,+BAA+B;YAC/B,IAAI,QAAQ,EAAE;gBACZ,gKAAgK;gBAChK,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpG,IAAI,UAAU,EAAE;oBACd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrC,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,IAAI;4BACF,MAAM,MAAM,GAAG,IAAI,gBAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC1K,MAAM,GAAG,gBAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAC/C,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;4BACzD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,GAAG,0EAA0E,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;yBAChK;wBAAC,OAAO,CAAC,EAAE;4BACV,MAAM,oCAAoC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;yBACpG;qBACF;iBACF;gBAED,OAAO,IAAI,CAAC;aACb;SACF;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,OAAO,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,EAAE;YACnE,cAAc,GAAG,0BAA0B,CAAC;SAC7C;QAED,IAAI,MAAM,EAAE;YACV,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,UAAU,GAAG,IAAA,yBAAO,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM;gBAAE,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpI;QAED,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,EAAE,CAAC,CAAC,iCAAiC;QACjE,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3H,MAAM,SAAS,GAAG,KAAK,EAAE,IAA2B,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE;YACrE,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAEtB,IAAI,CAAC,IAAA,yBAAY,EAAC,GAAG,CAAC,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClB,MAAM,oCAAoC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAClE;YAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACtH,IAAI,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAExB,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAA,yBAAO,EAAC,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC5F,MAAM,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9E,OAAO,GAAG,eAAe,IAAA,wBAAM,EAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC9D;iBAAM;gBACL,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA,CAAC,yCAAyC;aACzK;YACD,OAAO,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC;QACpD,CAAC,CAAC;QAEF,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,GAA8B,MAAM,CAAC;QAElD;;;WAGG;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACrG,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QACtC,IAAI,cAAc,IAAI,MAAM,EAAE;YAC5B,OAAO,YAAY,CAAC;SACrB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,8EAA8E;YAC9E,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;gBACjD,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC,CAAC;YAEJ,KAAK,GAAG,gBAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,SAAS;gBAAE,SAAS,GAAG,MAAM,CAAC;SACnC;aAAM;YACL,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,SAAS;gBAAE,SAAS,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,MAAM,CAAC;QAEX,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACjE;QAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAE1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,EAAE,EAAE;YACN,MAAM,GAAG,MAAO,EAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAA,oBAAO,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;SACrH;aAAM;YACL,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,oBAAO,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;SAC9H;QAED,IAAG,UAAU,EAAE,MAAM,EAAE,YAAY,EAAC;YAClC,IAAG,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAC;gBAC3B,MAAM,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,SAAS,CAAC,CAAA;aAC7D;SACF;QAED,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;YAAE,MAAM,CAAC,CAAC;QAEjD,gDAAgD;QAChD,2CAA2C;QAC3C,MAAM;YACJ,GAAG,EAAE,IAAA,0BAAa,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,uBAAU,EAAC,CAAC,CAAC;YACrD,GAAG,EAAG,IAAA,0BAAa,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,IAAI,cAAc;SACnF,CAAC;KACH;AACH,CAAC;AA1JD,wBA0JC;AAAA,CAAC;AAGF,MAAM,aAAa,GAAG,CAAC,CAAM,EAAE,EAAE;IAC/B,IAAG,IAAA,0BAAa,EAAC,CAAC,CAAC,EAAC;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAA,yBAAO,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAClB,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,UAAU,KAAK,CAAC,UAAU,eAAe,CAAC,CAAC,CAAC,KAAK;aAC9F,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACP;AACH,CAAC,CAAA"}
|
package/lib/DboBuilder/insert.js
CHANGED
|
@@ -6,13 +6,21 @@ const DboBuilder_1 = require("../DboBuilder");
|
|
|
6
6
|
async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams) {
|
|
7
7
|
const localParams = _localParams || {};
|
|
8
8
|
const { dbTX } = localParams;
|
|
9
|
-
const finalDBtx = dbTX || this.dbTX;
|
|
10
|
-
if (tableRules?.insert?.postValidate && !finalDBtx) {
|
|
11
|
-
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams));
|
|
12
|
-
}
|
|
13
9
|
try {
|
|
14
|
-
const {
|
|
10
|
+
const { onConflictDoNothing, fixIssues = false } = param2 || {};
|
|
11
|
+
let { returning } = param2 || {};
|
|
15
12
|
const { testRule = false, returnQuery = false } = localParams || {};
|
|
13
|
+
const finalDBtx = dbTX || this.dbTX;
|
|
14
|
+
if (tableRules?.insert?.postValidate) {
|
|
15
|
+
if (!finalDBtx) {
|
|
16
|
+
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams));
|
|
17
|
+
}
|
|
18
|
+
/** Post validate can only access the fields that are accessible to the client */
|
|
19
|
+
returning ?? (returning = {});
|
|
20
|
+
if (returning !== "*") {
|
|
21
|
+
returning["*"] = 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
16
24
|
let returningFields, forcedData, fields;
|
|
17
25
|
if (tableRules) {
|
|
18
26
|
if (!tableRules.insert)
|
|
@@ -110,15 +118,15 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
110
118
|
const tx = dbTX?.[this.name]?.t || this.t;
|
|
111
119
|
const allowedFieldKeys = this.parseFieldFilter(fields);
|
|
112
120
|
if (tx) {
|
|
113
|
-
result = tx[queryType](query).catch((err) => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
121
|
+
result = await tx[queryType](query).catch((err) => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
114
122
|
}
|
|
115
123
|
else {
|
|
116
|
-
result = this.db.tx(t => t[queryType](query)).catch(err => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
124
|
+
result = await this.db.tx(t => t[queryType](query)).catch(err => (0, DboBuilder_1.makeErr)(err, localParams, this, allowedFieldKeys));
|
|
117
125
|
}
|
|
118
126
|
if (tableRules?.insert?.postValidate) {
|
|
119
127
|
if (!finalDBtx)
|
|
120
128
|
throw new Error("Unexpected: no dbTX for postValidate");
|
|
121
|
-
const rows = Array.isArray(
|
|
129
|
+
const rows = Array.isArray(result) ? result : [result];
|
|
122
130
|
for await (const row of rows) {
|
|
123
131
|
await tableRules?.insert?.postValidate(row ?? {}, finalDBtx);
|
|
124
132
|
}
|
|
@@ -128,15 +136,6 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
128
136
|
catch (e) {
|
|
129
137
|
if (localParams && localParams.testRule)
|
|
130
138
|
throw e;
|
|
131
|
-
const removeBuffers = (o) => {
|
|
132
|
-
if ((0, DboBuilder_1.isPlainObject)(o)) {
|
|
133
|
-
return JSON.stringify((0, prostgles_types_1.getKeys)(o).reduce((a, k) => {
|
|
134
|
-
const value = o[k];
|
|
135
|
-
return { ...a, [k]: Buffer.isBuffer(value) ? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
136
|
-
};
|
|
137
|
-
}, {}));
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
139
|
// ${JSON.stringify(rowOrRows || {}, null, 2)},
|
|
141
140
|
// ${JSON.stringify(param2 || {}, null, 2)}
|
|
142
141
|
throw {
|
|
@@ -147,3 +146,12 @@ async function insert(rowOrRows, param2, param3_unused, tableRules, _localParams
|
|
|
147
146
|
}
|
|
148
147
|
exports.insert = insert;
|
|
149
148
|
;
|
|
149
|
+
const removeBuffers = (o) => {
|
|
150
|
+
if ((0, DboBuilder_1.isPlainObject)(o)) {
|
|
151
|
+
return JSON.stringify((0, prostgles_types_1.getKeys)(o).reduce((a, k) => {
|
|
152
|
+
const value = o[k];
|
|
153
|
+
return { ...a, [k]: Buffer.isBuffer(value) ? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
154
|
+
};
|
|
155
|
+
}, {}));
|
|
156
|
+
}
|
|
157
|
+
};
|
package/lib/DboBuilder/insert.ts
CHANGED
|
@@ -6,14 +6,23 @@ import { TableRule } from "../PublishParser";
|
|
|
6
6
|
export async function insert(this: TableHandler, rowOrRows: (AnyObject | AnyObject[]), param2?: InsertParams, param3_unused?: undefined, tableRules?: TableRule, _localParams?: LocalParams): Promise<any | any[] | boolean> {
|
|
7
7
|
const localParams = _localParams || {};
|
|
8
8
|
const { dbTX } = localParams;
|
|
9
|
-
const finalDBtx = dbTX || this.dbTX;
|
|
10
|
-
if(tableRules?.insert?.postValidate && !finalDBtx){
|
|
11
|
-
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams))
|
|
12
|
-
}
|
|
13
9
|
try {
|
|
14
10
|
|
|
15
|
-
const {
|
|
11
|
+
const { onConflictDoNothing, fixIssues = false } = param2 || {};
|
|
12
|
+
let { returning } = param2 || {};
|
|
16
13
|
const { testRule = false, returnQuery = false } = localParams || {};
|
|
14
|
+
const finalDBtx = dbTX || this.dbTX;
|
|
15
|
+
if(tableRules?.insert?.postValidate ){
|
|
16
|
+
if(!finalDBtx){
|
|
17
|
+
return this.dboBuilder.getTX(_dbtx => _dbtx[this.name]?.insert?.(rowOrRows, param2, param3_unused, tableRules, _localParams))
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Post validate can only access the fields that are accessible to the client */
|
|
21
|
+
returning ??= {};
|
|
22
|
+
if(returning !== "*"){
|
|
23
|
+
returning["*"] = 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
17
26
|
|
|
18
27
|
let returningFields: FieldFilter | undefined,
|
|
19
28
|
forcedData: AnyObject | undefined,
|
|
@@ -124,14 +133,14 @@ export async function insert(this: TableHandler, rowOrRows: (AnyObject | AnyObje
|
|
|
124
133
|
|
|
125
134
|
const allowedFieldKeys = this.parseFieldFilter(fields);
|
|
126
135
|
if (tx) {
|
|
127
|
-
result = (tx as any)[queryType](query).catch((err: any) => makeErr(err, localParams, this, allowedFieldKeys));
|
|
136
|
+
result = await (tx as any)[queryType](query).catch((err: any) => makeErr(err, localParams, this, allowedFieldKeys));
|
|
128
137
|
} else {
|
|
129
|
-
result = this.db.tx(t => (t as any)[queryType](query)).catch(err => makeErr(err, localParams, this, allowedFieldKeys));
|
|
138
|
+
result = await this.db.tx(t => (t as any)[queryType](query)).catch(err => makeErr(err, localParams, this, allowedFieldKeys));
|
|
130
139
|
}
|
|
131
140
|
|
|
132
141
|
if(tableRules?.insert?.postValidate){
|
|
133
142
|
if(!finalDBtx) throw new Error("Unexpected: no dbTX for postValidate");
|
|
134
|
-
const rows = Array.isArray(
|
|
143
|
+
const rows = Array.isArray(result)? result : [result];
|
|
135
144
|
for await (const row of rows){
|
|
136
145
|
await tableRules?.insert?.postValidate(row ?? {}, finalDBtx)
|
|
137
146
|
}
|
|
@@ -141,15 +150,6 @@ export async function insert(this: TableHandler, rowOrRows: (AnyObject | AnyObje
|
|
|
141
150
|
} catch (e) {
|
|
142
151
|
if (localParams && localParams.testRule) throw e;
|
|
143
152
|
|
|
144
|
-
const removeBuffers = (o: any) => {
|
|
145
|
-
if(isPlainObject(o)){
|
|
146
|
-
return JSON.stringify(getKeys(o).reduce((a, k) => {
|
|
147
|
-
const value = o[k]
|
|
148
|
-
return { ...a, [k]: Buffer.isBuffer(value)? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
149
|
-
}
|
|
150
|
-
}, {}));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
153
|
// ${JSON.stringify(rowOrRows || {}, null, 2)},
|
|
154
154
|
// ${JSON.stringify(param2 || {}, null, 2)}
|
|
155
155
|
throw {
|
|
@@ -157,4 +157,15 @@ export async function insert(this: TableHandler, rowOrRows: (AnyObject | AnyObje
|
|
|
157
157
|
msg: isPlainObject(e) && e.msg? e.msg : `Issue with dbo.${this.name}.insert(...)`,
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
-
};
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
const removeBuffers = (o: any) => {
|
|
164
|
+
if(isPlainObject(o)){
|
|
165
|
+
return JSON.stringify(getKeys(o).reduce((a, k) => {
|
|
166
|
+
const value = o[k]
|
|
167
|
+
return { ...a, [k]: Buffer.isBuffer(value)? `Buffer[${value.byteLength}][...REMOVED]` : value
|
|
168
|
+
}
|
|
169
|
+
}, {}));
|
|
170
|
+
}
|
|
171
|
+
}
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
18549
|