joist-orm 1.11.0 → 1.12.2

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.
Files changed (92) hide show
  1. package/build/src/Entity.d.ts +51 -0
  2. package/build/src/Entity.js +8 -0
  3. package/build/src/Entity.js.map +1 -0
  4. package/build/src/EntityManager.d.ts +2 -142
  5. package/build/src/EntityManager.js +16 -23
  6. package/build/src/EntityManager.js.map +1 -1
  7. package/build/src/EntityMetadata.d.ts +114 -0
  8. package/build/src/EntityMetadata.js +36 -0
  9. package/build/src/EntityMetadata.js.map +1 -0
  10. package/build/src/QueryBuilder.d.ts +3 -1
  11. package/build/src/QueryBuilder.js +9 -7
  12. package/build/src/QueryBuilder.js.map +1 -1
  13. package/build/src/Todo.d.ts +2 -1
  14. package/build/src/Todo.js +2 -3
  15. package/build/src/Todo.js.map +1 -1
  16. package/build/src/changes.d.ts +2 -1
  17. package/build/src/changes.js +2 -1
  18. package/build/src/changes.js.map +1 -1
  19. package/build/src/config.d.ts +1 -1
  20. package/build/src/createOrUpdatePartial.d.ts +2 -1
  21. package/build/src/createOrUpdatePartial.js +7 -5
  22. package/build/src/createOrUpdatePartial.js.map +1 -1
  23. package/build/src/dataloaders/findDataLoader.d.ts +2 -1
  24. package/build/src/dataloaders/findDataLoader.js +2 -2
  25. package/build/src/dataloaders/findDataLoader.js.map +1 -1
  26. package/build/src/dataloaders/loadDataLoader.d.ts +3 -1
  27. package/build/src/dataloaders/loadDataLoader.js.map +1 -1
  28. package/build/src/dataloaders/manyToManyDataLoader.d.ts +2 -1
  29. package/build/src/dataloaders/manyToManyDataLoader.js.map +1 -1
  30. package/build/src/dataloaders/manyToManyFindDataLoader.d.ts +2 -1
  31. package/build/src/dataloaders/manyToManyFindDataLoader.js.map +1 -1
  32. package/build/src/dataloaders/oneToManyDataLoader.d.ts +2 -1
  33. package/build/src/dataloaders/oneToManyDataLoader.js.map +1 -1
  34. package/build/src/dataloaders/oneToManyFindDataLoader.d.ts +2 -1
  35. package/build/src/dataloaders/oneToManyFindDataLoader.js.map +1 -1
  36. package/build/src/dataloaders/oneToOneDataLoader.d.ts +2 -1
  37. package/build/src/dataloaders/oneToOneDataLoader.js +2 -2
  38. package/build/src/dataloaders/oneToOneDataLoader.js.map +1 -1
  39. package/build/src/drivers/InMemoryDriver.d.ts +3 -1
  40. package/build/src/drivers/InMemoryDriver.js +3 -2
  41. package/build/src/drivers/InMemoryDriver.js.map +1 -1
  42. package/build/src/drivers/driver.d.ts +3 -1
  43. package/build/src/getProperties.d.ts +2 -1
  44. package/build/src/getProperties.js.map +1 -1
  45. package/build/src/index.d.ts +5 -8
  46. package/build/src/index.js +11 -34
  47. package/build/src/index.js.map +1 -1
  48. package/build/src/keys.d.ts +2 -1
  49. package/build/src/keys.js +3 -3
  50. package/build/src/keys.js.map +1 -1
  51. package/build/src/loaded.d.ts +2 -1
  52. package/build/src/loaded.js.map +1 -1
  53. package/build/src/newTestInstance.d.ts +2 -1
  54. package/build/src/newTestInstance.js +8 -7
  55. package/build/src/newTestInstance.js.map +1 -1
  56. package/build/src/relations/Collection.d.ts +2 -1
  57. package/build/src/relations/Collection.js.map +1 -1
  58. package/build/src/relations/CustomCollection.d.ts +2 -1
  59. package/build/src/relations/CustomCollection.js.map +1 -1
  60. package/build/src/relations/CustomReference.d.ts +2 -1
  61. package/build/src/relations/CustomReference.js.map +1 -1
  62. package/build/src/relations/LargeCollection.d.ts +2 -1
  63. package/build/src/relations/ManyToManyLargeCollection.d.ts +3 -1
  64. package/build/src/relations/ManyToManyLargeCollection.js.map +1 -1
  65. package/build/src/relations/ManyToOneReference.d.ts +3 -1
  66. package/build/src/relations/ManyToOneReference.js +3 -2
  67. package/build/src/relations/ManyToOneReference.js.map +1 -1
  68. package/build/src/relations/OneToManyLargeCollection.d.ts +3 -1
  69. package/build/src/relations/OneToManyLargeCollection.js.map +1 -1
  70. package/build/src/relations/OneToOneReference.d.ts +2 -1
  71. package/build/src/relations/OneToOneReference.js +2 -2
  72. package/build/src/relations/OneToOneReference.js.map +1 -1
  73. package/build/src/relations/PolymorphicReference.d.ts +2 -1
  74. package/build/src/relations/PolymorphicReference.js +6 -4
  75. package/build/src/relations/PolymorphicReference.js.map +1 -1
  76. package/build/src/relations/Reference.d.ts +2 -1
  77. package/build/src/relations/Reference.js.map +1 -1
  78. package/build/src/relations/Relation.d.ts +1 -1
  79. package/build/src/relations/hasAsyncProperty.d.ts +1 -1
  80. package/build/src/relations/hasAsyncProperty.js.map +1 -1
  81. package/build/src/relations/hasManyDerived.d.ts +1 -1
  82. package/build/src/relations/hasOneDerived.d.ts +1 -1
  83. package/build/src/reverseHint.d.ts +2 -1
  84. package/build/src/reverseHint.js +3 -3
  85. package/build/src/reverseHint.js.map +1 -1
  86. package/build/src/rules.d.ts +1 -1
  87. package/build/src/rules.js +6 -4
  88. package/build/src/rules.js.map +1 -1
  89. package/build/src/serde.d.ts +1 -1
  90. package/build/src/utils.d.ts +2 -2
  91. package/build/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +2 -2
