orchid-orm 1.59.2 → 1.59.4
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 +74 -84
- package/dist/index.js +23 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -12
- package/dist/index.mjs.map +1 -1
- package/dist/migrations/node-postgres.js +3 -3
- package/dist/migrations/node-postgres.js.map +1 -1
- package/dist/migrations/node-postgres.mjs +4 -4
- package/dist/migrations/node-postgres.mjs.map +1 -1
- package/dist/migrations/postgres-js.js +3 -3
- package/dist/migrations/postgres-js.js.map +1 -1
- package/dist/migrations/postgres-js.mjs +4 -4
- package/dist/migrations/postgres-js.mjs.map +1 -1
- package/dist/node-postgres.d.ts +1 -1
- package/dist/node-postgres.js +6 -2
- package/dist/node-postgres.js.map +1 -1
- package/dist/node-postgres.mjs +6 -2
- package/dist/node-postgres.mjs.map +1 -1
- package/dist/postgres-js.d.ts +1 -1
- package/dist/postgres-js.js +2 -1
- package/dist/postgres-js.js.map +1 -1
- package/dist/postgres-js.mjs +2 -1
- package/dist/postgres-js.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { makeColumnTypes, getStackTrace, applyMixins, QueryHooks, defaultSchemaConfig, raw, getCallerFilePath, snakeCaseKey, getColumnTypes, parseTableData, toSnakeCase, emptyObject, emptyArray, _queryHookAfterCreate, _queryHookAfterUpdate, getQueryAs, setQueryObjectValueImmutable, pushQueryOnForOuter, isExpression, cloneQueryBaseUnscoped, DynamicRawSQL,
|
|
1
|
+
import { makeColumnTypes, getStackTrace, applyMixins, QueryHooks, defaultSchemaConfig, raw, getCallerFilePath, snakeCaseKey, getColumnTypes, parseTableData, toSnakeCase, emptyObject, emptyArray, _queryHookAfterCreate, _queryHookAfterUpdate, getQueryAs, setQueryObjectValueImmutable, pushQueryOnForOuter, isExpression, cloneQueryBaseUnscoped, DynamicRawSQL, RawSql, getShapeFromSelect, _queryWhere, _queryDefaults, getPrimaryKeys, VirtualColumn, _with, _queryCreate, _orCreate, getFreeAlias, isQueryReturnsAll, _queryHookBeforeUpdate, _queryFindBy, _queryRows, _queryUpdate, _queryDelete, prepareSubQueryForSql, _queryUpdateOrThrow, _queryCreateMany, OrchidOrmInternalError, toArray, objectHasValues, _queryJoinOn, _queryCreateManyFrom, NotFoundError, _queryFindByOptional, _querySelect, pick, _queryWhereExists, _queryTake, _queryTakeOptional, _initQueryBuilder, Db, getClonedQueryData } from 'pqb';
|
|
2
2
|
export * from 'pqb';
|
|
3
3
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
4
4
|
|
|
@@ -387,7 +387,7 @@ const combineOrdering = (result, joined) => {
|
|
|
387
387
|
const wrapQuery = (joiningQuery, result, item) => {
|
|
388
388
|
const baseOuterQuery = cloneQueryBaseUnscoped(joiningQuery);
|
|
389
389
|
const outer = baseOuterQuery.clone();
|
|
390
|
-
outer.q.and = [new DynamicRawSQL(() => new
|
|
390
|
+
outer.q.and = [new DynamicRawSQL(() => new RawSql(`${item.as || "r"} = 1`))];
|
|
391
391
|
outer.q.useFromLimitOffset = true;
|
|
392
392
|
outer.shape = getShapeFromSelect(result, true);
|
|
393
393
|
outer.q.select = Object.keys(outer.shape);
|
|
@@ -415,13 +415,16 @@ class BelongsToVirtualColumn extends VirtualColumn {
|
|
|
415
415
|
}
|
|
416
416
|
const value = item[key];
|
|
417
417
|
if ("create" in value || "connectOrCreate" in value) {
|
|
418
|
-
foreignKeys.forEach((foreignKey) => item[foreignKey] = new
|
|
418
|
+
foreignKeys.forEach((foreignKey) => item[foreignKey] = new RawSql(""));
|
|
419
419
|
const selectPKeys = query.select(...primaryKeys);
|
|
420
420
|
_with(
|
|
421
421
|
q,
|
|
422
422
|
(as) => {
|
|
423
423
|
foreignKeys.forEach((foreignKey, i) => {
|
|
424
|
-
item[foreignKey]._sql =
|
|
424
|
+
item[foreignKey]._sql = selectCteColumnSql(
|
|
425
|
+
as,
|
|
426
|
+
primaryKeys[i]
|
|
427
|
+
);
|
|
425
428
|
});
|
|
426
429
|
},
|
|
427
430
|
"create" in value ? _queryCreate(selectPKeys, value.create) : _orCreate(
|
|
@@ -436,9 +439,8 @@ class BelongsToVirtualColumn extends VirtualColumn {
|
|
|
436
439
|
const as = getFreeAlias(q.q.withShapes, "q");
|
|
437
440
|
_with(q, as, query.select(...primaryKeys).findBy(value.connect));
|
|
438
441
|
foreignKeys.map((foreignKey, i) => {
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
i === 0 ? `CASE WHEN (SELECT count(*) FROM "${as}") = 0 AND (SELECT 'not-found')::int = 0 THEN NULL ELSE ${selectColumn} END` : selectColumn
|
|
442
|
+
item[foreignKey] = new RawSql(
|
|
443
|
+
selectCteColumnMustExistSql(i, as, primaryKeys[i])
|
|
442
444
|
);
|
|
443
445
|
});
|
|
444
446
|
return;
|
|
@@ -542,13 +544,18 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
|
|
|
542
544
|
}
|
|
543
545
|
}
|
|
544
546
|
if (loadPrimaryKeys) {
|
|
545
|
-
const record = await _queryFindBy(
|
|
546
|
-
query.select(...loadPrimaryKeys),
|
|
547
|
-
params.set
|
|
548
|
-
);
|
|
549
547
|
for (let i = 0, len2 = loadPrimaryKeys.length; i < len2; i++) {
|
|
550
|
-
update[loadForeignKeys[i]] =
|
|
548
|
+
update[loadForeignKeys[i]] = new RawSql("");
|
|
551
549
|
}
|
|
550
|
+
_with(
|
|
551
|
+
q2,
|
|
552
|
+
(as) => {
|
|
553
|
+
for (let i = 0, len2 = loadPrimaryKeys.length; i < len2; i++) {
|
|
554
|
+
update[loadForeignKeys[i]]._sql = selectCteColumnMustExistSql(i, as, loadPrimaryKeys[i]);
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
_queryFindBy(query.select(...loadPrimaryKeys), params.set)
|
|
558
|
+
);
|
|
552
559
|
}
|
|
553
560
|
} else if (params.create) {
|
|
554
561
|
const q3 = query.clone();
|
|
@@ -645,6 +652,11 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
|
|
|
645
652
|
}
|
|
646
653
|
};
|
|
647
654
|
};
|
|
655
|
+
const selectCteColumnSql = (cteAs, column) => `(SELECT "${cteAs}"."${column}" FROM "${cteAs}")`;
|
|
656
|
+
const selectCteColumnMustExistSql = (i, cteAs, column) => {
|
|
657
|
+
const selectColumn = selectCteColumnSql(cteAs, column);
|
|
658
|
+
return i === 0 ? `CASE WHEN (SELECT count(*) FROM "${cteAs}") = 0 AND (SELECT 'not-found')::int = 0 THEN NULL ELSE ${selectColumn} END` : selectColumn;
|
|
659
|
+
};
|
|
648
660
|
|
|
649
661
|
class HasOneVirtualColumn extends VirtualColumn {
|
|
650
662
|
constructor(schema, key, state) {
|