pqb 0.4.4 → 0.4.6
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.d.ts +18 -7
- package/dist/index.esm.js +15 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/db.ts +1 -0
- package/src/query.ts +2 -2
- package/src/queryMethods/delete.ts +2 -0
- package/src/queryMethods/select.test.ts +1 -205
- package/src/queryMethods/select.ts +2 -0
- package/src/relations.ts +24 -6
- package/src/sql/delete.ts +7 -1
- package/src/sql/select.ts +7 -0
- package/src/sql/toSql.ts +1 -1
- package/src/sql/types.ts +6 -2
package/dist/index.js
CHANGED
|
@@ -819,6 +819,9 @@ class UnhandledTypeError extends PormInternalError {
|
|
|
819
819
|
}
|
|
820
820
|
}
|
|
821
821
|
|
|
822
|
+
const relationQueryKey = Symbol("relationQuery");
|
|
823
|
+
const isRequiredRelationKey = Symbol("isRequiredRelation");
|
|
824
|
+
|
|
822
825
|
const jsonColumnOrMethodToSql = (column, values, quotedAs) => {
|
|
823
826
|
return typeof column === "string" ? quoteFullColumn(column, quotedAs) : jsonToSql(column, values, quotedAs);
|
|
824
827
|
};
|
|
@@ -912,6 +915,10 @@ const selectToSql = (ctx, model, query, quotedAs) => {
|
|
|
912
915
|
};
|
|
913
916
|
const pushSubQuerySql = (query, as, values, list) => {
|
|
914
917
|
const { returnType = "all" } = query.query;
|
|
918
|
+
const rel = query.query[relationQueryKey];
|
|
919
|
+
if (rel) {
|
|
920
|
+
query = rel.joinQuery(rel.sourceQuery, query);
|
|
921
|
+
}
|
|
915
922
|
switch (returnType) {
|
|
916
923
|
case "all":
|
|
917
924
|
case "one":
|
|
@@ -1267,7 +1274,11 @@ const processValue = (values, key, value) => {
|
|
|
1267
1274
|
|
|
1268
1275
|
const pushDeleteSql = (ctx, model, query, quotedAs) => {
|
|
1269
1276
|
var _a, _b, _c;
|
|
1270
|
-
|
|
1277
|
+
const from = q(model.table);
|
|
1278
|
+
ctx.sql.push(`DELETE FROM ${from}`);
|
|
1279
|
+
if (from !== quotedAs) {
|
|
1280
|
+
ctx.sql.push(`AS ${quotedAs}`);
|
|
1281
|
+
}
|
|
1271
1282
|
let conditions;
|
|
1272
1283
|
if ((_a = query.join) == null ? void 0 : _a.length) {
|
|
1273
1284
|
const items = query.join.map(
|
|
@@ -1348,7 +1359,7 @@ const makeSql = (model, { values = [] } = {}) => {
|
|
|
1348
1359
|
return { text: sql.join(" "), values };
|
|
1349
1360
|
}
|
|
1350
1361
|
if (query.type === "delete") {
|
|
1351
|
-
pushDeleteSql(ctx, model, query,
|
|
1362
|
+
pushDeleteSql(ctx, model, query, quotedAs2);
|
|
1352
1363
|
return { text: sql.join(" "), values };
|
|
1353
1364
|
}
|
|
1354
1365
|
}
|
|
@@ -3423,7 +3434,9 @@ const addParserForSelectItem = (q, as, key, arg) => {
|
|
|
3423
3434
|
addParserForRawExpression(q, key, arg);
|
|
3424
3435
|
return arg;
|
|
3425
3436
|
} else if (typeof arg === "function") {
|
|
3437
|
+
q.isSubQuery = true;
|
|
3426
3438
|
const rel = arg(q);
|
|
3439
|
+
q.isSubQuery = false;
|
|
3427
3440
|
const parsers = getQueryParsers(rel);
|
|
3428
3441
|
if (parsers) {
|
|
3429
3442
|
if (queryTypeWithLimitOne[rel.query.returnType]) {
|
|
@@ -5690,9 +5703,6 @@ const createDb = (_a) => {
|
|
|
5690
5703
|
return db;
|
|
5691
5704
|
};
|
|
5692
5705
|
|
|
5693
|
-
const relationQueryKey = Symbol("relationQuery");
|
|
5694
|
-
const isRequiredRelationKey = Symbol("isRequiredRelation");
|
|
5695
|
-
|
|
5696
5706
|
exports.Adapter = Adapter;
|
|
5697
5707
|
exports.Aggregate = Aggregate;
|
|
5698
5708
|
exports.ArrayColumn = ArrayColumn;
|