@@ -0,0 +1,51 @@
1
+ import { EntityManager, OptsOf } from "./EntityManager";
2
+ import { EntityMetadata } from "./EntityMetadata";
3
+ import { PartialOrNull } from "./index";
4
+ export declare function isEntity(maybeEntity: any): maybeEntity is Entity;
5
+ /** A marker/base interface for all of our entity types. */
6
+ export interface Entity {
7
+ /**
8
+ * The entity's primary key, or undefined if it's new.
9
+ *
10
+ * This will be a tagged id, i.e. `a:1`, unless idType is untagged in `joist-codegen.json`.
11
+ */
12
+ id: string | undefined;
13
+ /** The entity id that is always tagged, regardless of the idType config. */
14
+ idTagged: string | undefined;
15
+ idTaggedOrFail: string;
16
+ idOrFail: string;
17
+ /** Joist internal metadata, should be considered a private implementation detail. */
18
+ __orm: EntityOrmField;
19
+ readonly em: EntityManager<any>;
20
+ readonly isNewEntity: boolean;
21
+ readonly isDeletedEntity: boolean;
22
+ readonly isDirtyEntity: boolean;
23
+ readonly isPendingFlush: boolean;
24
+ readonly isPendingDelete: boolean;
25
+ set(opts: Partial<OptsOf<this>>): void;
26
+ setPartial(values: PartialOrNull<OptsOf<this>>): void;
27
+ /**
28
+ * Returns `type:id`, i.e. `Author:1` for persisted entities and `Author#1` for new entities.
29
+ *
30
+ * This is meant to be used for developer-facing logging and debugging, and not a user-facing
31
+ * name / display name.
32
+ */
33
+ toString(): string;
34
+ }
35
+ /** The `__orm` metadata field we track on each instance. */
36
+ export interface EntityOrmField {
37
+ /** A point to our entity type's metadata. */
38
+ metadata: EntityMetadata<Entity>;
39
+ /** A bag for our primitives/fk column values. */
40
+ data: Record<any, any>;
41
+ /** A bag to keep the original values, lazily populated. */
42
+ originalData: Record<any, any>;
43
+ /** Whether our entity has been deleted or not. */
44
+ deleted?: "pending" | "deleted";
45
+ /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
46
+ em: EntityManager;
47
+ /** Whether our entity is new or not. */
48
+ isNew: boolean;
49
+ /** Whether our entity should flush regardless of any other changes. */
50
+ isTouched: boolean;
51
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEntity = void 0;
4
+ function isEntity(maybeEntity) {
5
+ return maybeEntity && typeof maybeEntity === "object" && "id" in maybeEntity && "__orm" in maybeEntity;
6
+ }
7
+ exports.isEntity = isEntity;
8
+ //# sourceMappingURL=Entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":";;;AAIA,SAAgB,QAAQ,CAAC,WAAgB;IACvC,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,CAAC;AACzG,CAAC;AAFD,4BAEC"}
@@ -3,7 +3,8 @@ import { AsyncLocalStorage } from "async_hooks";
3
3
  import DataLoader from "dataloader";
4
4
  import { Knex } from "knex";
5
5
  import { Driver } from "./drivers/driver";
6
- import { ConfigApi, DeepNew, DeepPartialOrNull, FieldSerde, PartialOrNull, PolymorphicKeySerde } from "./index";
6
+ import { Entity } from "./Entity";
7
+ import { DeepPartialOrNull, EntityMetadata, PartialOrNull } from "./index";
7
8
  import { Loaded, LoadHint, New } from "./loaded";
8
9
  import { JoinRow } from "./relations/ManyToManyCollection";
9
10
  import { MaybePromise } from "./utils";
@@ -57,46 +58,7 @@ export declare type IdOf<T> = T extends {
57
58
  id: infer I | undefined;
58
59
  } ? I : never;
59
60
  export declare function isId(value: any): value is IdOf<unknown>;
60
- /** The `__orm` metadata field we track on each instance. */
61
- export interface EntityOrmField {
62
- /** A point to our entity type's metadata. */
63
- metadata: EntityMetadata<Entity>;
64
- /** A bag for our primitives/fk column values. */
65
- data: Record<any, any>;
66
- /** A bag to keep the original values, lazily populated. */
67
- originalData: Record<any, any>;
68
- /** Whether our entity has been deleted or not. */
69
- deleted?: "pending" | "deleted";
70
- /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
71
- em: EntityManager;
72
- /** Whether our entity is new or not. */
73
- isNew: boolean;
74
- /** Whether our entity should flush regardless of any other changes. */
75
- isTouched: boolean;
76
- }
77
61
  export declare let currentlyInstantiatingEntity: Entity | undefined;
78
- /** A marker/base interface for all of our entity types. */
79
- export interface Entity {
80
- /**
81
- * The entity's primary key, or undefined if it's new.
82
- *
83
- * This will be a tagged id, i.e. `a:1`, unless idType is untagged in `joist-codegen.json`.
84
- */
85
- id: string | undefined;
86
- /** The entity id that is always tagged, regardless of the idType config. */
87
- idTagged: string | undefined;
88
- idTaggedOrFail: string;
89
- idOrFail: string;
90
- __orm: EntityOrmField;
91
- readonly em: EntityManager<any>;
92
- readonly isNewEntity: boolean;
93
- readonly isDeletedEntity: boolean;
94
- readonly isDirtyEntity: boolean;
95
- readonly isPendingFlush: boolean;
96
- readonly isPendingDelete: boolean;
97
- set(opts: Partial<OptsOf<this>>): void;
98
- setPartial(values: PartialOrNull<OptsOf<this>>): void;
99
- }
100
62
  export declare type EntityManagerHook = "beforeTransaction" | "afterTransaction";
101
63
  declare type HookFn = (em: EntityManager, knex: Knex.Transaction) => MaybePromise<any>;
102
64
  /**
@@ -328,111 +290,9 @@ export declare class EntityManager<C = {}> {
328
290
  export declare let entityLimit: number;
329
291
  export declare function setEntityLimit(limit: number): void;
330
292
  export declare function setDefaultEntityLimit(): void;
331
- export interface EntityMetadata<T extends Entity> {
332
- cstr: EntityConstructor<T>;
333
- type: string;
334
- idType: "int" | "uuid";
335
- tableName: string;
336
- tagName: string;
337
- fields: Record<string, Field>;
338
- config: ConfigApi<T, any>;
339
- timestampFields: TimestampFields;
340
- factory: (em: EntityManager<any>, opts?: any) => DeepNew<T>;
341
- }
342
- export declare type Field = PrimaryKeyField | PrimitiveField | EnumField | OneToManyField | LargeOneToManyField | ManyToOneField | ManyToManyField | OneToOneField | PolymorphicField;
343
- export declare type SerdeField = PrimaryKeyField | PrimitiveField | EnumField | ManyToOneField | PolymorphicField;
344
- export declare type PrimaryKeyField = {
345
- kind: "primaryKey";
346
- fieldName: string;
347
- fieldIdName: undefined;
348
- required: true;
349
- serde: FieldSerde;
350
- };
351
- export declare type PrimitiveField = {
352
- kind: "primitive";
353
- fieldName: string;
354
- fieldIdName: undefined;
355
- required: boolean;
356
- derived: "orm" | "sync" | "async" | false;
357
- protected: boolean;
358
- type: string | Function;
359
- serde: FieldSerde;
360
- };
361
- export declare type EnumField = {
362
- kind: "enum";
363
- fieldName: string;
364
- fieldIdName: undefined;
365
- required: boolean;
366
- enumDetailType: {
367
- getValues(): ReadonlyArray<unknown>;
368
- };
369
- serde: FieldSerde;
370
- };
371
- export declare type OneToManyField = {
372
- kind: "o2m";
373
- fieldName: string;
374
- fieldIdName: string;
375
- required: boolean;
376
- otherMetadata: () => EntityMetadata<any>;
377
- otherFieldName: string;
378
- serde: undefined;
379
- };
380
- export declare type LargeOneToManyField = {
381
- kind: "lo2m";
382
- fieldName: string;
383
- fieldIdName: string;
384
- required: boolean;
385
- otherMetadata: () => EntityMetadata<any>;
386
- otherFieldName: string;
387
- serde: undefined;
388
- };
389
- export declare type ManyToOneField = {
390
- kind: "m2o";
391
- fieldName: string;
392
- fieldIdName: string;
393
- required: boolean;
394
- otherMetadata: () => EntityMetadata<any>;
395
- otherFieldName: string;
396
- serde: FieldSerde;
397
- };
398
- export declare type ManyToManyField = {
399
- kind: "m2m";
400
- fieldName: string;
401
- fieldIdName: string;
402
- required: boolean;
403
- otherMetadata: () => EntityMetadata<any>;
404
- otherFieldName: string;
405
- serde: undefined;
406
- };
407
- export declare type OneToOneField = {
408
- kind: "o2o";
409
- fieldName: string;
410
- fieldIdName: string;
411
- required: boolean;
412
- otherMetadata: () => EntityMetadata<any>;
413
- otherFieldName: string;
414
- serde: undefined;
415
- };
416
- export declare type PolymorphicField = {
417
- kind: "poly";
418
- fieldName: string;
419
- fieldIdName: string;
420
- required: boolean;
421
- components: PolymorphicFieldComponent[];
422
- serde: PolymorphicKeySerde;
423
- };
424
- export declare type PolymorphicFieldComponent = {
425
- otherMetadata: () => EntityMetadata<any>;
426
- otherFieldName: string;
427
- columnName: string;
428
- };
429
- export declare function isEntity(maybeEntity: any): maybeEntity is Entity;
430
293
  export declare function isKey(k: any): k is string;
431
294
  /** Compares `a` to `b`, where `b` might be an id. B/c ids can overlap, we need to know `b`'s metadata type. */
432
295
  export declare function sameEntity(a: Entity | undefined, meta: EntityMetadata<any>, b: Entity | string | undefined): boolean;
433
- export declare function getMetadata<T extends Entity>(entity: T): EntityMetadata<T>;
434
- export declare function getMetadata<T extends Entity>(type: EntityConstructor<T>): EntityMetadata<T>;
435
- export declare function getMetadata<T extends Entity>(meta: EntityMetadata<T>): EntityMetadata<T>;
436
296
  /** Thrown by `findOneOrFail` if an entity is not found. */
437
297
  export declare class NotFoundError extends Error {
438
298
  }
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.getMetadata = exports.sameEntity = exports.isKey = exports.isEntity = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.EntityManager = exports.currentFlushSecret = exports.currentlyInstantiatingEntity = exports.isId = void 0;
3
+ exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.sameEntity = exports.isKey = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.EntityManager = exports.currentFlushSecret = exports.currentlyInstantiatingEntity = exports.isId = void 0;
4
4
  const async_hooks_1 = require("async_hooks");
5
5
  const createOrUpdatePartial_1 = require("./createOrUpdatePartial");
6
6
  const findDataLoader_1 = require("./dataloaders/findDataLoader");
7
7
  const loadDataLoader_1 = require("./dataloaders/loadDataLoader");
8
+ const Entity_1 = require("./Entity");
8
9
  const index_1 = require("./index");
9
10
  const relations_1 = require("./relations");
10
11
  const Todo_1 = require("./Todo");
@@ -178,7 +179,7 @@ class EntityManager {
178
179
  Object.entries(copy)
179
180
  .filter(([, value]) => value === undefined)
180
181
  .forEach(([key]) => delete copy[key]);
181
- const meta = getMetadata(entity);
182
+ const meta = (0, index_1.getMetadata)(entity);
182
183
  const clone = new meta.cstr(this, {});
183
184
  clone.__orm.data = copy;
184
185
  const { updatedAt, createdAt } = meta.timestampFields;
@@ -199,7 +200,7 @@ class EntityManager {
199
200
  if (value instanceof relations_1.ManyToOneReferenceImpl || value instanceof index_1.PolymorphicReferenceImpl) {
200
201
  // What's the existing entity? Have we cloned it?
201
202
  const existingIdOrEntity = clone.__orm.data[fieldName];
202
- const existing = this.entities.find((e) => sameEntity(e, getMetadata(e), existingIdOrEntity));
203
+ const existing = this.entities.find((e) => sameEntity(e, (0, index_1.getMetadata)(e), existingIdOrEntity));
203
204
  // If we didn't find a loaded entity for this value, assume that it a) itself is not being cloned,
204
205
  // and b) we don't need to bother telling it about the newly cloned entity
205
206
  if (existing) {
@@ -226,7 +227,7 @@ class EntityManager {
226
227
  if (typeof id !== "string") {
227
228
  throw new Error(`Expected ${id} to be a string`);
228
229
  }
229
- const meta = getMetadata(type);
230
+ const meta = (0, index_1.getMetadata)(type);
230
231
  const tagged = (0, index_1.tagId)(meta, id);
231
232
  const entity = this.findExistingInstance(tagged) || (await (0, loadDataLoader_1.loadDataLoader)(this, meta).load(tagged));
232
233
  if (!entity) {
@@ -238,7 +239,7 @@ class EntityManager {
238
239
  return entity;
239
240
  }
240
241
  async loadAll(type, _ids, hint) {
241
- const meta = getMetadata(type);
242
+ const meta = (0, index_1.getMetadata)(type);
242
243
  const ids = _ids.map((id) => (0, index_1.tagId)(meta, id));
243
244
  const entities = await Promise.all(ids.map((id) => {
244
245
  return this.findExistingInstance(id) || (0, loadDataLoader_1.loadDataLoader)(this, meta).load(id);
@@ -253,7 +254,7 @@ class EntityManager {
253
254
  return entities;
254
255
  }
255
256
  async loadAllIfExists(type, _ids, hint) {
256
- const meta = getMetadata(type);
257
+ const meta = (0, index_1.getMetadata)(type);
257
258
  const ids = _ids.map((id) => (0, index_1.tagId)(meta, id));
258
259
  const entities = (await Promise.all(ids.map((id) => {
259
260
  return this.findExistingInstance(id) || (0, loadDataLoader_1.loadDataLoader)(this, meta).load(id);
@@ -331,7 +332,7 @@ class EntityManager {
331
332
  throw new Error(`Entity ${entity} has a duplicate instance already loaded`);
332
333
  }
333
334
  // Set a default createdAt/updatedAt that we'll keep if this is a new entity, or over-write if we're loaded an existing row
334
- const { createdAt, updatedAt } = getMetadata(entity).timestampFields;
335
+ const { createdAt, updatedAt } = (0, index_1.getMetadata)(entity).timestampFields;
335
336
  if (createdAt) {
336
337
  entity.__orm.data[createdAt] = new Date();
337
338
  }
@@ -470,14 +471,14 @@ class EntityManager {
470
471
  this.loadLoaders = {};
471
472
  this.findLoaders = {};
472
473
  const deepLoad = param && "deepLoad" in param && param.deepLoad;
473
- let todo = param === undefined ? this._entities : Array.isArray(param) ? param : isEntity(param) ? [param] : this._entities;
474
+ let todo = param === undefined ? this._entities : Array.isArray(param) ? param : (0, Entity_1.isEntity)(param) ? [param] : this._entities;
474
475
  const done = new Set();
475
476
  while (todo.length > 0) {
476
477
  const copy = [...todo];
477
478
  copy.forEach((e) => done.add(e));
478
479
  todo = [];
479
480
  // Clear the original cached loader result and fetch the new primitives
480
- const entities = await Promise.all(copy.filter((e) => e.idTagged).map((entity) => (0, loadDataLoader_1.loadDataLoader)(this, getMetadata(entity)).load(entity.idTagged)));
481
+ const entities = await Promise.all(copy.filter((e) => e.idTagged).map((entity) => (0, loadDataLoader_1.loadDataLoader)(this, (0, index_1.getMetadata)(entity)).load(entity.idTagged)));
481
482
  // Then refresh any non-deleted loaded collections
482
483
  const relations = entities
483
484
  .filter((e) => e && e.__orm.deleted === undefined)
@@ -498,7 +499,7 @@ class EntityManager {
498
499
  .filter((r) => !(r instanceof index_1.CustomCollection || r instanceof index_1.CustomReference))
499
500
  .map((r) => r.get)
500
501
  .flatMap((value) => (Array.isArray(value) ? value : [value]))
501
- .filter((value) => isEntity(value) && !done.has(value)));
502
+ .filter((value) => (0, Entity_1.isEntity)(value) && !done.has(value)));
502
503
  }
503
504
  }
504
505
  }
@@ -521,7 +522,7 @@ class EntityManager {
521
522
  * the WIP entity state.
522
523
  */
523
524
  hydrate(type, row, options) {
524
- const meta = getMetadata(type);
525
+ const meta = (0, index_1.getMetadata)(type);
525
526
  const id = (0, index_1.keyToString)(meta, row["id"]) || (0, utils_1.fail)("No id column was available");
526
527
  // See if this is already in our UoW
527
528
  let entity = this.findExistingInstance(id);
@@ -564,10 +565,6 @@ function setDefaultEntityLimit() {
564
565
  exports.entityLimit = 10000;
565
566
  }
566
567
  exports.setDefaultEntityLimit = setDefaultEntityLimit;
567
- function isEntity(maybeEntity) {
568
- return maybeEntity && typeof maybeEntity === "object" && "id" in maybeEntity && "__orm" in maybeEntity;
569
- }
570
- exports.isEntity = isEntity;
571
568
  function isKey(k) {
572
569
  return typeof k === "string";
573
570
  }
@@ -578,13 +575,9 @@ function sameEntity(a, meta, b) {
578
575
  return a === undefined && b === undefined;
579
576
  }
580
577
  return (a === b ||
581
- (!a.isNewEntity && getMetadata(a) === meta && (0, index_1.maybeResolveReferenceToId)(a) === (0, index_1.maybeResolveReferenceToId)(b)));
578
+ (!a.isNewEntity && (0, index_1.getMetadata)(a) === meta && (0, index_1.maybeResolveReferenceToId)(a) === (0, index_1.maybeResolveReferenceToId)(b)));
582
579
  }
583
580
  exports.sameEntity = sameEntity;
584
- function getMetadata(param) {
585
- return (typeof param === "function" ? param.metadata : "cstr" in param ? param : param.__orm.metadata);
586
- }
587
- exports.getMetadata = getMetadata;
588
581
  /** Thrown by `findOneOrFail` if an entity is not found. */
589
582
  class NotFoundError extends Error {
590
583
  }
@@ -727,7 +720,7 @@ function recalcDerivedFields(todos) {
727
720
  const entities = Object.values(todos)
728
721
  .flatMap((todo) => [...todo.inserts, ...todo.updates])
729
722
  .filter((e) => !e.isDeletedEntity);
730
- const derivedFieldsByMeta = new Map([...new Set(entities.map(getMetadata))].map((m) => {
723
+ const derivedFieldsByMeta = new Map([...new Set(entities.map(index_1.getMetadata))].map((m) => {
731
724
  return [
732
725
  m,
733
726
  Object.values(m.fields)
@@ -782,11 +775,11 @@ async function followReverseHint(entities, reverseHint) {
782
775
  // If we're going from Book.author back to Author to re-validate the Author.books collection,
783
776
  // see if Book.author has changed so we can re-validate both the old author's books and the
784
777
  // new author's books.
785
- const isReference = getMetadata(c).fields[fieldName]?.kind === "m2o";
778
+ const isReference = (0, index_1.getMetadata)(c).fields[fieldName]?.kind === "m2o";
786
779
  const hasChanged = isReference && c.changes[fieldName].hasChanged;
787
780
  const originalValue = c.changes[fieldName].originalValue;
788
781
  if (hasChanged && originalValue) {
789
- const originalEntityMaybePromise = isEntity(originalValue)
782
+ const originalEntityMaybePromise = (0, Entity_1.isEntity)(originalValue)
790
783
  ? originalValue
791
784
  : c.em.load(c[fieldName].otherMeta.cstr, originalValue);
792
785
  return [currentValuePromise, originalEntityMaybePromise];
@@ -1 +1 @@
1
- {"version":3,"file":"EntityManager.js","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityManager.js","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { ConfigApi } from "./config";
2
+ import { Entity } from "./Entity";
3
+ import { EntityConstructor, EntityManager, TimestampFields } from "./EntityManager";
4
+ import { DeepNew } from "./loaded";
5
+ import { FieldSerde, PolymorphicKeySerde } from "./serde";
6
+ export declare function getMetadata<T extends Entity>(entity: T): EntityMetadata<T>;
7
+ export declare function getMetadata<T extends Entity>(type: EntityConstructor<T>): EntityMetadata<T>;
8
+ export declare function getMetadata<T extends Entity>(meta: EntityMetadata<T>): EntityMetadata<T>;
9
+ /** Runtime metadata about an entity. */
10
+ export interface EntityMetadata<T extends Entity> {
11
+ cstr: EntityConstructor<T>;
12
+ type: string;
13
+ idType: "int" | "uuid";
14
+ tableName: string;
15
+ tagName: string;
16
+ fields: Record<string, Field>;
17
+ config: ConfigApi<T, any>;
18
+ timestampFields: TimestampFields;
19
+ factory: (em: EntityManager<any>, opts?: any) => DeepNew<T>;
20
+ }
21
+ export declare type Field = PrimaryKeyField | PrimitiveField | EnumField | OneToManyField | LargeOneToManyField | ManyToOneField | ManyToManyField | OneToOneField | PolymorphicField;
22
+ export declare type SerdeField = PrimaryKeyField | PrimitiveField | EnumField | ManyToOneField | PolymorphicField;
23
+ export declare type PrimaryKeyField = {
24
+ kind: "primaryKey";
25
+ fieldName: string;
26
+ fieldIdName: undefined;
27
+ required: true;
28
+ serde: FieldSerde;
29
+ };
30
+ export declare type PrimitiveField = {
31
+ kind: "primitive";
32
+ fieldName: string;
33
+ fieldIdName: undefined;
34
+ required: boolean;
35
+ derived: "orm" | "sync" | "async" | false;
36
+ protected: boolean;
37
+ type: string | Function;
38
+ serde: FieldSerde;
39
+ };
40
+ export declare type EnumField = {
41
+ kind: "enum";
42
+ fieldName: string;
43
+ fieldIdName: undefined;
44
+ required: boolean;
45
+ enumDetailType: {
46
+ getValues(): ReadonlyArray<unknown>;
47
+ };
48
+ serde: FieldSerde;
49
+ };
50
+ export declare type OneToManyField = {
51
+ kind: "o2m";
52
+ fieldName: string;
53
+ fieldIdName: string;
54
+ required: boolean;
55
+ otherMetadata: () => EntityMetadata<any>;
56
+ otherFieldName: string;
57
+ serde: undefined;
58
+ };
59
+ export declare type LargeOneToManyField = {
60
+ kind: "lo2m";
61
+ fieldName: string;
62
+ fieldIdName: string;
63
+ required: boolean;
64
+ otherMetadata: () => EntityMetadata<any>;
65
+ otherFieldName: string;
66
+ serde: undefined;
67
+ };
68
+ export declare type ManyToOneField = {
69
+ kind: "m2o";
70
+ fieldName: string;
71
+ fieldIdName: string;
72
+ required: boolean;
73
+ otherMetadata: () => EntityMetadata<any>;
74
+ otherFieldName: string;
75
+ serde: FieldSerde;
76
+ };
77
+ export declare type ManyToManyField = {
78
+ kind: "m2m";
79
+ fieldName: string;
80
+ fieldIdName: string;
81
+ required: boolean;
82
+ otherMetadata: () => EntityMetadata<any>;
83
+ otherFieldName: string;
84
+ serde: undefined;
85
+ };
86
+ export declare type OneToOneField = {
87
+ kind: "o2o";
88
+ fieldName: string;
89
+ fieldIdName: string;
90
+ required: boolean;
91
+ otherMetadata: () => EntityMetadata<any>;
92
+ otherFieldName: string;
93
+ serde: undefined;
94
+ };
95
+ export declare type PolymorphicField = {
96
+ kind: "poly";
97
+ fieldName: string;
98
+ fieldIdName: string;
99
+ required: boolean;
100
+ components: PolymorphicFieldComponent[];
101
+ serde: PolymorphicKeySerde;
102
+ };
103
+ export declare type PolymorphicFieldComponent = {
104
+ otherMetadata: () => EntityMetadata<any>;
105
+ otherFieldName: string;
106
+ columnName: string;
107
+ };
108
+ export declare function isOneToManyField(ormField: Field): ormField is OneToManyField;
109
+ export declare function isManyToOneField(ormField: Field): ormField is ManyToOneField;
110
+ export declare function isManyToManyField(ormField: Field): ormField is ManyToManyField;
111
+ export declare function isOneToOneField(ormField: Field): ormField is OneToOneField;
112
+ export declare function isPolymorphicField(ormField: Field): ormField is PolymorphicField;
113
+ export declare function isReferenceField(ormField: Field): ormField is ManyToOneField | OneToOneField | PolymorphicField;
114
+ export declare function isCollectionField(ormField: Field): ormField is OneToManyField | ManyToManyField;