@belopash/typeorm-store 1.6.0 → 2.0.0-rc.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.
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { TypeormDatabase, TypeormDatabase as TypeormDatabaseWithCache, TypeormDatabaseOptions } from './database';
2
- export { EntityTarget, EntityLiteral, EntityLiteral as Entity, FindManyOptions, FindOneOptions, Store, Store as StoreWithCache, } from './store';
2
+ export { EntityTarget, EntityLiteral, EntityLiteral as Entity, FindManyOptions, FindOneOptions, Store, Store as StoreWithCache, TrackOptions, } from './store';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,eAAe,IAAI,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAA;AAC/G,OAAO,EACH,YAAY,EACZ,aAAa,EACb,aAAa,IAAI,MAAM,EACvB,eAAe,EACf,cAAc,EACd,KAAK,EACL,KAAK,IAAI,cAAc,GAC1B,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,eAAe,IAAI,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAA;AAC/G,OAAO,EACH,YAAY,EACZ,aAAa,EACb,aAAa,IAAI,MAAM,EACvB,eAAe,EACf,cAAc,EACd,KAAK,EACL,KAAK,IAAI,cAAc,EACvB,YAAY,GACf,MAAM,SAAS,CAAA"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA+G;AAAvG,2GAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAA4B;AACpE,iCAQgB;AAFZ,8FAAA,KAAK,OAAA;AACL,uGAAA,KAAK,OAAkB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA+G;AAAvG,2GAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAA4B;AACpE,iCASgB;AAHZ,8FAAA,KAAK,OAAA;AACL,uGAAA,KAAK,OAAkB"}
package/lib/store.d.ts CHANGED
@@ -55,6 +55,12 @@ export interface StoreOptions {
55
55
  postponeWriteOperations: boolean;
56
56
  cacheEntities: boolean;
57
57
  }
58
+ export interface TrackOptions {
59
+ /**
60
+ * When `true`, register for SQL upsert (`ON CONFLICT` update). When omitted or `false`, register for `INSERT` only.
61
+ */
62
+ replace?: boolean;
63
+ }
58
64
  /**
59
65
  * Restricted version of TypeORM entity manager for squid data handlers.
60
66
  */
