orchid-orm 1.72.3 → 1.72.5
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 +38 -26
- package/dist/index.js +32 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -25
- package/dist/index.mjs.map +1 -1
- package/dist/migrations/index.js +74 -13
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/index.mjs +74 -13
- package/dist/migrations/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -313,6 +313,7 @@ var BelongsToVirtualColumn = class extends VirtualColumn {
|
|
|
313
313
|
this.nestedUpdate = nestedUpdate$2(this.state);
|
|
314
314
|
}
|
|
315
315
|
create(q, ctx, items) {
|
|
316
|
+
const queryForCreate = q;
|
|
316
317
|
const { key, state: { query, primaryKeys, foreignKeys } } = this;
|
|
317
318
|
let nestedCreateItems;
|
|
318
319
|
items.forEach((item) => {
|
|
@@ -331,7 +332,7 @@ var BelongsToVirtualColumn = class extends VirtualColumn {
|
|
|
331
332
|
if (!nestedCreateItems) return;
|
|
332
333
|
for (const key of foreignKeys) if (!ctx.columns.has(key)) ctx.columns.set(key, ctx.columns.size);
|
|
333
334
|
const { create, connect, connectOrCreate } = nestedCreateItems;
|
|
334
|
-
if (create) _prependWith(
|
|
335
|
+
if (create) _prependWith(queryForCreate, (as) => {
|
|
335
336
|
const count = create.items.length;
|
|
336
337
|
foreignKeys.forEach((foreignKey, i) => {
|
|
337
338
|
const primaryKey = primaryKeys[i];
|
|
@@ -341,20 +342,21 @@ var BelongsToVirtualColumn = class extends VirtualColumn {
|
|
|
341
342
|
});
|
|
342
343
|
}, _queryInsertMany(query.select(...primaryKeys), create.values));
|
|
343
344
|
if (connect) connect.values.forEach((value, itemI) => {
|
|
344
|
-
const as = getFreeAlias(
|
|
345
|
-
_prependWith(
|
|
345
|
+
const as = getFreeAlias(queryForCreate.q.withShapes, "q");
|
|
346
|
+
_prependWith(queryForCreate, as, query.select(...primaryKeys).findBy(value));
|
|
346
347
|
foreignKeys.map((foreignKey, i) => {
|
|
347
348
|
connect.items[itemI][foreignKey] = new RawSql(selectCteColumnMustExistSql(i, as, primaryKeys[i]));
|
|
348
349
|
});
|
|
349
350
|
});
|
|
350
351
|
if (connectOrCreate) connectOrCreate.values.forEach((value, itemI) => {
|
|
351
|
-
_prependWith(
|
|
352
|
+
_prependWith(queryForCreate, setForeignKeysFromCte(connectOrCreate.items[itemI], primaryKeys, foreignKeys), _orCreate(_queryWhere(query.select(...primaryKeys), [value.where]), value.create));
|
|
352
353
|
});
|
|
353
354
|
}
|
|
354
355
|
update(q, set) {
|
|
355
|
-
|
|
356
|
+
const queryForUpdate = q;
|
|
357
|
+
queryForUpdate.q.wrapInTransaction = true;
|
|
356
358
|
const data = set[this.key];
|
|
357
|
-
this.nestedUpdate(
|
|
359
|
+
this.nestedUpdate(queryForUpdate, set, data);
|
|
358
360
|
}
|
|
359
361
|
};
|
|
360
362
|
const makeBelongsToMethod = (tableConfig, table, relation, relationName, query) => {
|
|
@@ -486,7 +488,8 @@ var HasOneVirtualColumn = class extends VirtualColumn {
|
|
|
486
488
|
for (const foreignKey of state.foreignKeys) this.setNulls[foreignKey] = null;
|
|
487
489
|
}
|
|
488
490
|
create(self, ctx, items, rowIndexes, count) {
|
|
489
|
-
|
|
491
|
+
const querySelf = self;
|
|
492
|
+
if (count <= querySelf.qb.internal.nestedCreateBatchMax) {
|
|
490
493
|
const { query: rel, primaryKeys, foreignKeys } = this.state;
|
|
491
494
|
let nestedCreateItems;
|
|
492
495
|
items.forEach((item, i) => {
|
|
@@ -509,7 +512,7 @@ var HasOneVirtualColumn = class extends VirtualColumn {
|
|
|
509
512
|
let createAs;
|
|
510
513
|
let connectAs;
|
|
511
514
|
let connectOrCreateAs;
|
|
512
|
-
_hookSelectColumns(
|
|
515
|
+
_hookSelectColumns(querySelf, primaryKeys, (aliasedPrimaryKeys) => {
|
|
513
516
|
foreignKeys.forEach((key, keyI) => {
|
|
514
517
|
const primaryKey = aliasedPrimaryKeys[keyI];
|
|
515
518
|
if (create && createAs) for (let i = 0; i < create.items.length; i++) create.items[i][key]._sql = selectCteColumnFromManySql(createAs, primaryKey, create.indexes[i], count);
|
|
@@ -518,14 +521,14 @@ var HasOneVirtualColumn = class extends VirtualColumn {
|
|
|
518
521
|
});
|
|
519
522
|
});
|
|
520
523
|
const { create, connect, connectOrCreate } = nestedCreateItems;
|
|
521
|
-
if (create) _appendQuery(
|
|
524
|
+
if (create) _appendQuery(querySelf, _queryInsertMany(_clone(rel), create.items), (as) => createAs = as);
|
|
522
525
|
if (connect) connect.values.forEach((value, i) => {
|
|
523
526
|
const query = _queryUpdateOrThrow(rel.where(value), connect.items[i]);
|
|
524
527
|
query.q.ensureCount = 1;
|
|
525
|
-
_appendQuery(
|
|
528
|
+
_appendQuery(querySelf, query, (as) => connectAs = as);
|
|
526
529
|
});
|
|
527
530
|
if (connectOrCreate) connectOrCreate.values.forEach((value, i) => {
|
|
528
|
-
_appendQuery(
|
|
531
|
+
_appendQuery(querySelf, _queryUpsert(rel.where(value.where), {
|
|
529
532
|
update: connectOrCreate.items[i],
|
|
530
533
|
create: {
|
|
531
534
|
...value.create,
|
|
@@ -533,18 +536,19 @@ var HasOneVirtualColumn = class extends VirtualColumn {
|
|
|
533
536
|
}
|
|
534
537
|
}), (as) => connectOrCreateAs = as);
|
|
535
538
|
});
|
|
536
|
-
} else hasRelationHandleCreate(
|
|
539
|
+
} else hasRelationHandleCreate(querySelf, ctx, items, rowIndexes, this.key, this.state.primaryKeys, this.nestedInsert);
|
|
537
540
|
}
|
|
538
541
|
update(self, set) {
|
|
542
|
+
const querySelf = self;
|
|
539
543
|
const params = set[this.key];
|
|
540
|
-
if ((params.set || params.create || params.upsert) && isQueryReturnsAll(
|
|
544
|
+
if ((params.set || params.create || params.upsert) && isQueryReturnsAll(querySelf)) {
|
|
541
545
|
const key = params.set ? "set" : params.create ? "create" : "upsert";
|
|
542
546
|
throw new Error(`\`${key}\` option is not allowed in a batch update`);
|
|
543
547
|
}
|
|
544
548
|
const { primaryKeys, foreignKeys, query: relQuery } = this.state;
|
|
545
549
|
if (params.create || params.update || params.upsert || params.disconnect || params.set || params.delete) {
|
|
546
550
|
let appendedAs;
|
|
547
|
-
_hookSelectColumns(
|
|
551
|
+
_hookSelectColumns(querySelf, primaryKeys, (aliasedPrimaryKeys) => {
|
|
548
552
|
selectIdsSql._sql = selectCteColumnsSql(appendedAs, aliasedPrimaryKeys);
|
|
549
553
|
if (params.create || params.set || params.upsert) foreignKeys.forEach((foreignKey, i) => {
|
|
550
554
|
setIds[foreignKey]._sql = selectCteColumnSql(appendedAs, aliasedPrimaryKeys[i]);
|
|
@@ -567,15 +571,15 @@ var HasOneVirtualColumn = class extends VirtualColumn {
|
|
|
567
571
|
}
|
|
568
572
|
}) : params.delete ? _queryDelete(existingRelQuery) : _queryUpdate(existingRelQuery, this.setNulls);
|
|
569
573
|
nullifyOrDeleteQuery.q.returnType = "void";
|
|
570
|
-
_appendQuery(
|
|
571
|
-
if (params.create) _appendQuery(
|
|
574
|
+
_appendQuery(querySelf, nullifyOrDeleteQuery, (as) => appendedAs = as);
|
|
575
|
+
if (params.create) _appendQuery(querySelf, _queryInsert(_clone(relQuery), {
|
|
572
576
|
...params.create,
|
|
573
577
|
...setIds
|
|
574
578
|
}), noop);
|
|
575
579
|
else if (params.set) {
|
|
576
580
|
const setQuery = _queryUpdate(_queryWhere(_clone(relQuery), [params.set]), setIds);
|
|
577
581
|
setQuery.q.returnType = "void";
|
|
578
|
-
_appendQuery(
|
|
582
|
+
_appendQuery(querySelf, setQuery, noop);
|
|
579
583
|
}
|
|
580
584
|
}
|
|
581
585
|
}
|
|
@@ -689,7 +693,8 @@ var HasManyVirtualColumn = class extends VirtualColumn {
|
|
|
689
693
|
this.nestedUpdate = nestedUpdate$1(state);
|
|
690
694
|
}
|
|
691
695
|
create(self, ctx, items, rowIndexes, count) {
|
|
692
|
-
|
|
696
|
+
const querySelf = self;
|
|
697
|
+
if (count <= querySelf.qb.internal.nestedCreateBatchMax) {
|
|
693
698
|
const { query: rel, primaryKeys, foreignKeys } = this.state;
|
|
694
699
|
let nestedCreateItems;
|
|
695
700
|
items.forEach((item, i) => {
|
|
@@ -726,7 +731,7 @@ var HasManyVirtualColumn = class extends VirtualColumn {
|
|
|
726
731
|
let createAs;
|
|
727
732
|
let connectAs;
|
|
728
733
|
let connectOrCreateAs;
|
|
729
|
-
_hookSelectColumns(
|
|
734
|
+
_hookSelectColumns(querySelf, primaryKeys, (aliasedPrimaryKeys) => {
|
|
730
735
|
foreignKeys.forEach((key, keyI) => {
|
|
731
736
|
const primaryKey = aliasedPrimaryKeys[keyI];
|
|
732
737
|
if (create && createAs) for (let i = 0; i < create.items.length; i++) {
|
|
@@ -738,15 +743,15 @@ var HasManyVirtualColumn = class extends VirtualColumn {
|
|
|
738
743
|
});
|
|
739
744
|
});
|
|
740
745
|
const { create, connect, connectOrCreate } = nestedCreateItems;
|
|
741
|
-
if (create) _appendQuery(
|
|
746
|
+
if (create) _appendQuery(querySelf, _queryInsertMany(_clone(rel), create.items.flat()), (as) => createAs = as);
|
|
742
747
|
if (connect) connect.values.forEach((value, i) => {
|
|
743
748
|
const query = _queryUpdateOrThrow(rel.whereOneOf(...value), connect.items[i]);
|
|
744
749
|
query.q.ensureCount = value.length;
|
|
745
|
-
_appendQuery(
|
|
750
|
+
_appendQuery(querySelf, query, (as) => connectAs = as);
|
|
746
751
|
});
|
|
747
752
|
if (connectOrCreate) connectOrCreate.values.forEach((array, i) => {
|
|
748
753
|
const foreignKeyValues = connectOrCreate.items[i];
|
|
749
|
-
for (const value of array) _appendQuery(
|
|
754
|
+
for (const value of array) _appendQuery(querySelf, _queryUpsert(rel.where(value.where), {
|
|
750
755
|
update: foreignKeyValues,
|
|
751
756
|
create: {
|
|
752
757
|
...value.create,
|
|
@@ -754,15 +759,16 @@ var HasManyVirtualColumn = class extends VirtualColumn {
|
|
|
754
759
|
}
|
|
755
760
|
}), (as) => connectOrCreateAs = as);
|
|
756
761
|
});
|
|
757
|
-
} else hasRelationHandleCreate(
|
|
762
|
+
} else hasRelationHandleCreate(querySelf, ctx, items, rowIndexes, this.key, this.state.primaryKeys, this.nestedInsert);
|
|
758
763
|
}
|
|
759
764
|
update(q, set) {
|
|
765
|
+
const query = q;
|
|
760
766
|
const params = set[this.key];
|
|
761
|
-
if ((params.set || params.create) && isQueryReturnsAll(
|
|
767
|
+
if ((params.set || params.create) && isQueryReturnsAll(query)) {
|
|
762
768
|
const key = params.set ? "set" : "create";
|
|
763
769
|
throw new Error(`\`${key}\` option is not allowed in a batch update`);
|
|
764
770
|
}
|
|
765
|
-
hasRelationHandleUpdate(
|
|
771
|
+
hasRelationHandleUpdate(query, set, this.key, this.state.primaryKeys, this.nestedUpdate);
|
|
766
772
|
}
|
|
767
773
|
};
|
|
768
774
|
const makeHasManyMethod = (tableConfig, table, relation, relationName, query) => {
|
|
@@ -1401,6 +1407,7 @@ const assignTablesToOrm = (tables, result, adapter, qb, asyncStorage, commonOpti
|
|
|
1401
1407
|
softDelete: table.softDelete,
|
|
1402
1408
|
snakeCase: table.snakeCase,
|
|
1403
1409
|
comment: table.comment,
|
|
1410
|
+
readOnly: table.readOnly,
|
|
1404
1411
|
noPrimaryKey: table.noPrimaryKey ? "ignore" : void 0,
|
|
1405
1412
|
computed: table.computed,
|
|
1406
1413
|
nowSQL: tableClass.nowSQL
|