joist-orm 1.92.1 → 1.92.3

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.
@@ -3,6 +3,7 @@ import { AsyncLocalStorage } from "async_hooks";
3
3
  import DataLoader, { BatchLoadFn, Options } from "dataloader";
4
4
  import { Knex } from "knex";
5
5
  import { Entity } from "./Entity";
6
+ import { ReactionsManager } from "./ReactionsManager";
6
7
  import { Driver } from "./drivers/Driver";
7
8
  import { DeepPartialOrNull, EntityMetadata, ExpressionFilter, FilterWithAlias, GraphQLFilterWithAlias, Lens, PartialOrNull, UniqueFilter } from "./index";
8
9
  import { LoadHint, Loaded, New } from "./loadHints";
@@ -142,9 +143,20 @@ export declare class EntityManager<C = unknown> {
142
143
  private _isFlushing;
143
144
  private _isValidating;
144
145
  pendingChildren: Map<string, Map<string, Entity[]>>;
146
+ /**
147
+ * Tracks cascade deletes.
148
+ *
149
+ * We originally used a beforeDelete lifecycle hook to implement this, but tracking this
150
+ * individually allows us to a) recursively cascade deletes even during the 1st iteration
151
+ * of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
152
+ * so that both see the most accurate state.
153
+ */
154
+ private pendingCascadeDeletes;
145
155
  dataloaders: Record<string, LoaderCache>;
146
156
  __data: {
147
157
  joinRows: Record<string, JoinRow[]>;
158
+ /** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
159
+ rm: ReactionsManager;
148
160
  };
149
161
  private hooks;
150
162
  constructor(em: EntityManager<C>);
@@ -384,7 +396,7 @@ export declare class EntityManager<C = unknown> {
384
396
  * may still point to this entity. We defer unsetting these not-currently-loaded references
385
397
  * until `EntityManager.flush`, when we can make the async calls to load-and-unset them.
386
398
  */
387
- delete(deletedEntity: Entity): void;
399
+ delete(entity: Entity): void;
388
400
  assignNewIds(): Promise<void>;
389
401
  /**
390
402
  * Flushes the SQL for any changed entities to the database.
@@ -458,6 +470,8 @@ export declare class EntityManager<C = unknown> {
458
470
  */
459
471
  getLoader<K, V>(operation: string, batchKey: string, fn: BatchLoadFn<K, V>, opts?: Options<K, V>): DataLoader<K, V>;
460
472
  toString(): string;
473
+ /** Recursively cascades any pending deletions. */
474
+ private cascadeDeletes;
461
475
  }
462
476
  export declare let entityLimit: number;
463
477
  export declare function setEntityLimit(limit: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.isDefined = exports.afterTransaction = exports.beforeTransaction = expor
7
7
  const async_hooks_1 = require("async_hooks");
8
8
  const dataloader_1 = __importDefault(require("dataloader"));
9
9
  const Entity_1 = require("./Entity");
10
+ const ReactionsManager_1 = require("./ReactionsManager");
10
11
  const Todo_1 = require("./Todo");
11
12
  const config_1 = require("./config");
12
13
  const createOrUpdatePartial_1 = require("./createOrUpdatePartial");
@@ -17,6 +18,7 @@ const findOrCreateDataLoader_1 = require("./dataloaders/findOrCreateDataLoader")
17
18
  const loadDataLoader_1 = require("./dataloaders/loadDataLoader");
18
19
  const index_1 = require("./index");
19
20
  const normalizeHints_1 = require("./normalizeHints");
21
+ const reactiveHints_1 = require("./reactiveHints");
20
22
  const relations_1 = require("./relations");
21
23
  const utils_1 = require("./utils");
22
24
  function isId(value) {
@@ -51,10 +53,21 @@ class EntityManager {
51
53
  _isValidating = false;
52
54
  // TODO Make these private
53
55
  pendingChildren = new Map();
56
+ /**
57
+ * Tracks cascade deletes.
58
+ *
59
+ * We originally used a beforeDelete lifecycle hook to implement this, but tracking this
60
+ * individually allows us to a) recursively cascade deletes even during the 1st iteration
61
+ * of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
62
+ * so that both see the most accurate state.
63
+ */
64
+ pendingCascadeDeletes = [];
54
65
  dataloaders = {};
55
66
  // This is attempting to be internal/module private
56
67
  __data = {
57
68
  joinRows: {},
69
+ /** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
70
+ rm: new ReactionsManager_1.ReactionsManager(),
58
71
  };
59
72
  hooks = {
60
73
  beforeTransaction: [],
@@ -459,6 +472,7 @@ class EntityManager {
459
472
  if (updatedAt) {
460
473
  entity.__orm.data[updatedAt] = new Date();
461
474
  }
475
+ this.__data.rm.queueAllDownstreamFields(entity);
462
476
  }
463
477
  exports.currentlyInstantiatingEntity = entity;
464
478
  }
@@ -473,13 +487,18 @@ class EntityManager {
473
487
  * may still point to this entity. We defer unsetting these not-currently-loaded references
474
488
  * until `EntityManager.flush`, when we can make the async calls to load-and-unset them.
475
489
  */
476
- delete(deletedEntity) {
490
+ delete(entity) {
477
491
  // Early return if already deleted.
478
- if (deletedEntity.__orm.deleted) {
492
+ if (entity.__orm.deleted) {
479
493
  return;
480
494
  }
481
- deletedEntity.__orm.deleted = "pending";
482
- (0, index_1.getRelations)(deletedEntity).forEach((relation) => relation.maybeCascadeDelete());
495
+ entity.__orm.deleted = "pending";
496
+ // Any derived fields that read this entity will need recalc-d
497
+ this.__data.rm.queueAllDownstreamFields(entity);
498
+ // Synchronously unhook the entity if the relations are loaded
499
+ getCascadeDeleteRelations(entity).forEach((r) => r.maybeCascadeDelete());
500
+ // And queue the cascade deletes
501
+ this.pendingCascadeDeletes.push(entity);
483
502
  }
484
503
  async assignNewIds() {
485
504
  let pendingEntities = this.entities.filter((e) => e.isNewEntity && !e.id);
@@ -505,44 +524,52 @@ class EntityManager {
505
524
  throw new Error("Cannot flush while another flush is already in progress");
506
525
  }
507
526
  this._isFlushing = true;
508
- const entitiesToFlush = [];
527
+ await exports.currentFlushSecret.run({ flushSecret: this.flushSecret }, async () => {
528
+ // Recalc any touched entities
529
+ const touched = this.entities.filter((e) => e.__orm.isTouched);
530
+ if (touched.length > 0) {
531
+ await recalcTouchedEntities(touched);
532
+ }
533
+ // Cascade deletes now that we're async (i.e. to keep `em.delete` synchronous).
534
+ // Also do this before calling `recalcPendingDerivedValues` to avoid recalculating
535
+ // fields on entities that will be deleted (and probably have unset/invalid FKs
536
+ // that would NPE their logic anyway).
537
+ await this.cascadeDeletes();
538
+ // Recalc before we run hooks, so the hooks will see the latest calculated values.
539
+ await this.__data.rm.recalcPendingDerivedValues();
540
+ });
541
+ const hooksInvoked = new Set();
509
542
  let pendingEntities = this.entities.filter((e) => e.isPendingFlush);
510
543
  try {
511
544
  while (pendingEntities.length > 0) {
512
545
  // Run hooks in a series of loops until things "settle down"
513
546
  await exports.currentFlushSecret.run({ flushSecret: this.flushSecret }, async () => {
514
- let todos = (0, Todo_1.createTodos)(pendingEntities);
515
547
  // Run our hooks
548
+ let todos = (0, Todo_1.createTodos)(pendingEntities);
516
549
  await beforeCreate(this.ctx, todos);
517
550
  await beforeUpdate(this.ctx, todos);
518
551
  await beforeFlush(this.ctx, todos);
519
- // Recalc todos in case one of ^ hooks did an em.delete
520
- todos = (0, Todo_1.createTodos)(pendingEntities);
521
- await beforeDelete(this.ctx, todos);
522
- // We defer doing this cascade logic until flush() so that delete() can remain synchronous.
523
- await cleanupDeletedRelations(todos);
524
- recalcDerivedFields(todos);
525
- // After hooks have run, and potentially updated fields, see if
526
- // any async derived values depend on changed fields.
527
- //
528
- // Note that we defer validation until our run-hooks loop is complete,
529
- // so that if a hook creates an entity, we don't invoke reactive validation
530
- // rules at this point, until we give the entity a chance to run its own hooks
531
- // as part of the next loop.
532
- await addReactiveAsyncDerivedValues(todos);
533
- // We include this inside the loop, b/c if we change values on a reacted,
534
- // not-yet-mutated entity, we'll want to loop around and run its hooks
535
- await recalcAsyncDerivedFields(this, todos);
536
- entitiesToFlush.push(...pendingEntities);
537
- pendingEntities = this.entities.filter((e) => e.isPendingFlush && !entitiesToFlush.includes(e));
552
+ // Call `setField` just to get the column marked as dirty if needed.
553
+ // This can come after the hooks, b/c if the hooks read any of these
554
+ // fields, they'd be via the synchronous getter and would not be stale.
555
+ recalcSynchronousDerivedFields(todos);
556
+ // The hooks could have deleted this-loop or prior-loop entities, so re-cascade again.
557
+ await this.cascadeDeletes();
558
+ // The hooks could have changed fields, so recalc again.
559
+ await this.__data.rm.recalcPendingDerivedValues();
560
+ for (const e of pendingEntities)
561
+ hooksInvoked.add(e);
562
+ pendingEntities = this.entities.filter((e) => e.isPendingFlush && !hooksInvoked.has(e));
538
563
  this.flushSecret += 1;
539
564
  });
540
565
  }
566
+ // Recreate todos now that we've run hooks and recalculated fields so know
567
+ // the full set of entities that will be INSERT/UPDATE/DELETE-d in the database.
568
+ const entitiesToFlush = [...hooksInvoked];
541
569
  const entityTodos = (0, Todo_1.createTodos)(entitiesToFlush);
542
570
  if (!skipValidation) {
543
571
  try {
544
572
  this._isValidating = true;
545
- await addReactiveValidations(entityTodos);
546
573
  // Run simple rules first b/c it includes not-null/required rules, so that then when we run
547
574
  // `validateReactiveRules` next, the lambdas won't see invalid entities.
548
575
  await validateSimpleRules(entityTodos);
@@ -582,6 +609,7 @@ class EntityManager {
582
609
  });
583
610
  // Reset the find caches b/c data will have changed in the db
584
611
  this.dataloaders = {};
612
+ this.__data.rm.clear();
585
613
  }
586
614
  return entitiesToFlush;
587
615
  }
@@ -722,6 +750,23 @@ class EntityManager {
722
750
  toString() {
723
751
  return "EntityManager";
724
752
  }
753
+ /** Recursively cascades any pending deletions. */
754
+ async cascadeDeletes() {
755
+ let entities = this.pendingCascadeDeletes;
756
+ this.pendingCascadeDeletes = [];
757
+ // Loop if our deletes cascade to other deletes
758
+ while (entities.length > 0) {
759
+ // For cascade delete relations, cascade the delete...
760
+ await Promise.all(entities.flatMap(getCascadeDeleteRelations).map((r) => r.load().then(() => r.maybeCascadeDelete())));
761
+ // Run the beforeDelete hook before we unhook the entity
762
+ const todos = (0, Todo_1.createTodos)(entities);
763
+ await beforeDelete(this.ctx, todos);
764
+ // For all relations, unhook the entity from the other side
765
+ await Promise.all(entities.flatMap(index_1.getRelations).map((r) => r.cleanupOnEntityDeleted()));
766
+ entities = this.pendingCascadeDeletes;
767
+ this.pendingCascadeDeletes = [];
768
+ }
769
+ }
725
770
  }
726
771
  exports.EntityManager = EntityManager;
727
772
  exports.entityLimit = 10000;
@@ -763,17 +808,23 @@ exports.NotFoundError = NotFoundError;
763
808
  class TooManyError extends Error {
764
809
  }
765
810
  exports.TooManyError = TooManyError;
811
+ /** Force recalc all async fields on entities that were `em.touch`-d. */
812
+ async function recalcTouchedEntities(touched) {
813
+ const relations = touched.flatMap((entity) => Object.values((0, index_1.getMetadata)(entity).allFields)
814
+ .filter((f) => "derived" in f && f.derived === "async")
815
+ .map((field) => entity[field.fieldName]));
816
+ await Promise.all(relations.map((r) => r.load()));
817
+ }
766
818
  /**
767
819
  * For the entities currently in `todos`, find any reactive validation rules that point
768
820
  * from the currently-changed entities back to each rule's originally-defined-in entity,
769
821
  * and ensure those entities are added to `todos`.
770
- *
771
- * Note that we don't check whether `entitiesToFlush` already the entities we're adding,
772
- * because rules should be side effect free, so invoking them twice, if that does happen
773
- * to occur, should be fine (and desirable given something about the entity has changed).
774
822
  */
775
- async function addReactiveValidations(todos) {
776
- const p = Object.values(todos).flatMap((todo) => {
823
+ async function validateReactiveRules(todos) {
824
+ // Use a map of rule -> Set<Entity> so that we only invoke a rule once per entity,
825
+ // even if it was triggered by multiple changed fields.
826
+ const fns = new Map();
827
+ const p1 = Object.values(todos).flatMap((todo) => {
777
828
  const entities = [...todo.inserts, ...todo.updates, ...todo.deletes];
778
829
  // Find each statically-declared reactive rule for the given entity type
779
830
  const rules = (0, index_1.getAllMetas)(todo.metadata).flatMap((m) => m.config.__data.reactiveRules);
@@ -783,53 +834,26 @@ async function addReactiveValidations(todos) {
783
834
  e.isDeletedEntity ||
784
835
  e.changes.fields.some((f) => rule.fields.includes(f)));
785
836
  // From these "triggered" entities, queue the "found"/owner entity to rerun this rule
786
- (await followReverseHint(triggered, rule.path))
837
+ (await (0, reactiveHints_1.followReverseHint)(triggered, rule.path))
787
838
  .filter((entity) => !entity.isDeletedEntity)
788
839
  .filter((e) => e instanceof rule.cstr)
789
840
  .forEach((entity) => {
790
- const { validates } = (0, Todo_1.getTodo)(todos, entity);
791
- // Even if the entity is in inserts/updates, we need to explicitly mark it for validation
792
- if (!validates.has(entity)) {
793
- validates.set(entity, new Set());
794
- }
795
- validates.get(entity).add(rule.fn);
796
- });
797
- });
798
- });
799
- await Promise.all(p);
800
- }
801
- /**
802
- * Given the current changed entities in `todos`, use the static metadata of `reactiveDerivedValues`
803
- * to find any potentially-unloaded entities we should now re-calc, and add them to `todos`.
804
- */
805
- async function addReactiveAsyncDerivedValues(todos) {
806
- const p = Object.values(todos).flatMap((todo) => {
807
- const entities = [...todo.inserts, ...todo.updates, ...todo.deletes];
808
- // Use getAllMetas to ensure we pick up subtype-only fields
809
- const fields = (0, index_1.getAllMetas)(todo.metadata).flatMap((m) => m.config.__data.reactiveDerivedValues);
810
- return fields.map(async (field) => {
811
- // Of all changed entities of this type, how many specifically trigger this rule?
812
- const triggered = entities.filter((e) => e.isNewEntity ||
813
- e.isDeletedEntity ||
814
- e.changes.fields.some((f) => field.fields.includes(f)));
815
- (await followReverseHint(triggered, field.path))
816
- .filter((entity) => !entity.isDeletedEntity)
817
- .filter((e) => e instanceof field.cstr)
818
- .forEach((entity) => {
819
- const { asyncFields } = (0, Todo_1.getTodo)(todos, entity);
820
- if (!asyncFields.has(entity)) {
821
- asyncFields.set(entity, new Set());
841
+ let entities = fns.get(rule.fn);
842
+ if (!entities) {
843
+ entities = new Set();
844
+ fns.set(rule.fn, entities);
822
845
  }
823
- asyncFields.get(entity).add(field.name);
846
+ entities.add(entity);
824
847
  });
825
848
  });
826
849
  });
827
- await Promise.all(p);
828
- }
829
- /** Find all deleted entities and ensure their references all know about their deleted-ness. */
830
- async function cleanupDeletedRelations(todos) {
831
- const entities = Object.values(todos).flatMap((todo) => todo.deletes);
832
- await Promise.all(entities.flatMap(index_1.getRelations).map((relation) => relation.cleanupOnEntityDeleted()));
850
+ await Promise.all(p1);
851
+ // Now that we've found the fn+entities to run, run them and collect any errors
852
+ const p2 = [...fns.entries()].flatMap(([fn, entities]) => [...entities].map(async (entity) => coerceError(entity, await fn(entity))));
853
+ const errors = (await Promise.all(p2)).flat();
854
+ if (errors.length > 0) {
855
+ throw new index_1.ValidationErrors(errors);
856
+ }
833
857
  }
834
858
  // Run *non-reactive* (those with `fields: undefined`) rules of explicitly mutated entities,
835
859
  // because even for reactive validations on mutated entities, we defer to addReactiveValidations
@@ -850,20 +874,6 @@ async function validateSimpleRules(todos) {
850
874
  throw new index_1.ValidationErrors(errors);
851
875
  }
852
876
  }
853
- // Run rules against unchanged-but-reacting entities
854
- async function validateReactiveRules(todos) {
855
- const p = Object.values(todos).flatMap(({ validates }) => {
856
- return [...validates.entries()]
857
- .filter(([e]) => !e.isDeletedEntity)
858
- .flatMap(([entity, fns]) => {
859
- return [...fns.values()].flatMap(async (fn) => coerceError(entity, await fn(entity)));
860
- });
861
- });
862
- const errors = (await Promise.all(p)).flat();
863
- if (errors.length > 0) {
864
- throw new index_1.ValidationErrors(errors);
865
- }
866
- }
867
877
  function beforeTransaction(em, knex) {
868
878
  return Promise.all(em["hooks"].beforeTransaction.map((fn) => fn(em, knex)));
869
879
  }
@@ -923,7 +933,7 @@ function coerceError(entity, maybeError) {
923
933
  }
924
934
  }
925
935
  /** Evaluates each (non-async) derived field to see if it's value has changed. */
926
- function recalcDerivedFields(todos) {
936
+ function recalcSynchronousDerivedFields(todos) {
927
937
  const entities = Object.values(todos)
928
938
  .flatMap((todo) => [...todo.inserts, ...todo.updates])
929
939
  .filter((e) => !e.isDeletedEntity);
@@ -943,57 +953,6 @@ function recalcDerivedFields(todos) {
943
953
  });
944
954
  }
945
955
  }
946
- /** Calcs async derived fields that have been triggered by a reactive hint. */
947
- async function recalcAsyncDerivedFields(em, todos) {
948
- const p = Object.values(todos).flatMap(({ asyncFields }) => {
949
- return [...asyncFields.entries()]
950
- .filter(([e]) => !e.isDeletedEntity)
951
- .flatMap(([entity, fields]) => {
952
- return [...fields.values()].map((fieldName) => entity[fieldName].load());
953
- });
954
- });
955
- await Promise.all(p);
956
- }
957
- /**
958
- * Walks `reverseHint` for every entity in `entities`.
959
- *
960
- * I.e. given `[book1, book2]` and `["author", 'publisher"]`, will return all of the books' authors' publishers.
961
- */
962
- async function followReverseHint(entities, reverseHint) {
963
- // Start at the current entities
964
- let current = [...entities];
965
- const paths = [...reverseHint];
966
- // And "walk backwards" through the reverse hint
967
- while (paths.length) {
968
- const path = paths.shift();
969
- const [fieldName, viaPolyType] = path.split("@");
970
- // The path might touch either a reference or a collection
971
- const entitiesOrLists = await Promise.all(current.flatMap((c) => {
972
- async function maybeLoadedPoly(loadPromise) {
973
- if (viaPolyType) {
974
- const loaded = await loadPromise;
975
- return loaded && loaded.__orm.metadata.type === viaPolyType ? loaded : undefined;
976
- }
977
- return loadPromise;
978
- }
979
- const currentValuePromise = maybeLoadedPoly(c[fieldName].load());
980
- // If we're going from Book.author back to Author to re-validate the Author.books collection,
981
- // see if Book.author has changed, so we can re-validate both the old author's books and the
982
- // new author's books.
983
- const fieldKind = (0, index_1.getMetadata)(c).fields[fieldName]?.kind;
984
- const isReference = fieldKind === "m2o" || fieldKind === "poly";
985
- const changed = c.changes[fieldName];
986
- if (isReference && changed.hasUpdated && changed.originalValue) {
987
- return [currentValuePromise, maybeLoadedPoly(changed.originalEntity)];
988
- }
989
- return [currentValuePromise];
990
- }));
991
- // Use flat() to get them all as entities
992
- const entities = entitiesOrLists.flat().filter((e) => e !== undefined);
993
- current = entities;
994
- }
995
- return current;
996
- }
997
956
  /** Recursively crawls through `entity`, with the given populate `deep` hint, and adds anything found to `found`. */
998
957
  async function crawl(found, entities, deep, opts) {
999
958
  const { skipIf = () => false } = opts ?? {};
@@ -1049,4 +1008,9 @@ exports.isDefined = isDefined;
1049
1008
  function getEvenDeleted(relation) {
1050
1009
  return "getWithDeleted" in relation ? relation.getWithDeleted : relation.get;
1051
1010
  }
1011
+ function getCascadeDeleteRelations(entity) {
1012
+ return (0, index_1.getAllMetas)((0, index_1.getMetadata)(entity)).flatMap((meta) => {
1013
+ return meta.config.__data.cascadeDeleteFields.map((fieldName) => entity[fieldName]);
1014
+ });
1015
+ }
1052
1016
  //# sourceMappingURL=EntityManager.js.map