@@ -74,25 +80,18 @@ export declare class Store {
74
80
  defer<E extends EntityLiteral>(target: EntityTarget<E>, options: GetOptions<E>): DeferredEntity<E>;
75
81
  private load;
76
82
  /**
77
- * Alias for {@link Store.upsert}
78
- */
79
- save<E extends EntityLiteral>(e: E | E[]): Promise<void>;
80
- /**
81
- * Upserts a given entity or entities into the database.
83
+ * Registers entities for the next sync. By default flushes as primitive SQL `INSERT` (duplicate keys in the DB error).
84
+ *
85
+ * Rows loaded via {@link get} / {@link find} / {@link findOne} are **touched**; if they differ from the baseline
86
+ * captured at load time, they are upserted automatically on the next sync (no `replace` needed).
82
87
  *
83
- * It always executes a primitive operation without cascades, relations, etc.
88
+ * Pass `{ replace: true }` to force upsert for the given instances (e.g. different object for the same id, or
89
+ * when you must queue an upsert without a prior read in the same batch).
84
90
  */
85
- upsert<E extends EntityLiteral>(e: E | E[]): Promise<void>;
91
+ track<E extends EntityLiteral>(e: E | E[], options?: TrackOptions): Promise<void>;
86
92
  private getFkSignature;
87
93
  private _upsert;
88
94
  private upsertMany;
89
- /**
90
- * Inserts a given entity or entities into the database.
91
- * Does not check if the entity(s) exist in the database and will fail if a duplicate is inserted.
92
- *
93
- * Executes a primitive INSERT operation without cascades, relations, etc.
94
- */
95
- insert<E extends EntityLiteral>(e: E | E[]): Promise<void>;
96
95
  private _insert;
97
96
  private insertMany;
98
97
  /**
@@ -121,12 +120,8 @@ export declare class Store {
121
120
  get<E extends EntityLiteral>(target: EntityTarget<E>, options: GetOptions<E>): Promise<E | undefined>;
122
121
  getOrFail<E extends EntityLiteral>(target: EntityTarget<E>, id: string): Promise<E>;
123
122
  getOrFail<E extends EntityLiteral>(target: EntityTarget<E>, options: GetOptions<E>): Promise<E>;
124
- getOrInsert<E extends EntityLiteral>(target: EntityTarget<E>, id: string, create: (id: string) => E | Promise<E>): Promise<E>;
125
- getOrInsert<E extends EntityLiteral>(target: EntityTarget<E>, options: GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
126
- /**
127
- * @deprecated use {@link getOrInsert} instead
128
- */
129
- getOrCreate<E extends EntityLiteral>(target: EntityTarget<E>, idOrOptions: string | GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
123
+ getOrCreate<E extends EntityLiteral>(target: EntityTarget<E>, id: string, create: (id: string) => E | Promise<E>): Promise<E>;
124
+ getOrCreate<E extends EntityLiteral>(target: EntityTarget<E>, options: GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
130
125
  reset(): void;
131
126
  sync(): Promise<void>;
132
127
  flush(): Promise<void>;
@@ -134,6 +129,7 @@ export declare class Store {
134
129
  private performWrite;
135
130
  private assertNotClosed;
136
131
  private cacheEntity;
132
+ private touchReturnedGraph;
137
133
  private getEntityMetadata;
138
134
  private traverseEntity;
139
135
  }
@@ -144,10 +140,5 @@ export declare class DeferredEntity<E extends EntityLiteral> {
144
140
  constructor(target: EntityTarget<E>, opts: GetOptions<E>, store: Store);
145
141
  get(): Promise<E | undefined>;
146
142
  getOrFail(): Promise<E>;
147
- getOrInsert(create: (id: string) => E | Promise<E>): Promise<E>;
148
- /**
149
- * @deprecated use {@link getOrInsert} instead
150
- */
151
- getOrCreate(create: (id: string) => E | Promise<E>): Promise<E>;
152
143
  }
153
144
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/lib/store.js CHANGED
@@ -60,23 +60,27 @@ class Store {
60
60
  }
61
61
  }
62
62
  /**
63
- * Alias for {@link Store.upsert}
64
- */
65
- async save(e) {
66
- return this.upsert(e);
67
- }
68
- /**
69
- * Upserts a given entity or entities into the database.
63
+ * Registers entities for the next sync. By default flushes as primitive SQL `INSERT` (duplicate keys in the DB error).
64
+ *
65
+ * Rows loaded via {@link get} / {@link find} / {@link findOne} are **touched**; if they differ from the baseline
66
+ * captured at load time, they are upserted automatically on the next sync (no `replace` needed).
70
67
  *
71
- * It always executes a primitive operation without cascades, relations, etc.
68
+ * Pass `{ replace: true }` to force upsert for the given instances (e.g. different object for the same id, or
69
+ * when you must queue an upsert without a prior read in the same batch).
72
70
  */
73
- async upsert(e) {
71
+ async track(e, options) {
74
72
  return await this.performWrite(() => {
75
73
  let entities = Array.isArray(e) ? e : [e];
76
74
  if (entities.length == 0)
77
75
  return;
76
+ const replace = options?.replace === true;
78
77
  for (const entity of entities) {
79
- this.state.upsert(entity);
78
+ if (replace) {
79
+ this.state.upsert(entity);
80
+ }
81
+ else {
82
+ this.state.insert(entity);
83
+ }
80
84
  }
81
85
  });
82
86
  }
@@ -113,22 +117,6 @@ class Store {
113
117
  await this.em.upsert(target, batch, ['id']);
114
118
  }
115
119
  }
116
- /**
117
- * Inserts a given entity or entities into the database.
118
- * Does not check if the entity(s) exist in the database and will fail if a duplicate is inserted.
119
- *
120
- * Executes a primitive INSERT operation without cascades, relations, etc.
121
- */
122
- async insert(e) {
123
- return await this.performWrite(() => {
124
- const entities = Array.isArray(e) ? e : [e];
125
- if (entities.length == 0)
126
- return;
127
- for (const entity of entities) {
128
- this.state.insert(entity);
129
- }
130
- });
131
- }
132
120
  async _insert(metadata, entities) {
133
121
  this.logger?.debug(`insert ${entities.length} ${metadata.name} entities`);
134
122
  await this.changes?.trackInsert(metadata.target, entities);
@@ -187,6 +175,7 @@ class Store {
187
175
  if (cacheEntities ?? this.cacheEntities) {
188
176
  for (const e of res) {
189
177
  this.cacheEntity(target, e);
178
+ this.touchReturnedGraph(e);
190
179
  }
191
180
  }
192
181
  return res;
@@ -202,6 +191,9 @@ class Store {
202
191
  if (cacheEntities ?? this.cacheEntities) {
203
192
  const idOrEntity = res || getIdFromWhere(options.where);
204
193
  this.cacheEntity(target, idOrEntity);
194
+ if (res != null) {
195
+ this.touchReturnedGraph(res);
196
+ }
205
197
  }
206
198
  return res;
207
199
  });
@@ -225,8 +217,12 @@ class Store {
225
217
  await this.load();
226
218
  const { id, relations, cacheEntities } = parseGetOptions(idOrOptions);
227
219
  let entity = this.state.get(target, id, relations);
228
- if (entity !== undefined)
220
+ if (entity !== undefined) {
221
+ if (cacheEntities ?? this.cacheEntities) {
222
+ this.touchReturnedGraph(entity);
223
+ }
229
224
  return (0, misc_1.noNull)(entity);
225
+ }
230
226
  return await this.findOne(target, { where: { id }, relations, cacheEntities });
231
227
  }
232
228
  async getOrFail(target, idOrOptions) {
@@ -236,27 +232,21 @@ class Store {
236
232
  throw new typeorm_1.EntityNotFoundError(target, options.id);
237
233
  return e;
238
234
  }
239
- async getOrInsert(target, idOrOptions, create) {
235
+ async getOrCreate(target, idOrOptions, create) {
240
236
  const options = parseGetOptions(idOrOptions);
241
237
  let e = await this.get(target, options);
242
238
  if (e == null) {
243
239
  e = await create(options.id);
244
- await this.insert(e);
240
+ await this.track(e);
245
241
  }
246
242
  return e;
247
243
  }
248
- /**
249
- * @deprecated use {@link getOrInsert} instead
250
- */
251
- async getOrCreate(target, idOrOptions, create) {
252
- return this.getOrInsert(target, idOrOptions, create);
253
- }
254
244
  reset() {
255
245
  this.state.reset();
256
246
  }
257
247
  async sync() {
258
248
  // no need to acquire lock if there are no changes
259
- if (this.state.isEmpty())
249
+ if (!this.state.needsSync())
260
250
  return;
261
251
  await this.pendingSync.acquire();
262
252
  try {
@@ -310,10 +300,15 @@ class Store {
310
300
  this.traverseEntity(entityOrId, (e, md) => this.state.persist(md.target, e));
311
301
  }
312
302
  }
303
+ touchReturnedGraph(entity) {
304
+ this.traverseEntity(entity, (e) => this.state.touchEntity(e));
305
+ }
313
306
  getEntityMetadata(target) {
314
307
  return this.em.connection.getMetadata(target);
315
308
  }
316
309
  traverseEntity(entity, cb) {
310
+ if (entity == null)
311
+ return;
317
312
  const metadata = this.getEntityMetadata(entity.constructor);
318
313
  for (const relation of metadata.relations) {
319
314
  const inverseEntity = relation.getEntityValue(entity);
@@ -358,15 +353,6 @@ class DeferredEntity {
358
353
  async getOrFail() {
359
354
  return this.store.getOrFail(this.target, this.opts);
360
355
  }
361
- async getOrInsert(create) {
362
- return this.store.getOrInsert(this.target, this.opts, create);
363
- }
364
- /**
365
- * @deprecated use {@link getOrInsert} instead
366
- */
367
- async getOrCreate(create) {
368
- return this.getOrInsert(create);
369
- }
370
356
  }
371
357
  exports.DeferredEntity = DeferredEntity;
372
358
  //# sourceMappingURL=store.js.map
package/lib/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,37 @@
1
1
  import { EntityMetadata } from 'typeorm';
2
2
  import { EntityLiteral } from './misc';
3
3
  import { Logger } from '@subsquid/logger';
4
+ export declare function captureColumnSnapshot(metadata: EntityMetadata, entity: EntityLiteral): unknown[];
5
+ export declare function isSnapshotDirty(metadata: EntityMetadata, entity: EntityLiteral, baseline: unknown[]): boolean;
4
6
  export declare class CachedEntity<E extends EntityLiteral = EntityLiteral> {
5
7
  value: E | null;
6
- constructor(value?: E | null);
8
+ loadedFromDb: boolean;
9
+ baseline: unknown[] | null;
7
10
  }
8
11
  export declare class CacheMap {
9
12
  private map;
10
13
  private logger?;
11
14
  constructor(logger?: Logger);
12
- get(metadata: EntityMetadata, id: string): CachedEntity<EntityLiteral> | undefined;
15
+ get(metadata: EntityMetadata, id: string): CachedEntity | undefined;
13
16
  has(metadata: EntityMetadata, id: string): boolean;
14
17
  settle(metadata: EntityMetadata, id: string): void;
15
18
  delete(metadata: EntityMetadata, id: string): void;
16
19
  clear(): void;
20
+ /**
21
+ * After a successful write, align baseline with the canonical entity so the next
22
+ * flush does not treat unchanged rows as dirty.
23
+ */
24
+ syncBaselineAfterWrite(metadata: EntityMetadata, entity: EntityLiteral): void;
25
+ /**
26
+ * Store `entity` as the canonical instance for its id.
27
+ *
28
+ * `fromQuery` — the entity came from a TypeORM query; replaces any existing
29
+ * instance and captures a baseline snapshot for dirty detection.
30
+ *
31
+ * Without `fromQuery`, a *different* object for an already-cached id throws.
32
+ */
17
33
  add<E extends EntityLiteral>(metadata: EntityMetadata, entity: E, opts?: {
18
- nullify?: boolean;
19
- override?: boolean;
34
+ fromQuery?: boolean;
20
35
  }): void;
21
36
  private getEntityCache;
22
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cacheMap.d.ts","sourceRoot":"","sources":["../../src/utils/cacheMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAA;AAEpC,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,qBAAa,YAAY,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC1C,KAAK,EAAE,CAAC,GAAG,IAAI;gBAAf,KAAK,GAAE,CAAC,GAAG,IAAW;CAC5C;AAED,qBAAa,QAAQ;IACjB,OAAO,CAAC,GAAG,CAA4D;IACvE,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM;IAIxC,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAMlD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IASlD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAMlD,KAAK,IAAI,IAAI;IAKb,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI;IA6CvH,OAAO,CAAC,cAAc;CASzB"}
1
+ {"version":3,"file":"cacheMap.d.ts","sourceRoot":"","sources":["../../src/utils/cacheMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,EAAE,CAEhG;AAQD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAM7G;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC7D,KAAK,EAAE,CAAC,GAAG,IAAI,CAAO;IACtB,YAAY,UAAQ;IACpB,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAO;CACpC;AAED,qBAAa,QAAQ;IACjB,OAAO,CAAC,GAAG,CAA4D;IACvE,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInE,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAIlD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAQlD,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKlD,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAO7E;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI;IAmCrG,OAAO,CAAC,cAAc;CAQzB"}
@@ -1,13 +1,31 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.CacheMap = exports.CachedEntity = void 0;
7
- const fast_copy_1 = __importDefault(require("fast-copy"));
4
+ exports.captureColumnSnapshot = captureColumnSnapshot;
5
+ exports.isSnapshotDirty = isSnapshotDirty;
6
+ function captureColumnSnapshot(metadata, entity) {
7
+ return metadata.nonVirtualColumns.map((col) => col.getEntityValue(entity));
8
+ }
9
+ function valuesEqual(a, b) {
10
+ if (Object.is(a, b))
11
+ return true;
12
+ if (a instanceof Date && b instanceof Date)
13
+ return a.getTime() === b.getTime();
14
+ return false;
15
+ }
16
+ function isSnapshotDirty(metadata, entity, baseline) {
17
+ const cols = metadata.nonVirtualColumns;
18
+ for (let i = 0; i < baseline.length; i++) {
19
+ if (!valuesEqual(baseline[i], cols[i].getEntityValue(entity)))
20
+ return true;
21
+ }
22
+ return false;
23
+ }
8
24
  class CachedEntity {
9
- constructor(value = null) {
10
- this.value = value;
25
+ constructor() {
26
+ this.value = null;
27
+ this.loadedFromDb = false;
28
+ this.baseline = null;
11
29
  }
12
30
  }
13
31
  exports.CachedEntity = CachedEntity;
@@ -17,12 +35,10 @@ class CacheMap {
17
35
  this.logger = logger?.child('cache');
18
36
  }
19
37
  get(metadata, id) {
20
- return this.getEntityCache(metadata)?.get(id);
38
+ return this.getEntityCache(metadata).get(id);
21
39
  }
22
40
  has(metadata, id) {
23
- const cacheMap = this.getEntityCache(metadata);
24
- const cachedEntity = cacheMap.get(id);
25
- return !!cachedEntity?.value;
41
+ return !!this.getEntityCache(metadata).get(id)?.value;
26
42
  }
27
43
  settle(metadata, id) {
28
44
  const cacheMap = this.getEntityCache(metadata);
@@ -32,14 +48,32 @@ class CacheMap {
32
48
  this.logger?.debug(`added empty entity ${metadata.name} ${id}`);
33
49
  }
34
50
  delete(metadata, id) {
35
- const cacheMap = this.getEntityCache(metadata);
36
- cacheMap.set(id, new CachedEntity());
51
+ this.getEntityCache(metadata).set(id, new CachedEntity());
37
52
  this.logger?.debug(`deleted entity ${metadata.name} ${id}`);
38
53
  }
39
54
  clear() {
40
55
  this.logger?.debug(`cleared`);
41
56
  this.map.clear();
42
57
  }
58
+ /**
59
+ * After a successful write, align baseline with the canonical entity so the next
60
+ * flush does not treat unchanged rows as dirty.
61
+ */
62
+ syncBaselineAfterWrite(metadata, entity) {
63
+ const cached = this.get(metadata, entity.id);
64
+ if (cached?.value == null)
65
+ return;
66
+ cached.loadedFromDb = true;
67
+ cached.baseline = captureColumnSnapshot(metadata, cached.value);
68
+ }
69
+ /**
70
+ * Store `entity` as the canonical instance for its id.
71
+ *
72
+ * `fromQuery` — the entity came from a TypeORM query; replaces any existing
73
+ * instance and captures a baseline snapshot for dirty detection.
74
+ *
75
+ * Without `fromQuery`, a *different* object for an already-cached id throws.
76
+ */
43
77
  add(metadata, entity, opts) {
44
78
  const cacheMap = this.getEntityCache(metadata);
45
79
  let cached = cacheMap.get(entity.id);
@@ -48,40 +82,25 @@ class CacheMap {
48
82
  cacheMap.set(entity.id, cached);
49
83
  }
50
84
  if (cached.value == null) {
51
- cached.value = metadata.create();
52
- cached.value.id = entity.id;
85
+ cached.value = entity;
86
+ if (opts?.fromQuery) {
87
+ cached.loadedFromDb = true;
88
+ cached.baseline = captureColumnSnapshot(metadata, entity);
89
+ }
53
90
  this.logger?.debug(`added entity ${metadata.name} ${entity.id}`);
91
+ return;
54
92
  }
55
- const cachedEntity = cached.value;
56
- for (const column of metadata.nonVirtualColumns) {
57
- const objectColumnValue = column.getEntityValue(entity);
58
- const cachedColumnValue = column.getEntityValue(cachedEntity);
59
- if (!opts?.override && cachedColumnValue !== undefined)
60
- continue;
61
- if (!opts?.nullify && objectColumnValue === undefined)
62
- continue;
63
- if (objectColumnValue === cachedColumnValue && objectColumnValue !== undefined)
64
- continue;
65
- column.setEntityValue(cachedEntity, (0, fast_copy_1.default)(objectColumnValue ?? null));
66
- }
67
- for (const relation of metadata.relations) {
68
- if (!relation.isOwning)
69
- continue;
70
- const inverseEntity = relation.getEntityValue(entity);
71
- const cachedInverseEntity = relation.getEntityValue(cachedEntity);
72
- if (!opts?.override && cachedInverseEntity !== undefined)
73
- continue;
74
- if (!opts?.nullify && inverseEntity === undefined)
75
- continue;
76
- if (inverseEntity?.id === cachedInverseEntity?.id && inverseEntity != null)
77
- continue;
78
- const inverseMetadata = relation.inverseEntityMetadata;
79
- const mockEntity = inverseEntity == null ? null : inverseMetadata.create();
80
- if (mockEntity != null) {
81
- mockEntity.id = inverseEntity.id;
82
- }
83
- relation.setEntityValue(cachedEntity, mockEntity);
93
+ if (cached.value === entity)
94
+ return;
95
+ if (opts?.fromQuery) {
96
+ cached.value = entity;
97
+ cached.loadedFromDb = true;
98
+ cached.baseline = captureColumnSnapshot(metadata, entity);
99
+ this.logger?.debug(`replaced entity from query ${metadata.name} ${entity.id}`);
100
+ return;
84
101
  }
102
+ throw new Error(`Entity ${metadata.name} ${entity.id} is already in the store cache with a different object instance. ` +
103
+ `Mutate and track(..., { replace: true }) with the instance from get() or find(), or use track() for new ids.`);
85
104
  }
86
105
  getEntityCache(metadata) {
87
106
  let map = this.map.get(metadata);
@@ -1 +1 @@
1
- {"version":3,"file":"cacheMap.js","sourceRoot":"","sources":["../../src/utils/cacheMap.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA6B;AAG7B,MAAa,YAAY;IACrB,YAAmB,QAAkB,IAAI;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAG,CAAC;CAChD;AAFD,oCAEC;AAED,MAAa,QAAQ;IAIjB,YAAY,MAAe;QAHnB,QAAG,GAAmD,IAAI,GAAG,EAAE,CAAA;QAInE,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,GAAG,CAAC,QAAwB,EAAE,EAAU;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,GAAG,CAAC,QAAwB,EAAE,EAAU;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,QAAwB,EAAE,EAAU;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAM;QAE5B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,sBAAsB,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,QAAwB,EAAE,EAAU;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,GAAG,CAA0B,QAAwB,EAAE,MAAS,EAAE,IAA8C;QAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,GAAG,IAAI,YAAY,EAAE,CAAA;YAC3B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAO,CAAA;YACrC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;YAC3B,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAA;QAEjC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC9C,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACvD,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YAC7D,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,iBAAiB,KAAK,SAAS;gBAAE,SAAQ;YAChE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,iBAAiB,KAAK,SAAS;gBAAE,SAAQ;YAC/D,IAAI,iBAAiB,KAAK,iBAAiB,IAAI,iBAAiB,KAAK,SAAS;gBAAE,SAAQ;YACxF,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAA,mBAAK,EAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAA;QACzE,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAAE,SAAQ;YAEhC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YAEjE,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,mBAAmB,KAAK,SAAS;gBAAE,SAAQ;YAClE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,aAAa,KAAK,SAAS;gBAAE,SAAQ;YAC3D,IAAI,aAAa,EAAE,EAAE,KAAK,mBAAmB,EAAE,EAAE,IAAI,aAAa,IAAI,IAAI;gBAAE,SAAQ;YAEpF,MAAM,eAAe,GAAG,QAAQ,CAAC,qBAAqB,CAAA;YACtD,MAAM,UAAU,GAAG,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;YAC1E,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACrB,UAAU,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAA;YACpC,CAAC;YACD,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QACrD,CAAC;IACL,CAAC;IAEO,cAAc,CAA0B,QAAwB;QACpE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,GAAmC,CAAA;IAC9C,CAAC;CACJ;AA5FD,4BA4FC"}
1
+ {"version":3,"file":"cacheMap.js","sourceRoot":"","sources":["../../src/utils/cacheMap.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,13 @@ export declare class StateManager {
30
30
  protected commitOrder: EntityMetadata[];
31
31
  protected commitOrderMap: Map<EntityMetadata, number>;
32
32
  protected logger?: Logger;
33
+ protected touchedIds: Map<EntityMetadata, Set<string>>;
33
34
  constructor({ connection, logger }: {
34
35
  connection: DataSource;
35
36
  logger?: Logger;
36
37
  });
38
+ touchEntity(entity: EntityLiteral): void;
39
+ needsSync(): boolean;
37
40
  get<E extends EntityLiteral>(target: EntityTarget<any>, id: string, relationMask?: FindOptionsRelations<any>): E | null | undefined;
38
41
  insert(entity: EntityLiteral): void;
39
42
  upsert(entity: EntityLiteral): void;
@@ -44,7 +47,7 @@ export declare class StateManager {
44
47
  isDeleted(target: EntityTarget<any>, id: string): boolean;
45
48
  isExists(target: EntityTarget<any>, id: string): boolean;
46
49
  reset(): void;
47
- isEmpty(): boolean;
50
+ private applyAutoUpsertForTouched;
48
51
  performUpdate(cb: (cs: ChangeSet[]) => Promise<void>): Promise<void>;
49
52
  private processEntityRelations;
50
53
  private setState;
@@ -1 +1 @@
1
- {"version":3,"file":"stateManager.d.ts","sourceRoot":"","sources":["../../src/utils/stateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAIvC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AACtF,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAA;AAGpC,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAC,CAAA;AAC5G,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAC,CAAA;AAC5G,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAC,CAAA;AAEhG,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAA;AAE3E,qBAAa,YAAY;IACrB,SAAS,CAAC,UAAU,EAAE,UAAU,CAAA;IAChC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAChE,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,CAAA;IACvC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACrD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;gBAEb,EAAC,UAAU,EAAE,MAAM,EAAC,EAAE;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC;IAa3E,GAAG,CAAC,CAAC,SAAS,aAAa,EACvB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EACzB,EAAE,EAAE,MAAM,EACV,YAAY,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,GACzC,CAAC,GAAG,IAAI,GAAG,SAAS;IAmDvB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAoBnC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAqBnC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAkBnD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IAUjE,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAKhD,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAKhD,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAK/C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAK9C,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,OAAO;IAIZ,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAsF1D,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CASrB"}
1
+ {"version":3,"file":"stateManager.d.ts","sourceRoot":"","sources":["../../src/utils/stateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAGvC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAA;AACtF,OAAO,EAAC,QAAQ,EAAkB,MAAM,YAAY,CAAA;AACpD,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAA;AAGpC,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAC,CAAA;AAC5G,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAC,CAAA;AAC5G,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAC,CAAA;AAEhG,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAA;AAE3E,qBAAa,YAAY;IACrB,SAAS,CAAC,UAAU,EAAE,UAAU,CAAA;IAChC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC5B,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAChE,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,CAAA;IACvC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACrD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAY;gBAEtD,EAAC,UAAU,EAAE,MAAM,EAAC,EAAE;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC;IAY3E,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAUxC,SAAS,IAAI,OAAO;IAQpB,GAAG,CAAC,CAAC,SAAS,aAAa,EACvB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EACzB,EAAE,EAAE,MAAM,EACV,YAAY,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,GACzC,CAAC,GAAG,IAAI,GAAG,SAAS;IA0CvB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAoBnC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAqBnC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAkBnD,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IAUjE,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAKhD,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAKhD,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAK/C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM;IAK9C,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,yBAAyB;IAc3B,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAkG1D,OAAO,CAAC,sBAAsB;IAyC9B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQrB"}